<?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>198427</bug_id>
          
          <creation_ts>2019-05-31 11:24:21 -0700</creation_ts>
          <short_desc>[iOS] Autocorrection menu font is Times New Roman when using font-family: UICTFontTextStyle*</short_desc>
          <delta_ts>2019-05-31 16:36:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540778</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-31 11:24:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/50031825&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540845</commentid>
    <comment_count>1</comment_count>
      <attachid>371085</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-31 14:18:55 -0700</bug_when>
    <thetext>Created attachment 371085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540851</commentid>
    <comment_count>2</comment_count>
      <attachid>371088</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-31 14:49:30 -0700</bug_when>
    <thetext>Created attachment 371088
Fix macOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540892</commentid>
    <comment_count>3</comment_count>
      <attachid>371088</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 16:36:36 -0700</bug_when>
    <thetext>Comment on attachment 371088
Fix macOS builds

Clearing flags on attachment: 371088

Committed r245998: &lt;https://trac.webkit.org/changeset/245998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540893</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-31 16:36:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371085</attachid>
            <date>2019-05-31 14:18:55 -0700</date>
            <delta_ts>2019-05-31 14:49:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198427-20190531141854.patch</filename>
            <type>text/plain</type>
            <size>47207</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxMTRjYjA5YmQwYWQxNTU3
Yjc5MzJhZGRlNTJkZGYxZWQzNjdmMmQuLjIwNWFiODUxYzU5M2Y2ZTY2MmRlMTIwZjlmNjE0NTVj
MzQ2ZWQwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDUtMzEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQXV0b2NvcnJl
Y3Rpb24gbWVudSBmb250IGlzIFRpbWVzIE5ldyBSb21hbiB3aGVuIHVzaW5nIGZvbnQtZmFtaWx5
OiBVSUNURm9udFRleHRTdHlsZSoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwMzE4MjU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBVSUNU
Rm9udFRleHRTdHlsZSogaXMgc3BlY2lmaWVkIGFzIHRoZSBmb250LWZhbWlseSBpbiBhbiBlZGl0
YWJsZSBlbGVtZW50LCB0ZXh0IGluIGF1dG9jb3JyZWN0aW9uIGJ1YmJsZXMKKyAgICAgICAgYWx3
YXlzIHVzZXMgVGltZXMgTmV3IFJvbWFuIGZvbnQuIFRoaXMgaXMgYmVjYXVzZSB3ZSBzZW5kIGEg
Zm9udCBmYW1pbHkgbmFtZSwgZm9udCBzaXplLCBhbmQgZm9udCBhdHRyaWJ1dGVzIHRvCisgICAg
ICAgIHRoZSBVSSBwcm9jZXNzIHdoZW4gY29tcHV0aW5nIGF1dG9jb3JyZWN0aW9uIGRhdGEgZm9y
IFVJS2l0LCBhbmQgdGhlbiBhc3NlbWJsZSB0aGlzIGluZm9ybWF0aW9uIGludG8gYSBVSUZvbnQK
KyAgICAgICAgb2JqZWN0IHZpYSArW1VJRm9udCBmb250V2l0aEZhbWlseU5hbWU6dHJhaXRzOnNp
emU6XS4gSG93ZXZlciwgaW4gdGhlIGNhc2Ugd2hlcmUgVUlDVEZvbnRUZXh0U3R5bGUqIGlzIHNw
ZWNpZmllZAorICAgICAgICBhcyB0aGUgZm9udC1mYW1pbHkgaW4gQ1NTLCB0aGUgZm9udCBmYW1p
bHkgdGhhdCB3ZSBzZW5kIHRvIHRoZSBVSSBwcm9jZXNzIGVuZHMgdXAgYmVpbmcgIi5BcHBsZVN5
c3RlbVVJRm9udCIsCisgICAgICAgIHdoaWNoICtmb250V2l0aEZhbWlseU5hbWU6dHJhaXRzOnNp
emU6IGZhaWxzIHRvIG1hcCB0byB0aGUgc3lzdGVtIGZvbnQgYXMgaW50ZW5kZWQuCisKKyAgICAg
ICAgVG8gZml4IHRoaXMsIHdlIHByb3BhZ2F0ZSBmb250IGluZm9ybWF0aW9uIHRvIHRoZSBVSSBw
cm9jZXNzIGJ5IGVuY29kaW5nIHRoZSBVSUZvbnQgaXRzZWxmIHZpYSBJUEMsIHdoaWNoCisgICAg
ICAgIHNlcmlhbGl6ZXMgdGhlIGZvbnQgZGVzY3JpcHRvciwgYW5kIHRoZW4gZGVzZXJpYWxpemVz
IGludG8gYSBVSUZvbnQgaW4gdGhlIFVJIHByb2Nlc3MuIFRoaXMgYWxsb3dzIHRoZSBzeXN0ZW0K
KyAgICAgICAgZm9udCB0byBiZSByZXR1cm5lZCBpbiAtZm9udEZvckNhcmV0U2VsZWN0aW9uLCB3
aGljaCBpcyBpbnZva2VkIGJ5IFVJS2l0IHdoZW4gZGV0ZXJtaW5pbmcgdGhlIGZvbnQgZm9yIHRo
ZQorICAgICAgICBhdXRvY29ycmVjdGlvbiBidWJibGUuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgIFRlc3Q6IEF1dG9jb3JyZWN0aW9uVGVzdHMuRm9udEF0Q2FyZXRXaGVu
VXNpbmdVSUNURm9udFRleHRTdHlsZQorCisgICAgICAgICogU2hhcmVkL2lvcy9XZWJBdXRvY29y
cmVjdGlvbkRhdGEuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b0Nv
cnJlY3Rpb25DYWxsYmFjay5oLgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b0NvcnJl
Y3Rpb25DYWxsYmFjay5oLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkRhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YTo6
ZGVjb2RlKToKKworICAgICAgICBJbnRyb2R1Y2UgV2ViQXV0b2NvcnJlY3Rpb25EYXRhLCBhIHN0
cnVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIHVzZWQgdG8gc2hvdyBhdXRvY29ycmVjdGlvbiBV
SSBvbiBpT1MgKGkuZS4KKyAgICAgICAgaGlnaGxpZ2h0cyBhbmQgdGhlIGJ1YmJsZSkuIFRoaXMg
Y29uc2lzdHMgb2YgYSBsaXN0IG9mIHJlY3RzLCBhbG9uZyB3aXRoIGEgVUlGb250LgorCisgICAg
ICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAg
ICAgICBSZWZhY3RvciByZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhIHRvIHJlcXVlc3QgYSBXZWJB
dXRvY29ycmVjdGlvbkRhdGEgaW5zdGVhZCwgYW5kIGFsc28gdXNlIHRoZSBuZXcgYXN5bmMgSVBD
CisgICAgICAgIHJlcGx5IG1lY2hhbmlzbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVxdWVzdEF1
dG9jb3JyZWN0aW9uUmVjdHNGb3JTdHJpbmc6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGZvbnRGb3JDYXJldFNlbGVjdGlvbl0pOgorCisgICAgICAg
IEdyYWIgdGhlIFVJRm9udCBkaXJlY3RseSBmcm9tIHRoZSBXZWJBdXRvY29ycmVjdGlvbkRhdGEu
IEFsc28sIGFkZHJlc3MgYSBGSVhNRSBieSBzY2FsaW5nIHRoZSBmb250IHNpemUgYnkgdGhlCisg
ICAgICAgIGNvbnRlbnQgc2NhbGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QXV0b2Nv
cnJlY3Rpb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphdXRvY29ycmVj
dGlvbkRhdGFDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6YXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2spOiBEZWxldGVkLgorCisgICAgICAgIFJl
bW92ZSBzb21lIElQQyBjYWxsYmFja3MgdGhhdCBhcmUgbm93IHVudXNlZC4KKworICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRh
KToKKwogMjAxOS0wNS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBNaXNzaW5nIGNhcmV0IHdoZW4gZm9jdXNpbmcgYW4gZWRpdGFibGUgZmllbGQg
aWYgdGhlIHNlbGVjdGlvbiB3YXMgc2V0IHdoZW4gV0tXZWJWaWV3IHdhc24ndCBmaXJzdCByZXNw
b25kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVj
dGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVjdGlvbkRh
dGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNzQwMTRkNTczODlhNWIwYjJiZTRjY2U2MTdiODk0NmEwMTY5MTk4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkF1dG9jb3Jy
ZWN0aW9uRGF0YS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGbG9hdFJlY3Q7Cit9CisKK09CSkNfQ0xBU1MgVUlGb250
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdlYkF1dG9jb3JyZWN0aW9uRGF0YSB7
CisgICAgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gdGV4dFJlY3RzOworICAgIFJldGFpblB0
cjxVSUZvbnQ+IGZvbnQ7CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsK
KyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQXV0b2NvcnJlY3Rpb25EYXRhPiBkZWNvZGUoSVBDOjpE
ZWNvZGVyJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2Vi
QXV0b2NvcnJlY3Rpb25EYXRhLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkF1dG9j
b3JyZWN0aW9uRGF0YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ3OGY0N2Q1YTIwNTViOGZiMmIxMThhZmRm
NWI4NjBmMWNkOGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCIKKwor
I2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgorI2ltcG9ydCAiRGVjb2Rlci5oIgorI2lt
cG9ydCAiRW5jb2Rlci5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFdlYkF1dG9jb3JyZWN0aW9uRGF0YTo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRleHRSZWN0czsK
KyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBmb250LmdldCgpKTsKK30KKworT3B0aW9uYWw8V2Vi
QXV0b2NvcnJlY3Rpb25EYXRhPiBXZWJBdXRvY29ycmVjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8VmVjdG9yPEZsb2F0UmVjdD4+IHRleHRS
ZWN0czsKKyAgICBkZWNvZGVyID4+IHRleHRSZWN0czsKKyAgICBpZiAoIXRleHRSZWN0cykKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFJldGFpblB0cjxVSUZvbnQ+IGZvbnQ7
CisgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBmb250LCBAWyBVSUZvbnQuY2xhc3MgXSkp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnRleHRSZWN0
cywgZm9udCB9fTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGEzZmIwM2QyZjM1
ZTRjODU5NTRjZGU4YjNjMzk3NzgyZTYwYzQ1NWEuLmFlNmZlNmRkYzJmOTk3Nzc4YzQ5NTkzYTRj
YjFlYzYxZjExYTQyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE3Miw2ICsxNzIsNyBA
QCBTaGFyZWQvaW9zL05hdGl2ZVdlYktleWJvYXJkRXZlbnRJT1MubW0KIFNoYXJlZC9pb3MvTmF0
aXZlV2ViTW91c2VFdmVudElPUy5tbQogU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9T
Lm1tCiBTaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5jcHAKK1NoYXJlZC9pb3MvV2Vi
QXV0b2NvcnJlY3Rpb25EYXRhLm1tCiBTaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0KIFNo
YXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCiBTaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91
Y2hQb2ludElPUy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9D
b3JyZWN0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9Db3JyZWN0
aW9uQ2FsbGJhY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgwODU2ZmFkZDg4
NjY3NzFjNWUzMTIwNjNiMjM2MzAxNmI3MDBmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvQ29ycmVjdGlv
bkNhbGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrX2gKLSNkZWZpbmUgQXV0b0NvcnJlY3Rpb25D
YWxsYmFja19oCi0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxs
YmFjay5oIgotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0
cnVjdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQ7Ci0KLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNr
PGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+JiwgY29uc3QgU3RyaW5nJiwgZG91Ymxl
LCB1aW50NjRfdD4gQXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2s7Ci10eXBlZGVmIEdlbmVyaWND
YWxsYmFjazxjb25zdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQmPiBBdXRvY29ycmVjdGlvbkNv
bnRleHRDYWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyY+IFNlbGVjdGlvbkNvbnRleHRDYWxsYmFjazsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBBdXRvQ29ycmVjdGlvbkNhbGxiYWNr
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGIwMDNkNjg5ZDg4
MmZmMmRjYTU2NjJkZjUxN2E1YjYyYWE3YjAxMS4uNmI0ZDM0ODU2Yzk4NmQ5MWI0NzA1MmM3NWY1
MWJhNTk4NzYzM2I0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0j
aW5jbHVkZSAiQXV0b0NvcnJlY3Rpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiRG93bmxv
YWRJRC5oIgpAQCAtMjkxLDYgKzI5MCw3IEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVyczsKIHN0cnVj
dCBQbGF0Zm9ybVBvcHVwTWVudURhdGE7CiBzdHJ1Y3QgUHJpbnRJbmZvOwogc3RydWN0IFRleHRJ
bnB1dENvbnRleHQ7CitzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhOwogc3RydWN0IFdlYlBv
cHVwSXRlbTsKIHN0cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIApAQCAtMzA3LDYgKzMw
Nyw3IEBAIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEVkaXRpbmdSYW5nZT4gRWRpdGluZ1Jhbmdl
Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBTdHJpbmcmPiBTdHJpbmdD
YWxsYmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKiwgYm9vbCwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyY+IFNjcmlwdFZhbHVl
Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBXZWJDb3JlOjpGb250QXR0
cmlidXRlcyY+IEZvbnRBdHRyaWJ1dGVzQ2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFj
azxjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmPiBTZWxlY3Rpb25D
b250ZXh0Q2FsbGJhY2s7CiAKICNpZiBIQVZFKFZJU0lCSUxJVFlfUFJPUEFHQVRJT05fVklFVykK
IHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwpAQCAtNjc4LDcgKzY3OSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luU2VsZWN0aW9uSW5EaXJlY3Rpb24oV2ViQ29yZTo6
U2VsZWN0aW9uRGlyZWN0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHVpbnQ2NF90LCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9p
bnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCwgV1RGOjpGdW5jdGlvbjx2b2lkKHVpbnQ2NF90LCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnRBbmRCb3VuZGFy
eShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBib29s
IGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIFdURjo6RnVuY3Rpb248dm9pZCh1aW50
NjRfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQgcmVxdWVzdEF1dG9jb3Jy
ZWN0aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgV1RGOjpGdW5j
dGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYsIGNvbnN0IFN0cmlu
ZyYsIGRvdWJsZSwgdWludDY0X3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lk
IHJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJl
Y3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRhKT4mJik7
CiAgICAgdm9pZCBhcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgU3Ry
aW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIGJvb2wgYXBwbHlBdXRvY29ycmVj
dGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0
KTsKICAgICB2b2lkIHJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKTsKQEAgLTE4NjksOCAr
MTg3MCw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGdl
c3R1cmVDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQzMl90IGdlc3R1cmVU
eXBlLCB1aW50MzJfdCBnZXN0dXJlU3RhdGUsIHVpbnQzMl90IGZsYWdzLCBDYWxsYmFja0lEKTsK
ICAgICB2b2lkIHRvdWNoZXNDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQz
Ml90IHRvdWNoZXMsIHVpbnQzMl90IGZsYWdzLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGF1dG9j
b3JyZWN0aW9uRGF0YUNhbGxiYWNrKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+Jiwg
Y29uc3QgU3RyaW5nJiBmb250TmFtZSwgZmxvYXQgZm9udFNpemUsIHVpbnQ2NF90IGZvbnRUcmFp
dHMsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgYXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2so
Y29uc3QgV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0JiwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBz
ZWxlY3Rpb25Db250ZXh0Q2FsbGJhY2soY29uc3QgU3RyaW5nJiBzZWxlY3RlZFRleHQsIGNvbnN0
IFN0cmluZyYgYmVmb3JlVGV4dCwgY29uc3QgU3RyaW5nJiBhZnRlclRleHQsIENhbGxiYWNrSUQp
OwogICAgIHZvaWQgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgRWRpdG9yU3RhdGUmLCBib29sIGlz
Q2hhckV2ZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNo
b3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBlbGVtZW50UmVjdCwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCBhODQ5ODQ3YjUzNWQyNmUxNGNiZDI4MDIwYjM3OWE3ZjE3NTdkNzE1Li5jMDA4
ZjJjYmZjNDRlOWU2Zjg3YmY0MDg3ZjYwZDU5MWEzOWI0N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xODYsOCArMTg2LDYg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIEdlc3R1cmVDYWxsYmFjayhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWludDMyX3QgZ2Vz
dHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgdWludDMyX3QgZmxhZ3MsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFRvdWNoZXNDYWxsYmFjayhXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgdWludDMyX3QgdG91Y2hlcywgdWludDMyX3QgZmxhZ3MsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEF1dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrKFZlY3Rv
cjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHRleHRSZWN0cywgU3RyaW5nIGZvbnROYW1lLCBkb3VibGUg
Zm9udFNpemUsIHVpbnQ2NF90IHRyYWl0cywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgQXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2soc3RydWN0IFdlYktpdDo6V2ViQXV0
b2NvcnJlY3Rpb25Db250ZXh0IGNvbnRleHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIFNlbGVjdGlvbkNvbnRleHRDYWxsYmFjayhTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJp
bmcgYmVmb3JlVGV4dCwgU3RyaW5nIGFmdGVyVGV4dCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgSW50ZXJwcmV0S2V5RXZlbnQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3RhdGUg
c3RhdGUsIGJvb2wgaXNDaGFyRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAg
ICAgRGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNzkx
N2RiNmRhN2VmMjVlODQ5OTdmZGE1ODc2ZGFlZmYyYTEyYWI1ZS4uZTRiYzQ2OWQyOGZmNTYwYjIz
NzZjNmNiNjA2MzgwYWJjMjQ3NTU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTgxLDkgKzE4MSw3IEBA
IHN0cnVjdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIHsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvJik7CiAK
IHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7Ci0gICAgU3RyaW5nIGZvbnROYW1lOwotICAg
IENHRmxvYXQgZm9udFNpemU7Ci0gICAgdWludDY0X3QgZm9udFRyYWl0czsKKyAgICBSZXRhaW5Q
dHI8VUlGb250PiBmb250OwogICAgIENHUmVjdCB0ZXh0Rmlyc3RSZWN0OwogICAgIENHUmVjdCB0
ZXh0TGFzdFJlY3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDc4NDBiOWY2OTFjMjcxMGFlMGYz
YjZmYTlhMjliZGJlY2EyMGJmOS4uMDJhZTEyMjU1M2VhNGEyOTA3OGNjYTM3NmEyMDJkYWZmNmQ1
ODZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0ICJXS1dlYlZp
ZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5oIgogI2ltcG9ydCAiV2Vi
QXV0b2NvcnJlY3Rpb25Db250ZXh0LmgiCisjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEu
aCIKICNpbXBvcnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgogI2ltcG9y
dCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYklPU0V2ZW50RmFjdG9yeS5oIgpAQCAtMzUyOSw5
ICszNTMwLDEwIEBAIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0aW9uUmVjdHNGb3JTdHJpbmc6
KE5TU3RyaW5nICopaW5wdXQgd2l0aENvbXBsZXRpb25IYW5kCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBfcGFnZS0+cmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShpbnB1dCwgW3ZpZXcg
PSByZXRhaW5QdHIoc2VsZiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvJiByZWN0cywgYXV0byYgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwgdWlu
dDY0X3QgdHJhaXRzLCBhdXRvKSB7CisgICAgX3BhZ2UtPnJlcXVlc3RBdXRvY29ycmVjdGlvbkRh
dGEoaW5wdXQsIFt2aWV3ID0gcmV0YWluUHRyKHNlbGYpLCBjb21wbGV0aW9uID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBkYXRhKSB7CiAgICAgICAgIENHUmVjdCBmaXJz
dFJlY3Q7CiAgICAgICAgIENHUmVjdCBsYXN0UmVjdDsKKyAgICAgICAgYXV0byYgcmVjdHMgPSBk
YXRhLnRleHRSZWN0czsKICAgICAgICAgaWYgKHJlY3RzLmlzRW1wdHkoKSkgewogICAgICAgICAg
ICAgZmlyc3RSZWN0ID0gQ0dSZWN0WmVybzsKICAgICAgICAgICAgIGxhc3RSZWN0ID0gQ0dSZWN0
WmVybzsKQEAgLTM1NDAsOSArMzU0Miw3IEBAIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0aW9u
UmVjdHNGb3JTdHJpbmc6KE5TU3RyaW5nICopaW5wdXQgd2l0aENvbXBsZXRpb25IYW5kCiAgICAg
ICAgICAgICBsYXN0UmVjdCA9IHJlY3RzLmxhc3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIHZp
ZXctPl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udE5hbWUgPSBmb250TmFtZTsKLSAgICAgICAgdmll
dy0+X2F1dG9jb3JyZWN0aW9uRGF0YS5mb250U2l6ZSA9IGZvbnRTaXplOwotICAgICAgICB2aWV3
LT5fYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnRUcmFpdHMgPSB0cmFpdHM7CisgICAgICAgIHZpZXct
Pl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udCA9IGRhdGEuZm9udDsKICAgICAgICAgdmlldy0+X2F1
dG9jb3JyZWN0aW9uRGF0YS50ZXh0Rmlyc3RSZWN0ID0gZmlyc3RSZWN0OwogICAgICAgICB2aWV3
LT5fYXV0b2NvcnJlY3Rpb25EYXRhLnRleHRMYXN0UmVjdCA9IGxhc3RSZWN0OwogCkBAIC00OTAw
LDExICs0OTAwLDkgQEAgLSAoVUlDb2xvciAqKXRleHRDb2xvckZvckNhcmV0U2VsZWN0aW9uCiAK
IC0gKFVJRm9udCAqKWZvbnRGb3JDYXJldFNlbGVjdGlvbgogewotICAgIENHRmxvYXQgem9vbVNj
YWxlID0gMS4wOyAgICAvLyBGSVhNRTogcmV0cmlldmUgdGhlIGFjdHVhbCBkb2N1bWVudCBzY2Fs
ZSBmYWN0b3IuCi0gICAgQ0dGbG9hdCBzY2FsZWRTaXplID0gX2F1dG9jb3JyZWN0aW9uRGF0YS5m
b250U2l6ZTsKLSAgICBpZiAoQ0dGQWJzKHpvb21TY2FsZSAtIDEuMCkgPiBGTFRfRVBTSUxPTikK
LSAgICAgICAgc2NhbGVkU2l6ZSAqPSB6b29tU2NhbGU7Ci0gICAgcmV0dXJuIFtVSUZvbnQgZm9u
dFdpdGhGYW1pbHlOYW1lOl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udE5hbWUgdHJhaXRzOihVSUZv
bnRUcmFpdClfYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnRUcmFpdHMgc2l6ZTpzY2FsZWRTaXplXTsK
KyAgICBVSUZvbnQgKmZvbnQgPSBfYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnQuZ2V0KCk7CisgICAg
ZG91YmxlIHpvb21TY2FsZSA9IHNlbGYuX2NvbnRlbnRab29tU2NhbGU7CisgICAgcmV0dXJuIHN0
ZDo6YWJzKHpvb21TY2FsZSAtIDEpID4gRkxUX0VQU0lMT04gPyBbZm9udCBmb250V2l0aFNpemU6
Zm9udC5wb2ludFNpemUgKiB6b29tU2NhbGVdIDogZm9udDsKIH0KIAogLSAoQk9PTCloYXNTZWxl
Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CmluZGV4IDhlOWJlZDVlZmZkNDNmNzdlOGFlODVlZDg1OGE5MDE1ZGQxODQ1NjAuLmEzZjgyZWFi
ZGRhZTEwZGM0MmU0ZTc3NTA5M2EyYTYwMGI2ZmQyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2ltcG9y
dCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9uQ29u
dGV4dC5oIgorI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJXZWJQ
cm9jZXNzUHJveHkuaCIKQEAgLTE2MCwxNyArMTYxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRv
dWNoZXNDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHVpbnQzMl90IHRv
dWMKICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHBvaW50LCB0
b3VjaGVzLCBmbGFncyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjphdXRvY29ycmVjdGlvbkRh
dGFDYWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMsIGNvbnN0
IFN0cmluZyYgZm9udE5hbWUsIGZsb2F0IGZvbnRTaXplLCB1aW50NjRfdCBmb250VHJhaXRzLCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tz
LnRha2U8QXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwotICAgIGlmICgh
Y2FsbGJhY2spIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KHJlY3RzLCBmb250TmFtZSwgZm9udFNpemUsIGZvbnRUcmFpdHMpOwotfQotCiB2b2lkIFdlYlBh
Z2VQcm94eTo6c2VsZWN0aW9uQ29udGV4dENhbGxiYWNrKGNvbnN0IFN0cmluZyYgc2VsZWN0ZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGJlZm9yZVRleHQsIGNvbnN0IFN0cmluZyYgYWZ0ZXJUZXh0LCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tz
LnRha2U8U2VsZWN0aW9uQ29udGV4dENhbGxiYWNrPihjYWxsYmFja0lEKTsKQEAgLTE4MiwxNyAr
MTcyLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvbkNvbnRleHRDYWxsYmFjayhjb25z
dCBTdHJpbmcmIHNlbGVjdGVkVGV4dCwgY29uc3QgU3QKICAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKHNlbGVjdGVkVGV4dCwgYmVmb3JlVGV4dCwgYWZ0ZXJUZXh0
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmF1dG9jb3JyZWN0aW9uQ29udGV4dENhbGxiYWNr
KGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYgY29udGV4dCwgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPEF1dG9jb3Jy
ZWN0aW9uQ29udGV4dENhbGxiYWNrPihjYWxsYmFja0lEKTsKLSAgICBpZiAoIWNhbGxiYWNrKSB7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShjb250ZXh0KTsK
LX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblJlY3RzQ2FsbGJhY2soY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+JiBzZWxlY3Rpb25SZWN0cywgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPFNlbGVj
dGlvblJlY3RzQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwpAQCAtNDY0LDE1ICs0NDMsMTMgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0
LCBjb25zdCBTdHJpbmcmIG5ld1QKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlJlcGxhY2VTZWxlY3RlZFRleHQob2xkVGV4dCwgbmV3VGV4dCksIG1fcGFnZUlEKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3Ry
aW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVpbnQ2NF90
LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0
b2NvcnJlY3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRh
KT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKLSAgICAg
ICAgY2FsbGJhY2tGdW5jdGlvbihWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PigpLCBTdHJpbmco
KSwgMCwgMCwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CisgICAgICAgIGNhbGxiYWNr
KHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBhdXRvIGNhbGxiYWNrSUQgPSBt
X2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJv
dHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKLSAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEodGV4dEZvckF1dG9j
b3JyZWN0aW9uLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+Y29ubmVj
dGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBdXRv
Y29ycmVjdGlvbkRhdGEodGV4dEZvckF1dG9jb3JyZWN0aW9uKSwgV1RGTW92ZShjYWxsYmFjayks
IG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmFwcGx5QXV0b2NvcnJlY3Rpb24o
Y29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCwgV1RG
OjpGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBj
YWxsYmFja0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZGRiM2EzMDAwY2FlZjcyMzVjMjY0NmNkMGY0MDQ4Y2JjZWI1NjBh
Mi4uYThlMWMwNzJiYjRlZGFiZDZhM2NiNDFlNzQ0NjMzODM4MTk1MWJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTkyLDcgKzEx
OTIsNiBAQAogCQk3Q0JCODEyMTFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxl
UmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JC
ODExRjFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NDOTlBMzYxOEVGN0NC
QzAwNDhDOEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0M5OUEzNTE4RUY3Q0JDMDA0OEM4QjQgLyog
V0tTY3JpcHRNZXNzYWdlSW50ZXJuYWwuaCAqLzsgfTsKIAkJN0NDQ0M4RkIxQTVGNTBGRDAwOEZC
MERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NDQ0M4RjkxQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmlnYXRp
b25TdGF0ZS5oICovOyB9OwotCQk3Q0QxMDJEQTE4NjY3NzA2MDBFRDQyOUQgLyogQXV0b0NvcnJl
Y3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2su
aCAqLzsgfTsKIAkJN0NEM0E0ODMxQTVEMDJGQTAwOTYyM0I4IC8qIEFQSU5hdmlnYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDNBNDgxMUE1
RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggKi87IH07CiAJCTdDRDVFQkI5MTc0NkEx
NUIwMDBDMUM0NSAvKiBXS09iakNUeXBlV3JhcHBlclJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NENUVCQjcxNzQ2QTE1QjAwMEMxQzQ1IC8qIFdL
T2JqQ1R5cGVXcmFwcGVyUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0NENUVCQkIxNzQ2QTgzRTAwMEMxQzQ1IC8qIFdLQmFzZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NENUVCQkExNzQ2
QTgzRTAwMEMxQzQ1IC8qIFdLQmFzZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xNjUzLDYgKzE2NTIsNyBAQAogCQlFQ0E2ODBEODFFNjkw
RTI1MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBENzFFNjkwREY4MDA3MzFEMjAgLyogV2ViUHJv
Y2Vzc0NvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjJGMEZGMTI4
OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhF
IC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVz
dGluYXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlGNDJENjM0MTIyQTBFRkRGMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25E
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJE
NjMzRjIyQTBFRkQzMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggKi87IH07CiAJ
CUY0MzBFOTQyMjI0NzMzNUYwMDVGRTA1MyAvKiBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMwRTk0MTIy
NDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oICovOyB9OwogCQlG
NDMwRTk0NDIyNDczREZGMDA1RkUwNTMgLyogV2ViQ29tcGF0aWJpbGl0eU1vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzBFOTQzMjI0NzNEQjgw
MDVGRTA1MyAvKiBXZWJDb21wYXRpYmlsaXR5TW9kZS5oICovOyB9OwogCQlGNDM4Q0QxQzIyNDE0
MjE0MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFCMjI0MTQwQTYwMERFNkREQSAvKiBX
S1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1Ymxp
YywgKTsgfTsgfTsKQEAgLTM3MjgsNyArMzcyOCw2IEBACiAJCTdDQzk5QTM1MThFRjdDQkMwMDQ4
QzhCNCAvKiBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5hdmlnYXRpb25T
dGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0NDOEY5MUE1RjUwRkQw
MDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViTmF2aWdhdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTdDRDEwMkQ5MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NEM0E0ODAxQTVEMDJGQTAwOTYyM0I4
IC8qIEFQSU5hdmlnYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQVBJTmF2aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDNB
NDgxMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSU5hdmlnYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0NENUVCQjYxNzQ2QTE1QjAwMEMxQzQ1IC8qIFdLT2JqQ1R5cGVXcmFwcGVyUmVmLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tPYmpDVHlwZVdyYXBw
ZXJSZWYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjI0LDYgKzQ2MjMsOCBA
QAogCQlGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEcmFnRGVzdGluYXRpb25BY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwRDFCNjgyMjBCREMwRjAwQjQ5
QTAxIC8qIFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRv
Y29ycmVjdGlvbkNvbnRleHQuaDsgcGF0aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkNvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQxMDU2NjEyMTMwNjk5QTAwOTIyODFE
IC8qIEFQSUF0dGFjaG1lbnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFQSUF0dGFj
aG1lbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRDYzM0YyMkEw
RUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaDsgcGF0aCA9IGlvcy9XZWJB
dXRvY29ycmVjdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRDYz
NDAyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbTsg
cGF0aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0MzBFOTQxMjI0NzMyQTkwMDVGRTA1MyAvKiBXZWJzaXRlTWV0YVZpZXdwb3J0
UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzMEU5NDMyMjQ3M0RCODAwNUZFMDUzIC8qIFdl
YkNvbXBhdGliaWxpdHlNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbXBhdGliaWxpdHlNb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzhDRDFCMjI0MTQwQTYwMERFNkRE
QSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnBhZ2VQcmVm
ZXJlbmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTkwMCw2ICs1OTAxLDgg
QEAKIAkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRjQyRDYzM0YyMkEwRUZEMzAwRDJGQjNBIC8q
IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovLAorCQkJCUY0MkQ2MzQwMjJBMEVGRDMwMEQyRkIz
QSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8sCiAJCQkJQTdFOTNDRUIxOTI1MzFBQTAw
QTFEQzQ4IC8qIEF1eGlsaWFyeVByb2Nlc3NJT1MubW0gKi8sCiAJCQkJMkRBNjczMTkyMEM3NTRC
MTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCAqLywKIAkJCQkyREE5NDQ5
RDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggKi8sCkBAIC03NTE4LDcgKzc1MjEs
NiBAQAogCQkJCTFBQUYwODlFMTkyNjgxQUMwMEI2MzkwQyAvKiBVc2VyQ29udGVudCAqLywKIAkJ
CQk1NzYwODI5NDIwMkJEODQ5MDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRpb24gKi8sCiAJCQkJ
MUE1M0MyQTMxQTMyNTY5MTAwNEU4QzcwIC8qIFdlYnNpdGVEYXRhICovLAotCQkJCTdDRDEwMkQ5
MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggKi8sCiAJCQkJRTE1
MTNDNjQxNjZFQUJCMjAwMTQ5RkNCIC8qIEF1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAgKi8sCiAJ
CQkJRTE1MTNDNjUxNjZFQUJCMjAwMTQ5RkNCIC8qIEF1eGlsaWFyeVByb2Nlc3NQcm94eS5oICov
LAogCQkJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwICovLApAQCAtOTE4NSw3ICs5MTg3LDYgQEAKIAkJCQk1N0RDRURC
MTIxNEM2MDQ4MDAxNkI4NDcgLyogQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTdEQ0VEQUYyMTRDNjAzQjAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1N0RDRURCMDIxNEM2MDQyMDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRy
YW5zcG9ydFNlcnZpY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDRDEwMkRBMTg2Njc3MDYwMEVE
NDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU1
QTZFRjFDNzk4MTA4MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hl
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5QzgxRDVBMUMyMEU3RTIwMDVDNEM4MiAvKiBBdXRv
bWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTk5NjksNiArOTk3MCw3IEBACiAJCQkJ
QTUxOEI1RDIxRkUxRDU1QjAwRjlGQTI4IC8qIFdLSW5zcGVjdG9yV0tXZWJWaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyREQ1RTEyOTIxMEFEQzdCMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9s
bGluZ0FuaW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE5RTEwQjEzMTVDRDE4MDA5RTcw
MzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNDJE
NjM0MTIyQTBFRkRGMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDc5MEE5RjFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0U5MTIxNDIyOTNDMjgwMDA1QkVDNzggLyogV0tNYWluLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDOThDNDhBQTFCNkZENUI1MDAxNDUxMDMgLyogV0tNZWRpYVNlc3Np
b25Gb2N1c01hbmFnZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIwYjEzZjc4ZTQyM2MwYTI1NzUyNTU0OTIwZDE5OTYw
MTFhZGQ5OTguLmUwZGMwMjgzMDJhNTdmMzRhODZlZmZiMTY2YTc3ZWYzYmMxNzA1ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI2NCw2ICsyNjQs
NyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q7CiBzdHJ1Y3QgTG9hZFBh
cmFtZXRlcnM7CiBzdHJ1Y3QgUHJpbnRJbmZvOwogc3RydWN0IFRleHRJbnB1dENvbnRleHQ7Citz
dHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhOwogc3RydWN0IFdlYkF1dG9jb3JyZWN0aW9uQ29u
dGV4dDsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZl
cmVuY2VzU3RvcmU7CkBAIC02NTcsNyArNjU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVz
dERpY3RhdGlvbkNvbnRleHQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCByZXBsYWNlRGljdGF0ZWRU
ZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2
b2lkIHJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJp
bmcmIG5ld1RleHQpOwotICAgIHZvaWQgcmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShjb25zdCBT
dHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCByZXF1
ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZvckF1dG9jb3JyZWN0aW9u
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkF1dG9jb3JyZWN0aW9uRGF0YSk+JiYgcmVwbHkp
OwogICAgIHZvaWQgYXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24s
IGNvbnN0IFN0cmluZyYgb3JpZ2luYWxUZXh0LCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHN5bmNB
cHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBvcmlnaW5hbFRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgcmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTJmMTkwNjAx
MDU1NzcxYTRlZWYyNmFjODQzNDljNzE2Zjg1YjE5OS4uYjA2YWIwZjZlZWMxYzc5NDFjYzlkYzEz
YzgxYWUxZTcwM2Q0ZThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC03Nyw3ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlcXVlc3REaWN0YXRpb25Db250ZXh0KFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFJlcGxhY2VEaWN0YXRlZFRleHQoU3Ry
aW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQogICAgIFJlcGxhY2VTZWxlY3RlZFRleHQoU3Ry
aW5nIG9sZFRleHQsIFN0cmluZyBuZXdUZXh0KQotICAgIFJlcXVlc3RBdXRvY29ycmVjdGlvbkRh
dGEoU3RyaW5nIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgUmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9j
b3JyZWN0aW9uKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViQXV0b2NvcnJlY3Rpb25EYXRhIGRhdGEp
IEFzeW5jCiAgICAgQXBwbHlBdXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwgU3RyaW5n
IG9yaWdpbmFsVGV4dCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgU3luY0Fw
cGx5QXV0b2NvcnJlY3Rpb24oU3RyaW5nIGNvcnJlY3Rpb24sIFN0cmluZyBvcmlnaW5hbFRleHQp
IC0+IChib29sIGF1dG9jb3JyZWN0aW9uQXBwbGllZCkgU3luY2hyb25vdXMKICAgICBSZXF1ZXN0
QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTg4YTc5ZjUwM2FmMTc4ZGI0MGI4NzJk
OTFhZTllZmQ1YWE4YWJiNy4uYzljZTE4ZjFmMjUxOWNmOGQ4MDA4YmY2Yjk1ZWU4YzJmMmMyMjVl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgIlZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uaCIKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RJT1MuaCIK
ICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9uQ29udGV4dC5oIgorI2ltcG9ydCAiV2ViQXV0b2Nv
cnJlY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKICNpbXBvcnQgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCAiV2ViRnJhbWUuaCIKQEAgLTIyNDQsMjIg
KzIyNDUsMjIgQEAgdm9pZCBXZWJQYWdlOjpyZXBsYWNlRGljdGF0ZWRUZXh0KGNvbnN0IFN0cmlu
ZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KQogICAgIGZyYW1lLmVkaXRvcigpLnNl
dElnbm9yZVNlbGVjdGlvbkNoYW5nZXMoZmFsc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlcXVl
c3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24s
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdEF1dG9jb3JyZWN0
aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJBdXRvY29ycmVjdGlvbkRhdGEpPiYmIHJlcGx5KQogewotICAgIEZyYW1l
JiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CisgICAgYXV0byYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOwogICAgIGlmICghZnJhbWUuc2VsZWN0aW9uKCkuaXNDYXJldCgpKSB7Ci0gICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJh
Y2soVmVjdG9yPEZsb2F0UmVjdD4oKSwgU3RyaW5nKCksIDAsIDAsIGNhbGxiYWNrSUQpKTsKKyAg
ICAgICAgcmVwbHkoeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFZpc2libGVQ
b3NpdGlvbiBwb3NpdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLnN0YXJ0KCk7
Ci0gICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHdvcmRSYW5nZUZyb21Qb3NpdGlvbihwb3NpdGlv
bik7CisgICAgYXV0byByYW5nZSA9IHdvcmRSYW5nZUZyb21Qb3NpdGlvbihwb3NpdGlvbik7CiAg
ICAgaWYgKCFyYW5nZSkgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkF1
dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrKFZlY3RvcjxGbG9hdFJlY3Q+KCksIFN0cmluZygpLCAw
LCAwLCBjYWxsYmFja0lEKSk7CisgICAgICAgIHJlcGx5KHsgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBTdHJpbmcgdGV4dEZvclJhbmdlID0gcGxhaW5UZXh0UmVwbGFjaW5nTm9C
cmVha1NwYWNlKHJhbmdlLmdldCgpKTsKKyAgICBhdXRvIHRleHRGb3JSYW5nZSA9IHBsYWluVGV4
dFJlcGxhY2luZ05vQnJlYWtTcGFjZShyYW5nZS5nZXQoKSk7CiAgICAgY29uc3QgdW5zaWduZWQg
bWF4U2VhcmNoQXR0ZW1wdHMgPSA1OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyAgaSA8IG1heFNl
YXJjaEF0dGVtcHRzICYmIHRleHRGb3JSYW5nZSAhPSB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb247ICsr
aSkKICAgICB7CkBAIC0yMjg2LDEwICsyMjg3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QXV0
b2NvcnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBDYWwK
ICAgICBpZiAoYXV0byogY29yZUZvbnQgPSBmcmFtZS5lZGl0b3IoKS5mb250Rm9yU2VsZWN0aW9u
KG11bHRpcGxlRm9udHMpKQogICAgICAgICBmb250ID0gY29yZUZvbnQtPmdldENURm9udCgpOwog
Ci0gICAgQ0dGbG9hdCBmb250U2l6ZSA9IENURm9udEdldFNpemUoZm9udCk7Ci0gICAgdWludDY0
X3QgZm9udFRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKGZvbnQpOwotICAgIFJldGFp
blB0cjxOU1N0cmluZz4gZm9udE5hbWUgPSBhZG9wdE5TKChOU1N0cmluZyAqKUNURm9udENvcHlG
YW1pbHlOYW1lKGZvbnQpKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkF1dG9j
b3JyZWN0aW9uRGF0YUNhbGxiYWNrKHJlY3RzRm9yVGV4dCwgZm9udE5hbWUuZ2V0KCksIGZvbnRT
aXplLCBmb250VHJhaXRzLCBjYWxsYmFja0lEKSk7CisgICAgcmVwbHkoeyBXVEZNb3ZlKHJlY3Rz
Rm9yVGV4dCksIChfX2JyaWRnZSBVSUZvbnQgKilmb250IH0pOwogfQogCiB2b2lkIFdlYlBhZ2U6
OmFwcGx5QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJp
bmcmIG9yaWdpbmFsVGV4dCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDMwMzk0NTljZWNlODQwMjE4ZjEz
MTdkYzAwNjg1ZDY2ODM2NjQxYmYuLmRjOTFhNTljNTljZTNkM2E0ZDA2ZjM3YWU5ZjI0NWQ2MjVi
NzliN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxOS0wNS0zMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBdXRvY29ycmVjdGlvbiBtZW51IGZvbnQgaXMg
VGltZXMgTmV3IFJvbWFuIHdoZW4gdXNpbmcgZm9udC1mYW1pbHk6IFVJQ1RGb250VGV4dFN0eWxl
KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NDI3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDAzMTgyNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgLWZvbnRGb3JDYXJldFNlbGVjdGlvbiByZXR1cm5zIHRoZSBzeXN0ZW0gZm9udCB3aGVu
IHVzaW5nIFVJQ1RGb250VGV4dFN0eWxlCisgICAgICAgIGluIGFuIGVkaXRhYmxlIHdlYiB2aWV3
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQXV0b2NvcnJl
Y3Rpb25UZXN0c0lPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgYXV0b2Nv
cnJlY3Rpb25SZWN0c0ZvclN0cmluZzpdKToKKyAgICAgICAgKGNoZWNrQ0dSZWN0SXNFcXVhbFRv
Q0dSZWN0V2l0aExvZ2dpbmcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdL
V2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmg6CisKIDIw
MTktMDUtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgRHJhZ0FuZERyb3BUZXN0cy5EYXRhVHJhbnNmZXJFeHBvc2VQbGFpblRleHRXaXRoRmlsZVVS
TEFzRmlsZSBBUEkgdGVzdCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3
YWE3ZDE4MmU4ZmNmMDA1MzkwZTIyYjY1NGYzMDYwNDVlOWMzN2YuLjBlYTExM2ZmYmQxMmJiOWRk
NjAxZGEzNGM1MmYzOTkwMzc0NTMwNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTIs
NiArODkyLDcgQEAKIAkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0
aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwg
Ki87IH07CiAJCUY0MUFCOUE5MUVGNDY5NkIwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQx
QUI5OUExRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCAqLzsgfTsKIAkJRjQx
QUI5QUExRUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTUxRUY0
NjkyQzAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgKi87IH07CisJCUY0MkQ2MzQ0
MjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYzNDMyMkExNzI5RjAwRDJG
QjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi87IH07CiAJCUY0MkRBNTE2MUQ4Q0VG
RTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFE
OENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87
IH07CiAJCUY0M0UzQkJGMjBEQURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZpZXdUZXN0cy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0M0UzQkJFMjBE
QURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZpZXdUZXN0cy5tbSAqLzsgfTsKIAkJRjQzRTNCQzEy
MERBREJDNTAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDNFM0JDMDIwREFEQjgwMDBBNEU3
RUQgLyogZml4ZWQtbmF2LWJhci5odG1sICovOyB9OwpAQCAtMjI3OSw2ICsyMjgwLDcgQEAKIAkJ
RjQxQUI5OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDFBQjk5RDFFRjQ2OTJDMDA4M0ZBMDggLyogbGlu
ay1hbmQtdGFyZ2V0LWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxpbmstYW5kLXRhcmdldC1kaXYuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTlFMUVGNDY5MkMwMDgzRkEw
OCAvKiBkaXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZGl2LWFuZC1sYXJnZS1p
bWFnZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRDYzNDMyMkExNzI5
RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMt
b25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmll
bGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29hL2xhcmdlLWlu
cHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OwogCQlGNDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1Njcm9sbFZpZXdUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJmaXhlZC1uYXYtYmFyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjg1NCw2ICsyODU2LDcgQEAKIAkJCQlBMUM0RkI2RjFCQUNDRUZBMDAzNzQy
RDAgLyogUmVzb3VyY2VzICovLAogCQkJCTJFMjA1QkEzMUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nl
c3NpYmlsaXR5VGVzdHNJT1MubW0gKi8sCiAJCQkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQzOEI5IC8q
IEFjdGlvblNoZWV0VGVzdHMubW0gKi8sCisJCQkJRjQyRDYzNDMyMkExNzI5RjAwRDJGQjNBIC8q
IEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi8sCiAJCQkJRjRENEYzQjcxRTRFMzZFNDAwQkIy
NzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1MubW0gKi8sCiAJCQkJRjRCQzBCMTMyMTQ2Qzg0OTAw
MkEwNDc4IC8qIEZvY3VzUHJlc2VydmF0aW9uVGVzdHMubW0gKi8sCiAJCQkJRjQ1RTE1NzIyMTEy
Q0UyOTAwMzA3RTgyIC8qIEtleWJvYXJkSW5wdXRUZXN0c0lPUy5tbSAqLywKQEAgLTQzNzgsNiAr
NDM4MSw3IEBACiAJCQkJMzdCQ0E2MUMxQjU5NkJBOTAwMjAxMkNBIC8qIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBD
NTFEMEE2NTQ2MDBGRUJDRjMgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0VDRDFBNDExQTdFMDA0NDdDNEMgLyogU2ltcGxpZnlNYXJrdXAubW0gaW4gU291cmNlcyAq
LywKKwkJCQlGNDJENjM0NDIyQTE3MjlGMDBEMkZCM0EgLyogQXV0b2NvcnJlY3Rpb25UZXN0c0lP
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERkY3QjZEMURBNDg3QUYwMDgxNDYxNCAvKiBTbmFw
c2hvdFN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RkZBOUUxRUQzQUE4NTAwRjcxMTFG
IC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQXV0b2NvcnJl
Y3Rpb25UZXN0c0lPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0F1dG9jb3Jy
ZWN0aW9uVGVzdHNJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk3MjAzYTA5MzQ2ZjJmYzI3MTM4N2NiZGQz
ZDBjOGQ0MzVjZGQwMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0F1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0KQEAgLTAsMCArMSw5NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RJbnB1dERlbGVnYXRl
LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworQGludGVyZmFjZSBUZXN0V0tXZWJW
aWV3IChBdXRvY29ycmVjdGlvblRlc3RzKQorLSAoVUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMgKilh
dXRvY29ycmVjdGlvblJlY3RzRm9yU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgKEF1dG9jb3JyZWN0aW9uVGVzdHMpCisKKy0g
KFVJV0tBdXRvY29ycmVjdGlvblJlY3RzICopYXV0b2NvcnJlY3Rpb25SZWN0c0ZvclN0cmluZzoo
TlNTdHJpbmcgKilzdHJpbmcKK3sKKyAgICBSZXRhaW5QdHI8VUlXS0F1dG9jb3JyZWN0aW9uUmVj
dHM+IHJlc3VsdDsKKyAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbc2VsZi50ZXh0SW5wdXRD
b250ZW50VmlldyByZXF1ZXN0QXV0b2NvcnJlY3Rpb25SZWN0c0ZvclN0cmluZzpzdHJpbmcgd2l0
aENvbXBsZXRpb25IYW5kbGVyOlsmXSAoVUlXS0F1dG9jb3JyZWN0aW9uUmVjdHMgKnJlY3RzKSB7
CisgICAgICAgIHJlc3VsdCA9IHJlY3RzOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIHJldHVybiByZXN1bHQu
YXV0b3JlbGVhc2UoKTsKK30KKworQGVuZAorCitzdGF0aWMgdm9pZCBjaGVja0NHUmVjdElzRXF1
YWxUb0NHUmVjdFdpdGhMb2dnaW5nKENHUmVjdCBleHBlY3RlZCwgQ0dSZWN0IG9ic2VydmVkKQor
eworICAgIEJPT0wgaXNFcXVhbCA9IENHUmVjdEVxdWFsVG9SZWN0KGV4cGVjdGVkLCBvYnNlcnZl
ZCk7CisgICAgRVhQRUNUX1RSVUUoaXNFcXVhbCk7CisgICAgaWYgKCFpc0VxdWFsKQorICAgICAg
ICBOU0xvZyhAIkV4cGVjdGVkOiAlQCBidXQgb2JzZXJ2ZWQ6ICVAIiwgTlNTdHJpbmdGcm9tQ0dS
ZWN0KGV4cGVjdGVkKSwgTlNTdHJpbmdGcm9tQ0dSZWN0KG9ic2VydmVkKSk7Cit9CisKK1RFU1Qo
QXV0b2NvcnJlY3Rpb25UZXN0cywgRm9udEF0Q2FyZXRXaGVuVXNpbmdVSUNURm9udFRleHRTdHls
ZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdF0pOworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5w
dXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxl
bWVudEluZm8+KSAtPiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeSB7CisgICAgICAg
IHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OworICAgIH1dOwor
CisgICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6aW5wdXREZWxlZ2F0ZS5nZXQoKV07Cisg
ICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xJz48Ym9keSBzdHlsZT0nZm9udC1zaXplOiAxNnB4
OyBmb250LWZhbWlseTogVUlDVEZvbnRUZXh0U3R5bGVCb2R5Jz5XdWxrPC9ib2R5PiJdOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5n
ZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9leGVjdXRlRWRpdENv
bW1hbmQ6QCJNb3ZlVG9FbmRPZkxpbmUiIGFyZ3VtZW50Om5pbCBjb21wbGV0aW9uOm5pbF07CisK
KyAgICBhdXRvIGF1dG9jb3JyZWN0aW9uUmVjdHMgPSByZXRhaW5QdHIoW3dlYlZpZXcgYXV0b2Nv
cnJlY3Rpb25SZWN0c0ZvclN0cmluZzpAIld1bGsiXSk7CisgICAgY2hlY2tDR1JlY3RJc0VxdWFs
VG9DR1JlY3RXaXRoTG9nZ2luZyhDR1JlY3RNYWtlKDgsIDgsIDM2LCAyMSksIFthdXRvY29ycmVj
dGlvblJlY3RzIGZpcnN0UmVjdF0pOworICAgIGNoZWNrQ0dSZWN0SXNFcXVhbFRvQ0dSZWN0V2l0
aExvZ2dpbmcoQ0dSZWN0TWFrZSg4LCA4LCAzNiwgMjEpLCBbYXV0b2NvcnJlY3Rpb25SZWN0cyBs
YXN0UmVjdF0pOworCisgICAgYXV0byBjb250ZW50VmlldyA9IFt3ZWJWaWV3IHRleHRJbnB1dENv
bnRlbnRWaWV3XTsKKyAgICBVSUZvbnQgKmZvbnRCZWZvcmVTY2FsaW5nID0gW2NvbnRlbnRWaWV3
IGZvbnRGb3JDYXJldFNlbGVjdGlvbl07CisgICAgVUlGb250ICpzaXplMTZTeXN0ZW1Gb250ID0g
W1VJRm9udCBzeXN0ZW1Gb250T2ZTaXplOjE2XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoc2l6ZTE2
U3lzdGVtRm9udC5mb250TmFtZSwgZm9udEJlZm9yZVNjYWxpbmcuZm9udE5hbWUpOworICAgIEVY
UEVDVF9XS19TVFJFUShzaXplMTZTeXN0ZW1Gb250LmZhbWlseU5hbWUsIGZvbnRCZWZvcmVTY2Fs
aW5nLmZhbWlseU5hbWUpOworICAgIEVYUEVDVF9FUSgxNiwgZm9udEJlZm9yZVNjYWxpbmcucG9p
bnRTaXplKTsKKworICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLnpvb21TY2FsZSA9IDI7CisgICAg
VUlGb250ICpmb250QWZ0ZXJTY2FsaW5nID0gW2NvbnRlbnRWaWV3IGZvbnRGb3JDYXJldFNlbGVj
dGlvbl07CisgICAgVUlGb250ICpzaXplMzJTeXN0ZW1Gb250ID0gW1VJRm9udCBzeXN0ZW1Gb250
T2ZTaXplOjMyXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoc2l6ZTMyU3lzdGVtRm9udC5mb250TmFt
ZSwgZm9udEFmdGVyU2NhbGluZy5mb250TmFtZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKHNpemUz
MlN5c3RlbUZvbnQuZmFtaWx5TmFtZSwgZm9udEFmdGVyU2NhbGluZy5mYW1pbHlOYW1lKTsKKyAg
ICBFWFBFQ1RfRVEoMzIsIGZvbnRBZnRlclNjYWxpbmcucG9pbnRTaXplKTsKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdL
V2ViVmlldy5oCmluZGV4IDFhNGUwNDYyMmExN2QyMjBhYWRiMDQ2ZGJiY2Q1MzQ1MWE5OGE2YzAu
LmI2NjhhMDBjMzhlOTZhZmZjYjkwNDFhNTQ1YzdjZjY3NDhkYzBhZTEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC0zMiw2ICszMiw3IEBACiBAY2xhc3Mg
X1dLQWN0aXZhdGVkRWxlbWVudEluZm87CiBAcHJvdG9jb2wgVUlUZXh0SW5wdXRNdWx0aURvY3Vt
ZW50OwogQHByb3RvY29sIFVJVGV4dElucHV0UHJpdmF0ZTsKK0Bwcm90b2NvbCBVSVdLSW50ZXJh
Y3Rpb25WaWV3UHJvdG9jb2w7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKEFkZGl0
aW9uYWxEZWNsYXJhdGlvbnMpCkBAIC04NCw3ICs4NSw3IEBACiBAZW5kCiAKIEBpbnRlcmZhY2Ug
VGVzdFdLV2ViVmlldyAoSU9TT25seSkKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
VUlWaWV3IDxVSVRleHRJbnB1dFByaXZhdGUsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudD4gKnRl
eHRJbnB1dENvbnRlbnRWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVZp
ZXcgPFVJVGV4dElucHV0UHJpdmF0ZSwgVUlUZXh0SW5wdXRNdWx0aURvY3VtZW50LCBVSVdLSW50
ZXJhY3Rpb25WaWV3UHJvdG9jb2w+ICp0ZXh0SW5wdXRDb250ZW50VmlldzsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgUmV0YWluUHRyPE5TQXJyYXk+IHNlbGVjdGlvblJlY3RzQWZ0
ZXJQcmVzZW50YXRpb25VcGRhdGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENH
UmVjdCBjYXJldFZpZXdSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXM7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNWYWx1ZSAqPiAqc2VsZWN0aW9uVmlld1JlY3RzSW5D
b250ZW50Q29vcmRpbmF0ZXM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9V
SUtpdFNQSS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAppbmRleCA3MDI3
M2U4ZTc2NDkxY2E4NzlkYjBmZDFkMjBlZjU1OTFiYjQwYWUxLi5kOTMwYWU0ZTM3M2EwYmFjNmY4
YWE3NThiNDc1MjFlZWUwZDUzN2E4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lv
cy9VSUtpdFNQSS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKQEAg
LTgzLDYgKzgzLDcgQEAgV1RGX0VYVEVSTl9DX0VORAogLSAodm9pZCloYW5kbGVLZXlXZWJFdmVu
dDooV2ViRXZlbnQgKil0aGVFdmVudCB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdl
YkV2ZW50ICosIEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAoQk9PTClfc2hvdWxkU3VwcHJl
c3NTZWxlY3Rpb25Db21tYW5kczsKIC0gKE5TRGljdGlvbmFyeSAqKV9hdXRvZmlsbENvbnRleHQ7
CistIChVSUZvbnQgKilmb250Rm9yQ2FyZXRTZWxlY3Rpb247CiBAZW5kCiAKIEBpbnRlcmZhY2Ug
VUlXZWJGb3JtQWNjZXNzb3J5IDogVUlJbnB1dFZpZXcKQEAgLTE0Miw2ICsxNDMsMTUgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0RvY3VtZW50UmVxdWVzdEZsYWdzKSB7CiAK
IEBlbmQKIAorQGludGVyZmFjZSBVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyA6IE5TT2JqZWN0CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IGZpcnN0UmVjdDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljKSBDR1JlY3QgbGFzdFJlY3Q7CitAZW5kCisKK0Bwcm90b2NvbCBVSVdLSW50ZXJhY3Rpb25W
aWV3UHJvdG9jb2wKKy0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0aW9uUmVjdHNGb3JTdHJpbmc6
KE5TU3RyaW5nICopaW5wdXQgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShVSVdLQXV0
b2NvcnJlY3Rpb25SZWN0cyAqcmVjdHNGb3JJbnB1dCkpY29tcGxldGlvbkhhbmRsZXI7CitAZW5k
CisKICNlbmRpZgogCiAjaWYgX19oYXNfaW5jbHVkZSg8VUlLaXQvVUlUZXh0QXV0b2ZpbGxTdWdn
ZXN0aW9uLmg+KQpAQCAtMTc1LDcgKzE4NSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU0ludGVn
ZXIsIFVJV0tEb2N1bWVudFJlcXVlc3RGbGFncykgewogKyAoQk9PTClpc0luSGFyZHdhcmVLZXli
b2FyZE1vZGU7CiBAZW5kCiAKLUBwcm90b2NvbCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2xf
U3RhZ2luZ180OTIzNjM4NAorQHByb3RvY29sIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbF9T
dGFnaW5nXzQ5MjM2Mzg0IDxVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2w+CiAtICh2b2lkKXBh
c3RlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cjsKIEBlbmQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371088</attachid>
            <date>2019-05-31 14:49:30 -0700</date>
            <delta_ts>2019-05-31 16:36:36 -0700</delta_ts>
            <desc>Fix macOS builds</desc>
            <filename>bug-198427-20190531144929.patch</filename>
            <type>text/plain</type>
            <size>47365</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA2MWExZTdmNTExMTFmYzM5
MWIyMWZlYmFhYTdlNzNhYTU5ZjhjYzAuLjE1Y2UyNDQ4MzE0MzFkMGZkNDcxNWYxZjdjNGNmYWU3
MTFjZmM0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTktMDUtMzEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQXV0b2NvcnJl
Y3Rpb24gbWVudSBmb250IGlzIFRpbWVzIE5ldyBSb21hbiB3aGVuIHVzaW5nIGZvbnQtZmFtaWx5
OiBVSUNURm9udFRleHRTdHlsZSoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODQyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwMzE4MjU+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBXaGVuIFVJQ1RGb250
VGV4dFN0eWxlKiBpcyBzcGVjaWZpZWQgYXMgdGhlIGZvbnQtZmFtaWx5IGluIGFuIGVkaXRhYmxl
IGVsZW1lbnQsIHRleHQgaW4gYXV0b2NvcnJlY3Rpb24gYnViYmxlcworICAgICAgICBhbHdheXMg
dXNlcyBUaW1lcyBOZXcgUm9tYW4gZm9udC4gVGhpcyBpcyBiZWNhdXNlIHdlIHNlbmQgYSBmb250
IGZhbWlseSBuYW1lLCBmb250IHNpemUsIGFuZCBmb250IGF0dHJpYnV0ZXMgdG8KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgd2hlbiBjb21wdXRpbmcgYXV0b2NvcnJlY3Rpb24gZGF0YSBmb3IgVUlL
aXQsIGFuZCB0aGVuIGFzc2VtYmxlIHRoaXMgaW5mb3JtYXRpb24gaW50byBhIFVJRm9udAorICAg
ICAgICBvYmplY3QgdmlhICtbVUlGb250IGZvbnRXaXRoRmFtaWx5TmFtZTp0cmFpdHM6c2l6ZTpd
LiBIb3dldmVyLCBpbiB0aGUgY2FzZSB3aGVyZSBVSUNURm9udFRleHRTdHlsZSogaXMgc3BlY2lm
aWVkCisgICAgICAgIGFzIHRoZSBmb250LWZhbWlseSBpbiBDU1MsIHRoZSBmb250IGZhbWlseSB0
aGF0IHdlIHNlbmQgdG8gdGhlIFVJIHByb2Nlc3MgZW5kcyB1cCBiZWluZyAiLkFwcGxlU3lzdGVt
VUlGb250IiwKKyAgICAgICAgd2hpY2ggK2ZvbnRXaXRoRmFtaWx5TmFtZTp0cmFpdHM6c2l6ZTog
ZmFpbHMgdG8gbWFwIHRvIHRoZSBzeXN0ZW0gZm9udCBhcyBpbnRlbmRlZC4KKworICAgICAgICBU
byBmaXggdGhpcywgd2UgcHJvcGFnYXRlIGZvbnQgaW5mb3JtYXRpb24gdG8gdGhlIFVJIHByb2Nl
c3MgYnkgZW5jb2RpbmcgdGhlIFVJRm9udCBpdHNlbGYgdmlhIElQQywgd2hpY2gKKyAgICAgICAg
c2VyaWFsaXplcyB0aGUgZm9udCBkZXNjcmlwdG9yLCBhbmQgdGhlbiBkZXNlcmlhbGl6ZXMgaW50
byBhIFVJRm9udCBpbiB0aGUgVUkgcHJvY2Vzcy4gVGhpcyBhbGxvd3MgdGhlIHN5c3RlbQorICAg
ICAgICBmb250IHRvIGJlIHJldHVybmVkIGluIC1mb250Rm9yQ2FyZXRTZWxlY3Rpb24sIHdoaWNo
IGlzIGludm9rZWQgYnkgVUlLaXQgd2hlbiBkZXRlcm1pbmluZyB0aGUgZm9udCBmb3IgdGhlCisg
ICAgICAgIGF1dG9jb3JyZWN0aW9uIGJ1YmJsZS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICAgICAgVGVzdDogQXV0b2NvcnJlY3Rpb25UZXN0cy5Gb250QXRDYXJldFdoZW5Vc2lu
Z1VJQ1RGb250VGV4dFN0eWxlCisKKyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYkF1dG9jb3JyZWN0
aW9uRGF0YS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvQ29ycmVj
dGlvbkNhbGxiYWNrLmguCisgICAgICAgICogU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVjdGlvbkRh
dGEubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvQ29ycmVjdGlv
bkNhbGxiYWNrLmguCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9jb3JyZWN0aW9uRGF0YTo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b2NvcnJlY3Rpb25EYXRhOjpkZWNv
ZGUpOgorCisgICAgICAgIEludHJvZHVjZSBXZWJBdXRvY29ycmVjdGlvbkRhdGEsIGEgc3RydWN0
IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gdXNlZCB0byBzaG93IGF1dG9jb3JyZWN0aW9uIFVJIG9u
IGlPUyAoaS5lLgorICAgICAgICBoaWdobGlnaHRzIGFuZCB0aGUgYnViYmxlKS4gVGhpcyBjb25z
aXN0cyBvZiBhIGxpc3Qgb2YgcmVjdHMsIGFsb25nIHdpdGggYSBVSUZvbnQuCisKKyAgICAgICAg
KiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAg
IFJlZmFjdG9yIHJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEgdG8gcmVxdWVzdCBhIFdlYkF1dG9j
b3JyZWN0aW9uRGF0YSBpbnN0ZWFkLCBhbmQgYWxzbyB1c2UgdGhlIG5ldyBhc3luYyBJUEMKKyAg
ICAgICAgcmVwbHkgbWVjaGFuaXNtLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZXF1ZXN0QXV0b2Nv
cnJlY3Rpb25SZWN0c0ZvclN0cmluZzp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZm9udEZvckNhcmV0U2VsZWN0aW9uXSk6CisKKyAgICAgICAgR3Jh
YiB0aGUgVUlGb250IGRpcmVjdGx5IGZyb20gdGhlIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS4gQWxz
bywgYWRkcmVzcyBhIEZJWE1FIGJ5IHNjYWxpbmcgdGhlIGZvbnQgc2l6ZSBieSB0aGUKKyAgICAg
ICAgY29udGVudCBzY2FsZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVj
dGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmF1dG9jb3JyZWN0aW9u
RGF0YUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojph
dXRvY29ycmVjdGlvbkNvbnRleHRDYWxsYmFjayk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVtb3Zl
IHNvbWUgSVBDIGNhbGxiYWNrcyB0aGF0IGFyZSBub3cgdW51c2VkLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEpOgor
CiAyMDE5LTA1LTMxICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1OTUzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NDAx
NGQ1NzM4OWE1YjBiMmJlNGNjZTYxN2I4OTQ2YTAxNjkxOTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmgKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKworI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
RGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IEZsb2F0UmVjdDsKK30KKworT0JKQ19DTEFTUyBVSUZvbnQ7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhIHsKKyAgICBWZWN0b3I8V2ViQ29yZTo6
RmxvYXRSZWN0PiB0ZXh0UmVjdHM7CisgICAgUmV0YWluUHRyPFVJRm9udD4gZm9udDsKKworICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxX
ZWJBdXRvY29ycmVjdGlvbkRhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVhN2U1N2FkZDFkM2NhY2RlZTM5YWRhZjA3OWFhYzI1M2UwNGJiNTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViQXV0b2NvcnJlY3Rpb25EYXRh
Lm1tCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKworI2ltcG9ydCAiQXJndW1lbnRDb2RlcnNDb2NvYS5oIgorI2ltcG9ydCAiRGVjb2Rlci5o
IgorI2ltcG9ydCAiRW5jb2Rlci5oIgorI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFdlYkF1dG9jb3JyZWN0aW9uRGF0YTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHRleHRS
ZWN0czsKKyAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBmb250LmdldCgpKTsKK30KKworT3B0aW9u
YWw8V2ViQXV0b2NvcnJlY3Rpb25EYXRhPiBXZWJBdXRvY29ycmVjdGlvbkRhdGE6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8VmVjdG9yPEZsb2F0UmVjdD4+
IHRleHRSZWN0czsKKyAgICBkZWNvZGVyID4+IHRleHRSZWN0czsKKyAgICBpZiAoIXRleHRSZWN0
cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIFJldGFpblB0cjxVSUZvbnQ+
IGZvbnQ7CisgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBmb250LCBAWyBVSUZvbnQuY2xh
c3MgXSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnRl
eHRSZWN0cywgZm9udCB9fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGEzZmIwM2Qy
ZjM1ZTRjODU5NTRjZGU4YjNjMzk3NzgyZTYwYzQ1NWEuLmFlNmZlNmRkYzJmOTk3Nzc4YzQ5NTkz
YTRjYjFlYzYxZjExYTQyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTE3Miw2ICsxNzIs
NyBAQCBTaGFyZWQvaW9zL05hdGl2ZVdlYktleWJvYXJkRXZlbnRJT1MubW0KIFNoYXJlZC9pb3Mv
TmF0aXZlV2ViTW91c2VFdmVudElPUy5tbQogU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tCiBTaGFyZWQvaW9zL1F1aWNrTG9va0RvY3VtZW50RGF0YS5jcHAKK1NoYXJlZC9pb3Mv
V2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tCiBTaGFyZWQvaW9zL1dlYkljb25VdGlsaXRpZXMubW0K
IFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCiBTaGFyZWQvaW9zL1dlYlBsYXRmb3Jt
VG91Y2hQb2ludElPUy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9Db3JyZWN0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9Db3Jy
ZWN0aW9uQ2FsbGJhY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgwODU2ZmFk
ZDg4NjY3NzFjNWUzMTIwNjNiMjM2MzAxNmI3MDBmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvQ29ycmVj
dGlvbkNhbGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrX2gKLSNkZWZpbmUgQXV0b0NvcnJlY3Rp
b25DYWxsYmFja19oCi0KLSNpbmNsdWRlICJBUElFcnJvci5oIgotI2luY2x1ZGUgIkdlbmVyaWND
YWxsYmFjay5oIgotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LXN0cnVjdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQ7Ci0KLXR5cGVkZWYgR2VuZXJpY0NhbGxi
YWNrPGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+JiwgY29uc3QgU3RyaW5nJiwgZG91
YmxlLCB1aW50NjRfdD4gQXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2s7Ci10eXBlZGVmIEdlbmVy
aWNDYWxsYmFjazxjb25zdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQmPiBBdXRvY29ycmVjdGlv
bkNvbnRleHRDYWxsYmFjazsKLXR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyY+IFNlbGVjdGlvbkNvbnRleHRDYWxsYmFjazsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBBdXRvQ29ycmVjdGlvbkNhbGxi
YWNrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGIwMDNkNjg5
ZDg4MmZmMmRjYTU2NjJkZjUxN2E1YjYyYWE3YjAxMS4uNmI0ZDM0ODU2Yzk4NmQ5MWI0NzA1MmM3
NWY1MWJhNTk4NzYzM2I0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
Ci0jaW5jbHVkZSAiQXV0b0NvcnJlY3Rpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiRG93
bmxvYWRJRC5oIgpAQCAtMjkxLDYgKzI5MCw3IEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVyczsKIHN0
cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURhdGE7CiBzdHJ1Y3QgUHJpbnRJbmZvOwogc3RydWN0IFRl
eHRJbnB1dENvbnRleHQ7CitzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhOwogc3RydWN0IFdl
YlBvcHVwSXRlbTsKIHN0cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIApAQCAtMzA3LDYg
KzMwNyw3IEBAIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEVkaXRpbmdSYW5nZT4gRWRpdGluZ1Jh
bmdlQ2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBTdHJpbmcmPiBTdHJp
bmdDYWxsYmFjazsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiwgYm9vbCwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyY+IFNjcmlwdFZh
bHVlQ2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBXZWJDb3JlOjpGb250
QXR0cmlidXRlcyY+IEZvbnRBdHRyaWJ1dGVzQ2FsbGJhY2s7Cit0eXBlZGVmIEdlbmVyaWNDYWxs
YmFjazxjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmPiBTZWxlY3Rp
b25Db250ZXh0Q2FsbGJhY2s7CiAKICNpZiBIQVZFKFZJU0lCSUxJVFlfUFJPUEFHQVRJT05fVklF
VykKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwpAQCAtNjc4LDcgKzY3
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luU2VsZWN0aW9uSW5EaXJlY3Rpb24oV2ViQ29y
ZTo6U2VsZWN0aW9uRGlyZWN0aW9uLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHVpbnQ2NF90LCBDYWxs
YmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50
UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1
c2VkRWxlbWVudCwgV1RGOjpGdW5jdGlvbjx2b2lkKHVpbnQ2NF90LCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25XaXRoRXh0ZW50UG9pbnRBbmRCb3Vu
ZGFyeShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCwgV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBi
b29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQsIFdURjo6RnVuY3Rpb248dm9pZCh1
aW50NjRfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwotICAgIHZvaWQgcmVxdWVzdEF1dG9j
b3JyZWN0aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVjdGlvbiwgV1RGOjpG
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYsIGNvbnN0IFN0
cmluZyYsIGRvdWJsZSwgdWludDY0X3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2
b2lkIHJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2Nv
cnJlY3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRhKT4m
Jik7CiAgICAgdm9pZCBhcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlv
biwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3Qg
U3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIGJvb2wgYXBwbHlBdXRvY29y
cmVjdGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxU
ZXh0KTsKICAgICB2b2lkIHJlcXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKTsKQEAgLTE4Njks
OCArMTg3MCw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lk
IGdlc3R1cmVDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQzMl90IGdlc3R1
cmVUeXBlLCB1aW50MzJfdCBnZXN0dXJlU3RhdGUsIHVpbnQzMl90IGZsYWdzLCBDYWxsYmFja0lE
KTsKICAgICB2b2lkIHRvdWNoZXNDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVp
bnQzMl90IHRvdWNoZXMsIHVpbnQzMl90IGZsYWdzLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGF1
dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+
JiwgY29uc3QgU3RyaW5nJiBmb250TmFtZSwgZmxvYXQgZm9udFNpemUsIHVpbnQ2NF90IGZvbnRU
cmFpdHMsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgYXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJh
Y2soY29uc3QgV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0JiwgQ2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBzZWxlY3Rpb25Db250ZXh0Q2FsbGJhY2soY29uc3QgU3RyaW5nJiBzZWxlY3RlZFRleHQsIGNv
bnN0IFN0cmluZyYgYmVmb3JlVGV4dCwgY29uc3QgU3RyaW5nJiBhZnRlclRleHQsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgRWRpdG9yU3RhdGUmLCBib29s
IGlzQ2hhckV2ZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBlbGVtZW50UmVjdCwgV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBjb25zdCBT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBhODQ5ODQ3YjUzNWQyNmUxNGNiZDI4MDIwYjM3OWE3ZjE3NTdkNzE1Li5j
MDA4ZjJjYmZjNDRlOWU2Zjg3YmY0MDg3ZjYwZDU5MWEzOWI0N2FjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xODYsOCArMTg2
LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIEdlc3R1cmVDYWxsYmFjayhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWludDMyX3Qg
Z2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgdWludDMyX3QgZmxhZ3MsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFRvdWNoZXNDYWxsYmFjayhXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgdWludDMyX3QgdG91Y2hlcywgdWludDMyX3QgZmxhZ3MsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEF1dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrKFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IHRleHRSZWN0cywgU3RyaW5nIGZvbnROYW1lLCBkb3Vi
bGUgZm9udFNpemUsIHVpbnQ2NF90IHRyYWl0cywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCi0gICAgQXV0b2NvcnJlY3Rpb25Db250ZXh0Q2FsbGJhY2soc3RydWN0IFdlYktpdDo6V2Vi
QXV0b2NvcnJlY3Rpb25Db250ZXh0IGNvbnRleHQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIFNlbGVjdGlvbkNvbnRleHRDYWxsYmFjayhTdHJpbmcgc2VsZWN0ZWRUZXh0LCBT
dHJpbmcgYmVmb3JlVGV4dCwgU3RyaW5nIGFmdGVyVGV4dCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAgICAgSW50ZXJwcmV0S2V5RXZlbnQoc3RydWN0IFdlYktpdDo6RWRpdG9yU3Rh
dGUgc3RhdGUsIGJvb2wgaXNDaGFyRXZlbnQpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3Vz
CiAgICAgRGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb24oc3RydWN0IFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
NzkxN2RiNmRhN2VmMjVlODQ5OTdmZGE1ODc2ZGFlZmYyYTEyYWI1ZS4uZTRiYzQ2OWQyOGZmNTYw
YjIzNzZjNmNiNjA2MzgwYWJjMjQ3NTU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTgxLDkgKzE4MSw3
IEBAIHN0cnVjdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvIHsKIFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBXS1NlbGVjdGlvbkRyYXdpbmdJbmZvJik7
CiAKIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7Ci0gICAgU3RyaW5nIGZvbnROYW1lOwot
ICAgIENHRmxvYXQgZm9udFNpemU7Ci0gICAgdWludDY0X3QgZm9udFRyYWl0czsKKyAgICBSZXRh
aW5QdHI8VUlGb250PiBmb250OwogICAgIENHUmVjdCB0ZXh0Rmlyc3RSZWN0OwogICAgIENHUmVj
dCB0ZXh0TGFzdFJlY3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDc4NDBiOWY2OTFjMjcxMGFl
MGYzYjZmYTlhMjliZGJlY2EyMGJmOS4uMDJhZTEyMjU1M2VhNGEyOTA3OGNjYTM3NmEyMDJkYWZm
NmQ1ODZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0ICJXS1dl
YlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZS5oIgogI2ltcG9ydCAi
V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0LmgiCisjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRh
dGEuaCIKICNpbXBvcnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgogI2lt
cG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYklPU0V2ZW50RmFjdG9yeS5oIgpAQCAtMzUy
OSw5ICszNTMwLDEwIEBAIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0aW9uUmVjdHNGb3JTdHJp
bmc6KE5TU3RyaW5nICopaW5wdXQgd2l0aENvbXBsZXRpb25IYW5kCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBfcGFnZS0+cmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShpbnB1dCwgW3Zp
ZXcgPSByZXRhaW5QdHIoc2VsZiksIGNvbXBsZXRpb24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvJiByZWN0cywgYXV0byYgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwg
dWludDY0X3QgdHJhaXRzLCBhdXRvKSB7CisgICAgX3BhZ2UtPnJlcXVlc3RBdXRvY29ycmVjdGlv
bkRhdGEoaW5wdXQsIFt2aWV3ID0gcmV0YWluUHRyKHNlbGYpLCBjb21wbGV0aW9uID0gbWFrZUJs
b2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBkYXRhKSB7CiAgICAgICAgIENHUmVjdCBm
aXJzdFJlY3Q7CiAgICAgICAgIENHUmVjdCBsYXN0UmVjdDsKKyAgICAgICAgYXV0byYgcmVjdHMg
PSBkYXRhLnRleHRSZWN0czsKICAgICAgICAgaWYgKHJlY3RzLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgZmlyc3RSZWN0ID0gQ0dSZWN0WmVybzsKICAgICAgICAgICAgIGxhc3RSZWN0ID0gQ0dS
ZWN0WmVybzsKQEAgLTM1NDAsOSArMzU0Miw3IEBAIC0gKHZvaWQpcmVxdWVzdEF1dG9jb3JyZWN0
aW9uUmVjdHNGb3JTdHJpbmc6KE5TU3RyaW5nICopaW5wdXQgd2l0aENvbXBsZXRpb25IYW5kCiAg
ICAgICAgICAgICBsYXN0UmVjdCA9IHJlY3RzLmxhc3QoKTsKICAgICAgICAgfQogCi0gICAgICAg
IHZpZXctPl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udE5hbWUgPSBmb250TmFtZTsKLSAgICAgICAg
dmlldy0+X2F1dG9jb3JyZWN0aW9uRGF0YS5mb250U2l6ZSA9IGZvbnRTaXplOwotICAgICAgICB2
aWV3LT5fYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnRUcmFpdHMgPSB0cmFpdHM7CisgICAgICAgIHZp
ZXctPl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udCA9IGRhdGEuZm9udDsKICAgICAgICAgdmlldy0+
X2F1dG9jb3JyZWN0aW9uRGF0YS50ZXh0Rmlyc3RSZWN0ID0gZmlyc3RSZWN0OwogICAgICAgICB2
aWV3LT5fYXV0b2NvcnJlY3Rpb25EYXRhLnRleHRMYXN0UmVjdCA9IGxhc3RSZWN0OwogCkBAIC00
OTAwLDExICs0OTAwLDkgQEAgLSAoVUlDb2xvciAqKXRleHRDb2xvckZvckNhcmV0U2VsZWN0aW9u
CiAKIC0gKFVJRm9udCAqKWZvbnRGb3JDYXJldFNlbGVjdGlvbgogewotICAgIENHRmxvYXQgem9v
bVNjYWxlID0gMS4wOyAgICAvLyBGSVhNRTogcmV0cmlldmUgdGhlIGFjdHVhbCBkb2N1bWVudCBz
Y2FsZSBmYWN0b3IuCi0gICAgQ0dGbG9hdCBzY2FsZWRTaXplID0gX2F1dG9jb3JyZWN0aW9uRGF0
YS5mb250U2l6ZTsKLSAgICBpZiAoQ0dGQWJzKHpvb21TY2FsZSAtIDEuMCkgPiBGTFRfRVBTSUxP
TikKLSAgICAgICAgc2NhbGVkU2l6ZSAqPSB6b29tU2NhbGU7Ci0gICAgcmV0dXJuIFtVSUZvbnQg
Zm9udFdpdGhGYW1pbHlOYW1lOl9hdXRvY29ycmVjdGlvbkRhdGEuZm9udE5hbWUgdHJhaXRzOihV
SUZvbnRUcmFpdClfYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnRUcmFpdHMgc2l6ZTpzY2FsZWRTaXpl
XTsKKyAgICBVSUZvbnQgKmZvbnQgPSBfYXV0b2NvcnJlY3Rpb25EYXRhLmZvbnQuZ2V0KCk7Cisg
ICAgZG91YmxlIHpvb21TY2FsZSA9IHNlbGYuX2NvbnRlbnRab29tU2NhbGU7CisgICAgcmV0dXJu
IHN0ZDo6YWJzKHpvb21TY2FsZSAtIDEpID4gRkxUX0VQU0lMT04gPyBbZm9udCBmb250V2l0aFNp
emU6Zm9udC5wb2ludFNpemUgKiB6b29tU2NhbGVdIDogZm9udDsKIH0KIAogLSAoQk9PTCloYXNT
ZWxlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCmluZGV4IDhlOWJlZDVlZmZkNDNmNzdlOGFlODVlZDg1OGE5MDE1ZGQxODQ1NjAuLmEzZjgy
ZWFiZGRhZTEwZGM0MmU0ZTc3NTA5M2EyYTYwMGI2ZmQyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTIsNiArNTIsNyBAQAogI2lt
cG9ydCAiVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9u
Q29udGV4dC5oIgorI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJX
ZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJX
ZWJQcm9jZXNzUHJveHkuaCIKQEAgLTE2MCwxNyArMTYxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnRvdWNoZXNDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIHVpbnQzMl90
IHRvdWMKICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHBvaW50
LCB0b3VjaGVzLCBmbGFncyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjphdXRvY29ycmVjdGlv
bkRhdGFDYWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMsIGNv
bnN0IFN0cmluZyYgZm9udE5hbWUsIGZsb2F0IGZvbnRTaXplLCB1aW50NjRfdCBmb250VHJhaXRz
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJh
Y2tzLnRha2U8QXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwotICAgIGlm
ICghY2FsbGJhY2spIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZh
bHVlKHJlY3RzLCBmb250TmFtZSwgZm9udFNpemUsIGZvbnRUcmFpdHMpOwotfQotCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2VsZWN0aW9uQ29udGV4dENhbGxiYWNrKGNvbnN0IFN0cmluZyYgc2VsZWN0
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGJlZm9yZVRleHQsIGNvbnN0IFN0cmluZyYgYWZ0ZXJUZXh0
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYXV0byBjYWxsYmFjayA9IG1fY2FsbGJh
Y2tzLnRha2U8U2VsZWN0aW9uQ29udGV4dENhbGxiYWNrPihjYWxsYmFja0lEKTsKQEAgLTE4Miwx
NyArMTcyLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvbkNvbnRleHRDYWxsYmFjayhj
b25zdCBTdHJpbmcmIHNlbGVjdGVkVGV4dCwgY29uc3QgU3QKICAgICBjYWxsYmFjay0+cGVyZm9y
bUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHNlbGVjdGVkVGV4dCwgYmVmb3JlVGV4dCwgYWZ0ZXJU
ZXh0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmF1dG9jb3JyZWN0aW9uQ29udGV4dENhbGxi
YWNrKGNvbnN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dCYgY29udGV4dCwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPEF1dG9j
b3JyZWN0aW9uQ29udGV4dENhbGxiYWNrPihjYWxsYmFja0lEKTsKLSAgICBpZiAoIWNhbGxiYWNr
KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShjb250ZXh0
KTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdGlvblJlY3RzQ2FsbGJhY2soY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+JiBzZWxlY3Rpb25SZWN0cywgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPFNl
bGVjdGlvblJlY3RzQ2FsbGJhY2s+KGNhbGxiYWNrSUQpOwpAQCAtNDY0LDE1ICs0NDMsMTMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRU
ZXh0LCBjb25zdCBTdHJpbmcmIG5ld1QKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlJlcGxhY2VTZWxlY3RlZFRleHQob2xkVGV4dCwgbmV3VGV4dCksIG1fcGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3Qg
U3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIHVpbnQ2
NF90LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9y
QXV0b2NvcnJlY3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25E
YXRhKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKLSAg
ICAgICAgY2FsbGJhY2tGdW5jdGlvbihWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PigpLCBTdHJp
bmcoKSwgMCwgMCwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6VW5rbm93bik7CisgICAgICAgIGNhbGxi
YWNrKHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBhdXRvIGNhbGxiYWNrSUQg
PSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50
aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKLSAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEodGV4dEZvckF1
dG9jb3JyZWN0aW9uLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+Y29u
bmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RB
dXRvY29ycmVjdGlvbkRhdGEodGV4dEZvckF1dG9jb3JyZWN0aW9uKSwgV1RGTW92ZShjYWxsYmFj
ayksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmFwcGx5QXV0b2NvcnJlY3Rp
b24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4m
JiBjYWxsYmFja0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOTU3MzI4YzAxOTg2NmQwZWRjNjdjNDY0MzA5ZTAzYmMxMzc3
YzVlMy4uNDg1MGNhN2Y2NDIyZWEyYzFkY2JhYjJjM2U5NDFkMDNmYWMyYTU0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTk1LDcg
KzExOTUsNiBAQAogCQk3Q0JCODEyMTFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFu
ZGxlUmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0JCODExRjFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NDOTlBMzYxOEVG
N0NCQzAwNDhDOEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0M5OUEzNTE4RUY3Q0JDMDA0OEM4QjQg
LyogV0tTY3JpcHRNZXNzYWdlSW50ZXJuYWwuaCAqLzsgfTsKIAkJN0NDQ0M4RkIxQTVGNTBGRDAw
OEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQ0M4RjkxQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmln
YXRpb25TdGF0ZS5oICovOyB9OwotCQk3Q0QxMDJEQTE4NjY3NzA2MDBFRDQyOUQgLyogQXV0b0Nv
cnJlY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJh
Y2suaCAqLzsgfTsKIAkJN0NEM0E0ODMxQTVEMDJGQTAwOTYyM0I4IC8qIEFQSU5hdmlnYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDNBNDgx
MUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggKi87IH07CiAJCTdDRDVFQkI5MTc0
NkExNUIwMDBDMUM0NSAvKiBXS09iakNUeXBlV3JhcHBlclJlZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NENUVCQjcxNzQ2QTE1QjAwMEMxQzQ1IC8q
IFdLT2JqQ1R5cGVXcmFwcGVyUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0NENUVCQkIxNzQ2QTgzRTAwMEMxQzQ1IC8qIFdLQmFzZU1hYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NENUVCQkEx
NzQ2QTgzRTAwMEMxQzQ1IC8qIFdLQmFzZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjU2LDYgKzE2NTUsNyBAQAogCQlFQ0E2ODBEODFF
NjkwRTI1MDA3MzFEMjAgLyogV2ViUHJvY2Vzc0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBENzFFNjkwREY4MDA3MzFEMjAgLyogV2Vi
UHJvY2Vzc0NvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjJGMEZG
MTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURB
MjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFn
RGVzdGluYXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlGNDJENjM0MTIyQTBFRkRGMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDJENjMzRjIyQTBFRkQzMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggKi87IH07
CiAJCUY0MzBFOTQyMjI0NzMzNUYwMDVGRTA1MyAvKiBXZWJzaXRlTWV0YVZpZXdwb3J0UG9saWN5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMwRTk0
MTIyNDczMkE5MDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oICovOyB9Owog
CQlGNDMwRTk0NDIyNDczREZGMDA1RkUwNTMgLyogV2ViQ29tcGF0aWJpbGl0eU1vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzBFOTQzMjI0NzNE
QjgwMDVGRTA1MyAvKiBXZWJDb21wYXRpYmlsaXR5TW9kZS5oICovOyB9OwogCQlGNDM4Q0QxQzIy
NDE0MjE0MDBERTZEREEgLyogV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzhDRDFCMjI0MTQwQTYwMERFNkREQSAv
KiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKQEAgLTM3MzQsNyArMzczNCw2IEBACiAJCTdDQzk5QTM1MThFRjdDQkMw
MDQ4QzhCNCAvKiBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0
YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5hdmlnYXRp
b25TdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0NDOEY5MUE1RjUw
RkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViTmF2aWdhdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTdDRDEwMkQ5MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9Db3JyZWN0aW9uQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NEM0E0ODAxQTVEMDJGQTAwOTYy
M0I4IC8qIEFQSU5hdmlnYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQVBJTmF2aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RDNBNDgxMUE1RDAyRkEwMDk2MjNCOCAvKiBBUElOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFQSU5hdmlnYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0NENUVCQjYxNzQ2QTE1QjAwMEMxQzQ1IC8qIFdLT2JqQ1R5cGVXcmFwcGVyUmVm
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tPYmpDVHlwZVdy
YXBwZXJSZWYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjMwLDYgKzQ2Mjks
OCBAQAogCQlGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEcmFnRGVzdGluYXRpb25B
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwRDFCNjgyMjBCREMwRjAw
QjQ5QTAxIC8qIFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJB
dXRvY29ycmVjdGlvbkNvbnRleHQuaDsgcGF0aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkNvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQxMDU2NjEyMTMwNjk5QTAwOTIy
ODFEIC8qIEFQSUF0dGFjaG1lbnRDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFQSUF0
dGFjaG1lbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRDYzM0Yy
MkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaDsgcGF0aCA9IGlvcy9X
ZWJBdXRvY29ycmVjdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQy
RDYzNDAyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5t
bTsgcGF0aCA9IGlvcy9XZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0MzBFOTQxMjI0NzMyQTkwMDVGRTA1MyAvKiBXZWJzaXRlTWV0YVZpZXdw
b3J0UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQzMEU5NDMyMjQ3M0RCODAwNUZFMDUzIC8q
IFdlYkNvbXBhdGliaWxpdHlNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbXBhdGliaWxpdHlN
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MzhDRDFCMjI0MTQwQTYwMERF
NkREQSAvKiBXS1dlYnBhZ2VQcmVmZXJlbmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTkyMCw2ICs1OTIx
LDggQEAKIAkJCQlBMTE4QTlFRDE5MDdBRDZGMDBGN0M5MkIgLyogUXVpY2tMb29rRG9jdW1lbnRE
YXRhLmggKi8sCiAJCQkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kVHlwZS5oICovLAogCQkJCUY0MEQxQjY4MjIwQkRDMEYwMEI0OUEwMSAvKiBXZWJB
dXRvY29ycmVjdGlvbkNvbnRleHQuaCAqLywKKwkJCQlGNDJENjMzRjIyQTBFRkQzMDBEMkZCM0Eg
LyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggKi8sCisJCQkJRjQyRDYzNDAyMkEwRUZEMzAwRDJG
QjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbSAqLywKIAkJCQlGNDRERkVCMDFFOUU3NTJG
MDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovLAogCQkJCUY0NERGRUIxMUU5RTc1MkYw
MDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1tICovLAogCQkJCTJEQTk0NDk5MTg4NEU0RjAw
MEVEODZEQiAvKiBXZWJJT1NFdmVudEZhY3RvcnkuaCAqLywKQEAgLTc1MjcsNyArNzUzMCw2IEBA
CiAJCQkJMUFBRjA4OUUxOTI2ODFBQzAwQjYzOTBDIC8qIFVzZXJDb250ZW50ICovLAogCQkJCTU3
NjA4Mjk0MjAyQkQ4NDkwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdGlvbiAqLywKIAkJCQkxQTUz
QzJBMzFBMzI1NjkxMDA0RThDNzAgLyogV2Vic2l0ZURhdGEgKi8sCi0JCQkJN0NEMTAyRDkxODY2
NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlFMTUxM0M2
NDE2NkVBQkIyMDAxNDlGQ0IgLyogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCAqLywKIAkJCQlF
MTUxM0M2NTE2NkVBQkIyMDAxNDlGQ0IgLyogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggKi8sCiAJ
CQkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2
ZW5lc3NUaW1lci5jcHAgKi8sCkBAIC05MTk0LDcgKzkxOTYsNiBAQAogCQkJCTU3RENFREIxMjE0
QzYwNDgwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RD
RURBRjIxNEM2MDNCMDAxNkI4NDcgLyogQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RENFREIwMjE0QzYwNDIwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yVHJhbnNw
b3J0U2VydmljZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0NEMTAyREExODY2NzcwNjAwRUQ0MjlE
IC8qIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTVBNkVG
MUM3OTgxMDgwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQk5
OTU1QTZGNTFDNzk4NkUwMDBFQjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRp
b25DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtOTU5Niw2ICs5NTk3LDcgQEAKIAkJCQk1N0RD
RUQ2RjIxNDJFRTYzMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFREIzMjE0QzYwNTMwMDE2Qjg0NyAvKiBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VE
NzEyMTQyRUU2QzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0MkQ2MzQxMjJBMEVGREYwMEQyRkIzQSAvKiBX
ZWJBdXRvY29ycmVjdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTVBNkVDMUM3OTgw
QzIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQzBBMTk1ODFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21h
dGlvblNlc3Npb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNWM5OTI3ZThmODU3YThlNjg3YmY0NTFiNDE1
MDU3MDU2YzlmNTk2MC4uZjJiMjRjMjgzMzQzN2Q4OTcwZGI4YzJiNDJkODQzYWIyOTZlYjc1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjY0LDYg
KzI2NCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKIHN0cnVjdCBM
b2FkUGFyYW1ldGVyczsKIHN0cnVjdCBQcmludEluZm87CiBzdHJ1Y3QgVGV4dElucHV0Q29udGV4
dDsKK3N0cnVjdCBXZWJBdXRvY29ycmVjdGlvbkRhdGE7CiBzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rp
b25Db250ZXh0Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZTsKQEAgLTY1Nyw3ICs2NTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDYWxsYmFja0lEKTsKICAgICB2b2lkIHJlcGxhY2VEaWN0
YXRlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwog
ICAgIHZvaWQgcmVwbGFjZVNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0
IFN0cmluZyYgbmV3VGV4dCk7Ci0gICAgdm9pZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKGNv
bnN0IFN0cmluZyYgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBDYWxsYmFja0lEKTsKKyAgICB2b2lk
IHJlcXVlc3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJl
Y3Rpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQXV0b2NvcnJlY3Rpb25EYXRhKT4mJiBy
ZXBseSk7CiAgICAgdm9pZCBhcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFRleHQsIENhbGxiYWNrSUQpOwogICAgIHZvaWQg
c3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBT
dHJpbmcmIG9yaWdpbmFsVGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0QXV0b2NvcnJlY3Rpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBhMmYx
OTA2MDEwNTU3NzFhNGVlZjI2YWM4NDM0OWM3MTZmODViMTk5Li5iMDZhYjBmNmVlYzFjNzk0MWNj
OWRjMTNjODFhZTFlNzAzZDRlOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTc3LDcgKzc3LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVxdWVzdERpY3RhdGlvbkNvbnRl
eHQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUmVwbGFjZURpY3RhdGVkVGV4
dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVwbGFjZVNlbGVjdGVkVGV4
dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCi0gICAgUmVxdWVzdEF1dG9jb3JyZWN0
aW9uRGF0YShTdHJpbmcgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKKyAgICBSZXF1ZXN0QXV0b2NvcnJlY3Rpb25EYXRhKFN0cmluZyB0ZXh0Rm9y
QXV0b2NvcnJlY3Rpb24pIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRvY29ycmVjdGlvbkRhdGEg
ZGF0YSkgQXN5bmMKICAgICBBcHBseUF1dG9jb3JyZWN0aW9uKFN0cmluZyBjb3JyZWN0aW9uLCBT
dHJpbmcgb3JpZ2luYWxUZXh0LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBT
eW5jQXBwbHlBdXRvY29ycmVjdGlvbihTdHJpbmcgY29ycmVjdGlvbiwgU3RyaW5nIG9yaWdpbmFs
VGV4dCkgLT4gKGJvb2wgYXV0b2NvcnJlY3Rpb25BcHBsaWVkKSBTeW5jaHJvbm91cwogICAgIFJl
cXVlc3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlODhhNzlmNTAzYWYxNzhkYjQw
Yjg3MmQ5MWFlOWVmZDVhYThhYmI3Li5jOWNlMThmMWYyNTE5Y2Y4ZDgwMDhiZjZiOTVlZThjMmYy
YzIyNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCAiVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mby5oIgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdElP
Uy5oIgogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0LmgiCisjaW1wb3J0ICJXZWJB
dXRvY29ycmVjdGlvbkRhdGEuaCIKICNpbXBvcnQgIldlYkNocm9tZUNsaWVudC5oIgogI2ltcG9y
dCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgpAQCAtMjI0
NCwyMiArMjI0NSwyMiBAQCB2b2lkIFdlYlBhZ2U6OnJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3Qg
U3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpCiAgICAgZnJhbWUuZWRpdG9y
KCkuc2V0SWdub3JlU2VsZWN0aW9uQ2hhbmdlcyhmYWxzZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
cmVxdWVzdEF1dG9jb3JyZWN0aW9uRGF0YShjb25zdCBTdHJpbmcmIHRleHRGb3JBdXRvY29ycmVj
dGlvbiwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpyZXF1ZXN0QXV0b2Nv
cnJlY3Rpb25EYXRhKGNvbnN0IFN0cmluZyYgdGV4dEZvckF1dG9jb3JyZWN0aW9uLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkF1dG9jb3JyZWN0aW9uRGF0YSk+JiYgcmVwbHkpCiB7Ci0gICAg
RnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJh
bWUoKTsKKyAgICBhdXRvJiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZS5zZWxlY3Rpb24oKS5pc0NhcmV0KCkpIHsK
LSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpBdXRvY29ycmVjdGlvbkRhdGFD
YWxsYmFjayhWZWN0b3I8RmxvYXRSZWN0PigpLCBTdHJpbmcoKSwgMCwgMCwgY2FsbGJhY2tJRCkp
OworICAgICAgICByZXBseSh7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgVmlz
aWJsZVBvc2l0aW9uIHBvc2l0aW9uID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuc3Rh
cnQoKTsKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gd29yZFJhbmdlRnJvbVBvc2l0aW9uKHBv
c2l0aW9uKTsKKyAgICBhdXRvIHJhbmdlID0gd29yZFJhbmdlRnJvbVBvc2l0aW9uKHBvc2l0aW9u
KTsKICAgICBpZiAoIXJhbmdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6QXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2soVmVjdG9yPEZsb2F0UmVjdD4oKSwgU3RyaW5n
KCksIDAsIDAsIGNhbGxiYWNrSUQpKTsKKyAgICAgICAgcmVwbHkoeyB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFN0cmluZyB0ZXh0Rm9yUmFuZ2UgPSBwbGFpblRleHRSZXBsYWNp
bmdOb0JyZWFrU3BhY2UocmFuZ2UuZ2V0KCkpOworICAgIGF1dG8gdGV4dEZvclJhbmdlID0gcGxh
aW5UZXh0UmVwbGFjaW5nTm9CcmVha1NwYWNlKHJhbmdlLmdldCgpKTsKICAgICBjb25zdCB1bnNp
Z25lZCBtYXhTZWFyY2hBdHRlbXB0cyA9IDU7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7ICBpIDwg
bWF4U2VhcmNoQXR0ZW1wdHMgJiYgdGV4dEZvclJhbmdlICE9IHRleHRGb3JBdXRvY29ycmVjdGlv
bjsgKytpKQogICAgIHsKQEAgLTIyODYsMTAgKzIyODcsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVl
c3RBdXRvY29ycmVjdGlvbkRhdGEoY29uc3QgU3RyaW5nJiB0ZXh0Rm9yQXV0b2NvcnJlY3Rpb24s
IENhbAogICAgIGlmIChhdXRvKiBjb3JlRm9udCA9IGZyYW1lLmVkaXRvcigpLmZvbnRGb3JTZWxl
Y3Rpb24obXVsdGlwbGVGb250cykpCiAgICAgICAgIGZvbnQgPSBjb3JlRm9udC0+Z2V0Q1RGb250
KCk7CiAKLSAgICBDR0Zsb2F0IGZvbnRTaXplID0gQ1RGb250R2V0U2l6ZShmb250KTsKLSAgICB1
aW50NjRfdCBmb250VHJhaXRzID0gQ1RGb250R2V0U3ltYm9saWNUcmFpdHMoZm9udCk7Ci0gICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBmb250TmFtZSA9IGFkb3B0TlMoKE5TU3RyaW5nICopQ1RGb250
Q29weUZhbWlseU5hbWUoZm9udCkpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
QXV0b2NvcnJlY3Rpb25EYXRhQ2FsbGJhY2socmVjdHNGb3JUZXh0LCBmb250TmFtZS5nZXQoKSwg
Zm9udFNpemUsIGZvbnRUcmFpdHMsIGNhbGxiYWNrSUQpKTsKKyAgICByZXBseSh7IFdURk1vdmUo
cmVjdHNGb3JUZXh0KSwgKF9fYnJpZGdlIFVJRm9udCAqKWZvbnQgfSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6YXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0
IFN0cmluZyYgb3JpZ2luYWxUZXh0LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGZiNTI2OWE1OTU0YWU5
MGVkMTcxZWYzMTU3MWM3NDlmMWRmYTdjNy4uOGVmMTZhOTE5YTVjMGVlYTE0MzJhYjc0Mjc1ZjM5
ZGEyM2Q3MzE3NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA1LTMxICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEF1dG9jb3JyZWN0aW9uIG1lbnUgZm9u
dCBpcyBUaW1lcyBOZXcgUm9tYW4gd2hlbiB1c2luZyBmb250LWZhbWlseTogVUlDVEZvbnRUZXh0
U3R5bGUqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTg0MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwMDMxODI1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlm
eSB0aGF0IC1mb250Rm9yQ2FyZXRTZWxlY3Rpb24gcmV0dXJucyB0aGUgc3lzdGVtIGZvbnQgd2hl
biB1c2luZyBVSUNURm9udFRleHRTdHlsZQorICAgICAgICBpbiBhbiBlZGl0YWJsZSB3ZWIgdmll
dy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0F1dG9jb3Jy
ZWN0aW9uVGVzdHNJT1MubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGF1dG9j
b3JyZWN0aW9uUmVjdHNGb3JTdHJpbmc6XSk6CisgICAgICAgIChjaGVja0NHUmVjdElzRXF1YWxU
b0NHUmVjdFdpdGhMb2dnaW5nKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOgorCiAy
MDE5LTA1LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVVJMUGFyc2VyOjpwYXJzZUlQdjZIb3N0IHNob3VsZCBwcm9wZXJseSBwYXJzZSAw
J3MgYXJvdW5kIGNvbXByZXNzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU0NWRlOWM4
MGFkNDMyZWEzYzA3MjIyOGUzZDJkNDMzZTBhOTVmNDkuLjk2MWRmN2UzZGYzOTdmMTQ5NTgxMmJl
YmVjZmQxMGFlYmVkZDY5ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTYsNiArODk2
LDcgQEAKIAkJRjQxQUI5QTgxRUY0Njk2QjAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQxQUI5OTQxRUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtb3BlcmF0aW9uLmh0bWwgKi87IH07
CiAJCUY0MUFCOUE5MUVGNDY5NkIwMDgzRkEwOCAvKiBwcmV2ZW50LXN0YXJ0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OUEx
RUY0NjkyQzAwODNGQTA4IC8qIHByZXZlbnQtc3RhcnQuaHRtbCAqLzsgfTsKIAkJRjQxQUI5QUEx
RUY0Njk2QjAwODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTUxRUY0NjkyQzAw
ODNGQTA4IC8qIHRleHRhcmVhLXRvLWlucHV0Lmh0bWwgKi87IH07CisJCUY0MkQ2MzQ0MjJBMTcy
OUYwMEQyRkIzQSAvKiBBdXRvY29ycmVjdGlvblRlc3RzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyRDYzNDMyMkExNzI5RjAwRDJGQjNBIC8q
IEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi87IH07CiAJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMz
NkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRC
MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJ
CUY0M0UzQkJGMjBEQURBMUUwMEE0RTdFRCAvKiBXS1Njcm9sbFZpZXdUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0M0UzQkJFMjBEQURBMUUw
MEE0RTdFRCAvKiBXS1Njcm9sbFZpZXdUZXN0cy5tbSAqLzsgfTsKIAkJRjQzRTNCQzEyMERBREJD
NTAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDNFM0JDMDIwREFEQjgwMDBBNEU3RUQgLyog
Zml4ZWQtbmF2LWJhci5odG1sICovOyB9OwpAQCAtMjI4OSw2ICsyMjkwLDcgQEAKIAkJRjQxQUI5
OUMxRUY0NjkyQzAwODNGQTA4IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGV4dGFyZWEuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJjb250ZW50ZWRpdGFibGUtYW5kLXRleHRhcmVhLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDFBQjk5RDFFRjQ2OTJDMDA4M0ZBMDggLyogbGluay1hbmQt
dGFyZ2V0LWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxpbmstYW5kLXRhcmdldC1kaXYuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTlFMUVGNDY5MkMwMDgzRkEwOCAvKiBk
aXYtYW5kLWxhcmdlLWltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZGl2LWFuZC1sYXJnZS1pbWFnZS5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQyRDYzNDMyMkExNzI5RjAwRDJG
QjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
dXRvY29ycmVjdGlvblRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2Fk
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9j
dXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29hL2xhcmdlLWlucHV0LWZp
ZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlG
NDNFM0JCRTIwREFEQTFFMDBBNEU3RUQgLyogV0tTY3JvbGxWaWV3VGVzdHMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1Njcm9sbFZpZXdUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJmaXhlZC1uYXYtYmFyLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjg3Myw2ICsyODc1LDcgQEAKIAkJCQlBMUM0RkI2RjFCQUNDRUZBMDAzNzQyRDAgLyog
UmVzb3VyY2VzICovLAogCQkJCTJFMjA1QkEzMUY1Mjc3NDYwMDU5NTJERCAvKiBBY2Nlc3NpYmls
aXR5VGVzdHNJT1MubW0gKi8sCiAJCQkJRjQ1QjYzRkMxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlv
blNoZWV0VGVzdHMubW0gKi8sCisJCQkJRjQyRDYzNDMyMkExNzI5RjAwRDJGQjNBIC8qIEF1dG9j
b3JyZWN0aW9uVGVzdHNJT1MubW0gKi8sCiAJCQkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8q
IERyYWdBbmREcm9wVGVzdHNJT1MubW0gKi8sCiAJCQkJRjRCQzBCMTMyMTQ2Qzg0OTAwMkEwNDc4
IC8qIEZvY3VzUHJlc2VydmF0aW9uVGVzdHMubW0gKi8sCiAJCQkJRjQ1RTE1NzIyMTEyQ0UyOTAw
MzA3RTgyIC8qIEtleWJvYXJkSW5wdXRUZXN0c0lPUy5tbSAqLywKQEAgLTQwODQsNiArNDA4Nyw3
IEBACiAJCQkJN0NDRTdFQjQxQTQxMUE3RTAwNDQ3QzRDIC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0g
aW4gU291cmNlcyAqLywKIAkJCQkzNzYwQzRGMTIxMTI0OUFGMDAyMzNBQ0MgLyogQXR0clN0eWxl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDOEU0OEQxQkM1Q0I0NTAwNTk0RkVDIC8qIEF1ZGlv
U2Vzc2lvbkNhdGVnb3J5SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQyRDYzNDQyMkExNzI5
RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBCOTFEMEE2NEYxMDBGRUJDRjMgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDdDRDMyRjYyMDY1QjU0MzAwNjRBNEJFIC8qIEFWRm91bmRhdGlv
blByZWZlcmVuY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzExREY1MjIyNkE5NUZDMDAzREQy
RjcgLyogQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BdXRvY29ycmVjdGlvblRlc3RzSU9T
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQXV0b2NvcnJlY3Rpb25UZXN0c0lP
Uy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42OTcyMDNhMDkzNDZmMmZjMjcxMzg3Y2JkZDNkMGM4ZDQzNWNkZDAx
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQXV0b2Nv
cnJlY3Rpb25UZXN0c0lPUy5tbQpAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdElucHV0RGVsZWdhdGUuaCIKKyNpbXBvcnQg
IlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgorCitAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgKEF1dG9jb3Jy
ZWN0aW9uVGVzdHMpCistIChVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyAqKWF1dG9jb3JyZWN0aW9u
UmVjdHNGb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoQXV0b2NvcnJlY3Rpb25UZXN0cykKKworLSAoVUlXS0F1dG9jb3Jy
ZWN0aW9uUmVjdHMgKilhdXRvY29ycmVjdGlvblJlY3RzRm9yU3RyaW5nOihOU1N0cmluZyAqKXN0
cmluZworeworICAgIFJldGFpblB0cjxVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cz4gcmVzdWx0Owor
ICAgIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFtzZWxmLnRleHRJbnB1dENvbnRlbnRWaWV3IHJl
cXVlc3RBdXRvY29ycmVjdGlvblJlY3RzRm9yU3RyaW5nOnN0cmluZyB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6WyZdIChVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyAqcmVjdHMpIHsKKyAgICAgICAgcmVz
dWx0ID0gcmVjdHM7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgcmV0dXJuIHJlc3VsdC5hdXRvcmVsZWFzZSgp
OworfQorCitAZW5kCisKK3N0YXRpYyB2b2lkIGNoZWNrQ0dSZWN0SXNFcXVhbFRvQ0dSZWN0V2l0
aExvZ2dpbmcoQ0dSZWN0IGV4cGVjdGVkLCBDR1JlY3Qgb2JzZXJ2ZWQpCit7CisgICAgQk9PTCBp
c0VxdWFsID0gQ0dSZWN0RXF1YWxUb1JlY3QoZXhwZWN0ZWQsIG9ic2VydmVkKTsKKyAgICBFWFBF
Q1RfVFJVRShpc0VxdWFsKTsKKyAgICBpZiAoIWlzRXF1YWwpCisgICAgICAgIE5TTG9nKEAiRXhw
ZWN0ZWQ6ICVAIGJ1dCBvYnNlcnZlZDogJUAiLCBOU1N0cmluZ0Zyb21DR1JlY3QoZXhwZWN0ZWQp
LCBOU1N0cmluZ0Zyb21DR1JlY3Qob2JzZXJ2ZWQpKTsKK30KKworVEVTVChBdXRvY29ycmVjdGlv
blRlc3RzLCBGb250QXRDYXJldFdoZW5Vc2luZ1VJQ1RGb250VGV4dFN0eWxlKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBpbnB1dERlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RJbnB1dERlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW2lucHV0RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xp
Y3lIYW5kbGVyOltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+
IF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5IHsKKyAgICAgICAgcmV0dXJuIF9XS0Zv
Y3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7CisgICAgfV07CisKKyAgICBbd2ViVmll
dyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBf
c2V0RWRpdGFibGU6WUVTXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEnPjxib2R5IHN0eWxlPSdmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5
OiBVSUNURm9udFRleHRTdHlsZUJvZHknPld1bGs8L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQu
Ym9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX2V4ZWN1dGVFZGl0Q29tbWFuZDpAIk1vdmVU
b0VuZE9mTGluZSIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKworICAgIGF1dG8gYXV0
b2NvcnJlY3Rpb25SZWN0cyA9IHJldGFpblB0cihbd2ViVmlldyBhdXRvY29ycmVjdGlvblJlY3Rz
Rm9yU3RyaW5nOkAiV3VsayJdKTsKKyAgICBjaGVja0NHUmVjdElzRXF1YWxUb0NHUmVjdFdpdGhM
b2dnaW5nKENHUmVjdE1ha2UoOCwgOCwgMzYsIDIxKSwgW2F1dG9jb3JyZWN0aW9uUmVjdHMgZmly
c3RSZWN0XSk7CisgICAgY2hlY2tDR1JlY3RJc0VxdWFsVG9DR1JlY3RXaXRoTG9nZ2luZyhDR1Jl
Y3RNYWtlKDgsIDgsIDM2LCAyMSksIFthdXRvY29ycmVjdGlvblJlY3RzIGxhc3RSZWN0XSk7CisK
KyAgICBhdXRvIGNvbnRlbnRWaWV3ID0gW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddOwor
ICAgIFVJRm9udCAqZm9udEJlZm9yZVNjYWxpbmcgPSBbY29udGVudFZpZXcgZm9udEZvckNhcmV0
U2VsZWN0aW9uXTsKKyAgICBVSUZvbnQgKnNpemUxNlN5c3RlbUZvbnQgPSBbVUlGb250IHN5c3Rl
bUZvbnRPZlNpemU6MTZdOworICAgIEVYUEVDVF9XS19TVFJFUShzaXplMTZTeXN0ZW1Gb250LmZv
bnROYW1lLCBmb250QmVmb3JlU2NhbGluZy5mb250TmFtZSk7CisgICAgRVhQRUNUX1dLX1NUUkVR
KHNpemUxNlN5c3RlbUZvbnQuZmFtaWx5TmFtZSwgZm9udEJlZm9yZVNjYWxpbmcuZmFtaWx5TmFt
ZSk7CisgICAgRVhQRUNUX0VRKDE2LCBmb250QmVmb3JlU2NhbGluZy5wb2ludFNpemUpOworCisg
ICAgW3dlYlZpZXcgc2Nyb2xsVmlld10uem9vbVNjYWxlID0gMjsKKyAgICBVSUZvbnQgKmZvbnRB
ZnRlclNjYWxpbmcgPSBbY29udGVudFZpZXcgZm9udEZvckNhcmV0U2VsZWN0aW9uXTsKKyAgICBV
SUZvbnQgKnNpemUzMlN5c3RlbUZvbnQgPSBbVUlGb250IHN5c3RlbUZvbnRPZlNpemU6MzJdOwor
ICAgIEVYUEVDVF9XS19TVFJFUShzaXplMzJTeXN0ZW1Gb250LmZvbnROYW1lLCBmb250QWZ0ZXJT
Y2FsaW5nLmZvbnROYW1lKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoc2l6ZTMyU3lzdGVtRm9udC5m
YW1pbHlOYW1lLCBmb250QWZ0ZXJTY2FsaW5nLmZhbWlseU5hbWUpOworICAgIEVYUEVDVF9FUSgz
MiwgZm9udEFmdGVyU2NhbGluZy5wb2ludFNpemUpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdL
V2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5k
ZXggMWE0ZTA0NjIyYTE3ZDIyMGFhZGIwNDZkYmJjZDUzNDUxYTk4YTZjMC4uYjY2OGEwMGMzOGU5
NmFmZmNiOTA0MWE1NDVjN2NmNjc0OGRjMGFlMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3LmgKQEAgLTMyLDYgKzMyLDcgQEAKIEBjbGFzcyBfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbzsKIEBwcm90b2NvbCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQ7CiBAcHJvdG9j
b2wgVUlUZXh0SW5wdXRQcml2YXRlOworQHByb3RvY29sIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90
b2NvbDsKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoQWRkaXRpb25hbERlY2xhcmF0
aW9ucykKQEAgLTg0LDcgKzg1LDcgQEAKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3
IChJT1NPbmx5KQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVZpZXcgPFVJVGV4
dElucHV0UHJpdmF0ZSwgVUlUZXh0SW5wdXRNdWx0aURvY3VtZW50PiAqdGV4dElucHV0Q29udGVu
dFZpZXc7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyA8VUlUZXh0SW5w
dXRQcml2YXRlLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJV0tJbnRlcmFjdGlvblZpZXdQ
cm90b2NvbD4gKnRleHRJbnB1dENvbnRlbnRWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBSZXRhaW5QdHI8TlNBcnJheT4gc2VsZWN0aW9uUmVjdHNBZnRlclByZXNlbnRhdGlv
blVwZGF0ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IGNhcmV0Vmll
d1JlY3RJbkNvbnRlbnRDb29yZGluYXRlczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNBcnJheTxOU1ZhbHVlICo+ICpzZWxlY3Rpb25WaWV3UmVjdHNJbkNvbnRlbnRDb29yZGlu
YXRlczsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmggYi9U
b29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmluZGV4IDcwMjczZThlNzY0OTFjYTg3
OWRiMGZkMWQyMGVmNTU5MWJiNDBhZTEuLmQ5MzBhZTRlMzczYTBiYWM2ZjhhYTc1OGI0NzUyMWVl
ZTBkNTM3YTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaApAQCAtODMsNiArODMsNyBA
QCBXVEZfRVhURVJOX0NfRU5ECiAtICh2b2lkKWhhbmRsZUtleVdlYkV2ZW50OihXZWJFdmVudCAq
KXRoZUV2ZW50IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2ViRXZlbnQgKiwgQk9P
TCkpY29tcGxldGlvbkhhbmRsZXI7CiAtIChCT09MKV9zaG91bGRTdXBwcmVzc1NlbGVjdGlvbkNv
bW1hbmRzOwogLSAoTlNEaWN0aW9uYXJ5ICopX2F1dG9maWxsQ29udGV4dDsKKy0gKFVJRm9udCAq
KWZvbnRGb3JDYXJldFNlbGVjdGlvbjsKIEBlbmQKIAogQGludGVyZmFjZSBVSVdlYkZvcm1BY2Nl
c3NvcnkgOiBVSUlucHV0VmlldwpAQCAtMTQyLDYgKzE0MywxNSBAQCB0eXBlZGVmIE5TX09QVElP
TlMoTlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIAogQGVuZAogCitAaW50
ZXJmYWNlIFVJV0tBdXRvY29ycmVjdGlvblJlY3RzIDogTlNPYmplY3QKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBDR1JlY3QgZmlyc3RSZWN0OworQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCBs
YXN0UmVjdDsKK0BlbmQKKworQHByb3RvY29sIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbAor
LSAodm9pZClyZXF1ZXN0QXV0b2NvcnJlY3Rpb25SZWN0c0ZvclN0cmluZzooTlNTdHJpbmcgKilp
bnB1dCB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tBdXRvY29ycmVjdGlvblJl
Y3RzICpyZWN0c0ZvcklucHV0KSljb21wbGV0aW9uSGFuZGxlcjsKK0BlbmQKKwogI2VuZGlmCiAK
ICNpZiBfX2hhc19pbmNsdWRlKDxVSUtpdC9VSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24uaD4pCkBA
IC0xNzUsNyArMTg1LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0RvY3Vt
ZW50UmVxdWVzdEZsYWdzKSB7CiArIChCT09MKWlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZTsKIEBl
bmQKIAotQHByb3RvY29sIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbF9TdGFnaW5nXzQ5MjM2
Mzg0CitAcHJvdG9jb2wgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sX1N0YWdpbmdfNDkyMzYz
ODQgPFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbD4KIC0gKHZvaWQpcGFzdGVXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogQGVuZAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>