<?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>99276</bug_id>
          
          <creation_ts>2012-10-14 16:22:34 -0700</creation_ts>
          <short_desc>Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly</short_desc>
          <delta_ts>2012-10-14 16:55:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741626</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-14 16:22:34 -0700</bug_when>
    <thetext>Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741628</commentid>
    <comment_count>1</comment_count>
      <attachid>168598</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-14 16:32:26 -0700</bug_when>
    <thetext>Created attachment 168598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741634</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-10-14 16:55:19 -0700</bug_when>
    <thetext>Committed r131281: &lt;http://trac.webkit.org/changeset/131281&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168598</attachid>
            <date>2012-10-14 16:32:26 -0700</date>
            <delta_ts>2012-10-14 16:36:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99276-20121014163103.patch</filename>
            <type>text/plain</type>
            <size>42543</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk0ZDAwOGEwMTBmMDhm
OTVhZTg5ZTc0MmM4NjNhMTBjOTQyNTJkOS4uZGIyOWU2OTNhN2RlNjg5ZmY1OTU2YTE3MGY4MjVl
ZGI0MDEyMTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDEyLTEwLTE0ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgU2ltcGxpZnkgdXNlciBjb250ZW50
IGluIFdlYktpdDIgYnkgdXNpbmcgV2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgYW5kIFdlYkNvcmU6
OlVzZXJTY3JpcHQgZGlyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGRlZmF1bHQgY29uc3RydWN0b3JzIGZvciBVc2VyU2NyaXB0IGFuZCBV
c2VyU3R5bGVTaGVldCBzbyB0aGV5IGNhbiBiZSB1c2VkIGluIENvcmVJUEMgZW5jb2RpbmcvZGVj
b2RpbmcuCisKKyAgICAgICAgKiBwYWdlL1VzZXJTY3JpcHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQpOgorICAgICAgICAoVXNlclNjcmlwdCk6CisgICAgICAg
ICogcGFnZS9Vc2VyU3R5bGVTaGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlclN0eWxlU2hl
ZXQ6OlVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFVzZXJTdHlsZVNoZWV0KToKKworMjAxMi0x
MC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCiAgICAgICAgIE1ha2UgVXNlclNj
cmlwdCBhbmQgVXNlclN0eWxlU2hlZXQgdmFsdWUgb2JqZWN0cyB0aGF0IGFyZSBjb3B5YWJsZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkyNzUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IGU0NTQzYjc0OGM0OTA3YzE2YWU2OGI0NDA5Yzg1NmE3OGQxMTc5MjguLmM1
NDc0MWM0MDU1NDQ3ZTQxNmE2ZmI4ZWZhNmU2YzBhYzM4MTU5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2OSBAQAogMjAxMi0xMC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCisg
ICAgICAgIFNpbXBsaWZ5IHVzZXIgY29udGVudCBpbiBXZWJLaXQyIGJ5IHVzaW5nIFdlYkNvcmU6
OlVzZXJTdHlsZVNoZWV0IGFuZCBXZWJDb3JlOjpVc2VyU2NyaXB0IGRpcmVjdGx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTI3NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gUmVtb3ZlcyBVc2VyQ29u
dGVudENvbnRhaW5lciBpbiBmYXZvciBvZiBWZWN0b3I8VXNlclN0eWxlU2hlZXQ+IGFuZCBWZWN0
b3I8VXNlclNjcmlwdD4gcmlnaHQgb24gV2ViUGFnZUdyb3VwRGF0YS4KKyAgICAgICAgLSBBZGRz
IHN1cHBvcnQgZm9yIFVzZXJTY3JpcHRzLCBidXQgZG9lcyBub3QgZXhwb3NlIEFQSSBmb3IgaXQg
anVzdCB5ZXQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoK
KyAgICAgICAgKiBTaGFyZWQvVXNlckNvbnRlbnRDb250YWluZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIFNoYXJlZC9Vc2VyQ29udGVudENvbnRhaW5lci5oOiBSZW1vdmVkLgorICAgICAgICBS
ZW1vdmUgVXNlckNvbnRlbnRDb250YWluZXIuaC9jcHAuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgor
ICAgICAgICAoV2ViS2l0Ojp0b1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKToKKyAgICAgICAgKFdl
YktpdDo6dG9Vc2VyQ29udGVudEluamVjdGVkRnJhbWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgIE1v
dmUgVXNlckNvbnRlbnQgZW51bXMgdG8gV0tCYXNlLmggc28gdGhleSBjYW4gYmUgdXNlZCBmcm9t
IGJvdGggcHJvY2Vzc2VzLCBhbmQgbW92ZSB0aGUKKyAgICAgICAgY2FzdHMgdG8gV0tTaGFyZWRB
UElDYXN0LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICBBZGQgY29k
ZXJzIGZvciBVc2VyU3R5bGVTaGVldCBhbmQgVXNlclNjcmlwdC4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQYWdlR3JvdXBEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwRGF0
YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwRGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oOgorICAgICAgICAoV2ViUGFnZUdy
b3VwRGF0YSk6CisgICAgICAgIFJlcGxhY2UgVXNlckNvbnRlbnRDb250YWluZXIgd2l0aCBWZWN0
b3I8VXNlclN0eWxlU2hlZXQ+IGFuZCBWZWN0b3I8VXNlclNjcmlwdD4uIFN0b3AgdXNpbmcKKyAg
ICAgICAgQ29yZUlQQzo6SW4oKSBhbmQgQ29yZUlQQzo6T3V0KCksIGFuZCBpbnN0ZWFkIGp1c3Qg
Y2FsbCBlbmNvZGUvZGVjb2RlIG11bHRpcGxlIHRpbWVzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdLUGFnZUdyb3VwQWRkVXNlclN0eWxl
U2hlZXQpOgorICAgICAgICBQYXNzIHRoZSBwYXJhbWV0ZXJzIHdpdGggYXMgbGl0dGxlIGNvbnZl
cnNpb24gYXMgcG9zc2libGUgdG8gdGhlIEMrKyB0byBhdm9pZCBkb2luZyB0b28gbXVjaAorICAg
ICAgICB3b3JrIGluIHRoZSBBUEkgbGF5ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9TdHJpbmdWZWN0b3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlR3JvdXA6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlR3JvdXA6OnJlbW92ZUFsbFVzZXJTY3JpcHRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZUdyb3VwOjpyZW1vdmVBbGxVc2VyQ29udGVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VHcm91cC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VHcm91cFByb3h5OjpXZWJQYWdlR3JvdXBQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VHcm91cFByb3h5OjphZGRVc2VyU3R5bGVT
aGVldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VHcm91cFByb3h5OjphZGRVc2VyU2NyaXB0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwUHJveHk6OnJlbW92ZUFsbFVzZXJTY3Jp
cHRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUdyb3VwUHJveHk6OnJlbW92ZUFsbFVzZXJD
b250ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHku
aDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cFByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2VyIHNjcmlwdHMgYW5kIHVwZGF0ZSB0byB1c2UgVXNlclNjcmlwdCBhbmQgVXNlclN0
eWxlU2hlZXQgZGlyZWN0bHkuCisKKzIwMTItMTAtMTQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KKwogICAgICAgICBNYWtlIFVzZXJTY3JpcHQgYW5kIFVzZXJTdHlsZVNoZWV0IHZhbHVl
IG9iamVjdHMgdGhhdCBhcmUgY29weWFibGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5Mjc1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlclNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmgKaW5kZXgg
NDBjNWNiYTYzZmMyNzgyM2U4OTExOGI2MTdhNzEyYTk3OGIwNmI1NC4uOGJiZmE0OWJiNTUyNDk0
ZmU4YzU4ZDJhMWRmOWVjMzM3NzkwMmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Vc2VyU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmgKQEAg
LTM2LDYgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFVzZXJTY3JpcHQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFVzZXJTY3JpcHQoKQor
ICAgICAgICA6IG1faW5qZWN0aW9uVGltZShJbmplY3RBdERvY3VtZW50U3RhcnQpCisgICAgICAg
ICwgbV9pbmplY3RlZEZyYW1lcyhJbmplY3RJbkFsbEZyYW1lcykKKyAgICB7CisgICAgfQorCiAg
ICAgVXNlclNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgd2hpdGVsaXN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxhY2ts
aXN0LCBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKQogICAgICAgICA6IG1fc291cmNlKHNvdXJjZSkK
ICAgICAgICAgLCBtX3VybCh1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Vz
ZXJTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmgKaW5k
ZXggZmJjNzcwNmU0NzlmMDgyZDkzY2E4Y2Q2OWIwMmYzZjI3NzFlMjhmNC4uZmM2N2Q3YWNhOGYz
ZTk4MTM1ZGQ3MjdkNzMwNWEzNGU3MjFjOGVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Vc2VyU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlclN0eWxl
U2hlZXQuaApAQCAtMzYsNiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVXNl
clN0eWxlU2hlZXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAg
IFVzZXJTdHlsZVNoZWV0KCkKKyAgICAgICAgOiBtX2luamVjdGVkRnJhbWVzKEluamVjdEluQWxs
RnJhbWVzKQorICAgICAgICAsIG1fbGV2ZWwoVXNlclN0eWxlVXNlckxldmVsKQorICAgIHsKKyAg
ICB9CisKICAgICBVc2VyU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgd2hpdGVsaXN0LCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgYmxhY2tsaXN0LCBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
LCBVc2VyU3R5bGVMZXZlbCBsZXZlbCkKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAg
ICAgICwgbV91cmwodXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCAyMGU3ZDM0ZGM4NjU4MTc1
MzZlYzBhMTdlN2EyOTQzNzU3NTRmMjc4Li44NTY0ZDk4YTkyNTdjNDJjODI5MjhjYjE5NTk2YWVh
ODViMzZjNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMTUyLDcgKzE1Miw2IEBAIFNFVChX
ZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCiAgICAgU2hhcmVk
L1N1cmZhY2VVcGRhdGVJbmZvLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcAotICAgIFNo
YXJlZC9Vc2VyQ29udGVudENvbnRhaW5lci5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJs
ZS5jcHAKICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKICAgICBTaGFyZWQv
V2ViQmF0dGVyeVN0YXR1cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDdm
ODMzZTExZmM1ZTY3YmEyYjI2MjRiMzU4Y2UwNGUyY2UyYmY5NzMuLmRjYzJhZjFlZWUzNjEyYTcw
MzgxZjczYWM0NmZmODIzYWU5YWU2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNDQzLDggKzQ0Myw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRh
dGVJbmZvLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaCBcCi0JU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJDb250ZW50Q29udGFpbmVyLmNwcCBcCi0JU291cmNlL1dl
YktpdDIvU2hhcmVkL1VzZXJDb250ZW50Q29udGFpbmVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2l0
ZWRMaW5rVGFibGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCBmNGVhNjA2
OTk1ODNkMWY3OWRiOWRmZWU3YmUwZmQ5YjgyZmU5YTkwLi4xYTI3NjEwMjQ3NTljZDEzZGM1ZTM2
ZjRlZmMxZDJhZGZhNTM2MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBA
IC04NSw2ICs4NSwxMiBAQCBlbnVtIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB7CiB9Owog
dHlwZWRlZiBlbnVtIFdLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBXS1VzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM7CiAKK2VudW0gV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSB7CisgICAga1dL
SW5qZWN0QXREb2N1bWVudFN0YXJ0LAorICAgIGtXS0luamVjdEF0RG9jdW1lbnRFbmQKK307Cit0
eXBlZGVmIGVudW0gV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBXS1VzZXJTY3JpcHRJbmplY3Rp
b25UaW1lOworCiAvKiBXZWJLaXQyIG1haW4gQVBJIHR5cGVzICovCiAKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIqIFdLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElD
YXN0LmgKaW5kZXggOTRhNzdlMTc2NDE5OTQ0NTEwMjI0NDY2MDJhMGNlMWIxYjU0NDRhMC4uODY5
NDBmZmVkYTRmNWE4Nzc4NWM4YjcwOGVkZjM1MjVlMzBkNzdlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtNDgsNiArNDgsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50
UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckNvbnRlbnRUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlw
dFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC04MTEsNiArODEzLDMyIEBAIGlubGluZSBTbmFwc2hvdE9wdGlvbnMgdG9TbmFwc2hv
dE9wdGlvbnMoV0tTbmFwc2hvdE9wdGlvbnMgd2tTbmFwc2hvdE9wdGlvbnMpCiAgICAgcmV0dXJu
IHNuYXBzaG90T3B0aW9uczsKIH0KIAoraW5saW5lIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rp
b25UaW1lIHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUoV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZSB3a0luamVjdGVkVGltZSkKK3sKKyAgICBzd2l0Y2ggKHdrSW5qZWN0ZWRUaW1lKSB7CisgICAg
Y2FzZSBrV0tJbmplY3RBdERvY3VtZW50U3RhcnQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJ
bmplY3RBdERvY3VtZW50U3RhcnQ7CisgICAgY2FzZSBrV0tJbmplY3RBdERvY3VtZW50RW5kOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0QXREb2N1bWVudEVuZDsKKyAgICB9CisKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0QXREb2N1
bWVudFN0YXJ0OworfQorCitpbmxpbmUgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyB0b1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
IHdrSW5qZWN0ZWRGcmFtZXMpCit7CisgICAgc3dpdGNoICh3a0luamVjdGVkRnJhbWVzKSB7Cisg
ICAgY2FzZSBrV0tJbmplY3RJbkFsbEZyYW1lczoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Oklu
amVjdEluQWxsRnJhbWVzOworICAgIGNhc2Uga1dLSW5qZWN0SW5Ub3BGcmFtZU9ubHk6CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seTsKKyAgICB9CisKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFt
ZXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV0tTaGFyZWRBUElD
YXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyQ29udGVudENvbnRh
aW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckNvbnRlbnRDb250YWluZXIuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDVlMjI1YTUwNjBmYjFlNGIyNTVhMDQw
NGE4ZjY0YmM5OTYzNTc2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyQ29udGVudENvbnRhaW5lci5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJVc2VyQ29udGVudENvbnRhaW5lci5oIgotCi0jaW5jbHVkZSAiQXJn
dW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlICJB
cmd1bWVudHMuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyBWZWN0b3I8U3RyaW5n
PiB0b1N0cmluZ1ZlY3RvcihJbW11dGFibGVBcnJheSogYXJyYXkpCi17Ci0gICAgVmVjdG9yPFN0
cmluZz4gcGF0dGVyblZlY3RvcjsKLSAgICBpZiAoIWFycmF5KQotICAgICAgICByZXR1cm4gcGF0
dGVyblZlY3RvcjsKLQotICAgIHNpemVfdCBzaXplID0gYXJyYXktPnNpemUoKTsKLSAgICBpZiAo
IXNpemUpCi0gICAgICAgIHJldHVybiBwYXR0ZXJuVmVjdG9yOwotICAgIAotICAgIHBhdHRlcm5W
ZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBXZWJTdHJpbmcqIHdlYlN0cmluZyA9IGFycmF5
LT5hdDxXZWJTdHJpbmc+KGkpOwotICAgICAgICBBU1NFUlQod2ViU3RyaW5nKTsKLSAgICAgICAg
cGF0dGVyblZlY3Rvci51bmNoZWNrZWRBcHBlbmQod2ViU3RyaW5nLT5zdHJpbmcoKSk7Ci0gICAg
fQotICAgIAotICAgIHJldHVybiBwYXR0ZXJuVmVjdG9yOwotfQotCi1Vc2VyQ29udGVudENvbnRh
aW5lcjo6SXRlbTo6SXRlbSgpCi17Ci19Ci0KLVVzZXJDb250ZW50Q29udGFpbmVyOjpJdGVtOjpJ
dGVtKFBhc3NSZWZQdHI8V2ViU3RyaW5nPiBzb3VyY2UsIFBhc3NSZWZQdHI8V2ViVVJMPiB1cmws
IFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IHdoaXRlbGlzdCwgUGFzc1JlZlB0cjxJbW11dGFi
bGVBcnJheT4gYmxhY2tsaXN0LCBJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcywgVHlwZSB0
eXBlKQotICAgIDogbV9zb3VyY2Uoc291cmNlKQotICAgICwgbV91cmwodXJsKQotICAgICwgbV93
aGl0ZWxpc3QodG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0LmdldCgpKSkKLSAgICAsIG1fYmxhY2ts
aXN0KHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlzdC5nZXQoKSkpCi0gICAgLCBtX2luamVjdGVkRnJh
bWVzKGluamVjdGVkRnJhbWVzKQotICAgICwgbV90eXBlKHR5cGUpCi17Ci0gICAgQVNTRVJUKG1f
c291cmNlKTsKLX0KLQotdm9pZCBVc2VyQ29udGVudENvbnRhaW5lcjo6SXRlbTo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyLT5l
bmNvZGUobV9zb3VyY2UtPnN0cmluZygpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV91cmwgPyBt
X3VybC0+c3RyaW5nKCkgOiBTdHJpbmcoKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fd2hpdGVs
aXN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9ibGFja2xpc3QpOwotICAgIGVuY29kZXItPmVu
Y29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9pbmplY3RlZEZyYW1lcykpOwotICAgIGVuY29k
ZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90eXBlKSk7Ci19Ci0KLWJvb2wgVXNl
ckNvbnRlbnRDb250YWluZXI6Okl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIFVzZXJDb250ZW50Q29udGFpbmVyOjpJdGVtJiBpdGVtKQotewotICAgIEFTU0VS
VCghaXRlbS5tX3NvdXJjZSk7Ci0gICAgQVNTRVJUKCFpdGVtLm1fdXJsKTsKLSAgICBBU1NFUlQo
aXRlbS5tX3doaXRlbGlzdC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChpdGVtLm1fYmxhY2tsaXN0
LmlzRW1wdHkoKSk7Ci0KLSAgICBTdHJpbmcgc291cmNlOwotICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlKHNvdXJjZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpdGVtLm1fc291cmNlID0g
V2ViU3RyaW5nOjpjcmVhdGUoc291cmNlKTsKLQotICAgIFN0cmluZyB1cmw7Ci0gICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUodXJsKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGl0ZW0ubV91
cmwgPSBXZWJVUkw6OmNyZWF0ZSh1cmwpOwotCi0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaXRl
bS5tX3doaXRlbGlzdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZShpdGVtLm1fYmxhY2tsaXN0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
dWludDMyX3QgaW5qZWN0ZWRGcmFtZXM7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoaW5qZWN0
ZWRGcmFtZXMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaXRlbS5tX2luamVjdGVkRnJh
bWVzID0gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRGcmFtZXM+KGluamVjdGVkRnJhbWVzKTsKLQotICAg
IHVpbnQzMl90IHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodHlwZSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpdGVtLm1fdHlwZSA9IHN0YXRpY19jYXN0PFR5cGU+KHR5cGUp
OwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgVXNlckNvbnRlbnRDb250YWluZXI6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKG1fdXNlckNvbnRlbnQpOwotfQotCi1ib29sIFVzZXJDb250ZW50Q29udGFp
bmVyOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBVc2VyQ29udGVu
dENvbnRhaW5lciYgdXNlckNvbnRlbnRDb250YWluZXIpCi17Ci0gICAgQVNTRVJUKHVzZXJDb250
ZW50Q29udGFpbmVyLm1fdXNlckNvbnRlbnQuaXNFbXB0eSgpKTsKLSAgICBpZiAoIWRlY29kZXIt
PmRlY29kZSh1c2VyQ29udGVudENvbnRhaW5lci5tX3VzZXJDb250ZW50KSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyQ29udGVudENvbnRhaW5lci5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJDb250ZW50Q29udGFpbmVyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwN2Y0NmNlYzE1NTE3Mjk1ZWE5OWU5MGQzNDBjYjkzOWJh
NDQ5ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJDb250ZW50Q29udGFpbmVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBVc2VyQ29udGVudENvbnRhaW5l
cl9oCi0jZGVmaW5lIFVzZXJDb250ZW50Q29udGFpbmVyX2gKLQotI2luY2x1ZGUgIkltbXV0YWJs
ZUFycmF5LmgiCi0jaW5jbHVkZSAiV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViVVJMLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9LVVJMLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwotY2xhc3MgQXJndW1lbnRFbmNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgVXNlckNvbnRlbnRDb250YWluZXIgewotcHVibGljOgotICAgIGNsYXNzIEl0ZW0g
ewotICAgIHB1YmxpYzoKLSAgICAgICAgZW51bSBUeXBlIHsKLSAgICAgICAgICAgIFR5cGVTdHls
ZXNoZWV0LAotICAgICAgICAgICAgVHlwZVNjcmlwdAotICAgICAgICB9OwotICAgICAgICAKLSAg
ICAgICAgZW51bSBJbmplY3RlZEZyYW1lcyB7Ci0gICAgICAgICAgICBJbmplY3RJbkFsbEZyYW1l
cywKLSAgICAgICAgICAgIEluamVjdEluVG9wRnJhbWVPbmx5Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgSXRlbSgpOwotICAgICAgICBJdGVtKFBhc3NSZWZQdHI8V2ViU3RyaW5nPiBzb3VyY2UsIFBh
c3NSZWZQdHI8V2ViVVJMPiwgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gd2hpdGVsaXN0LCBQ
YXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBibGFja2xpc3QsIEluamVjdGVkRnJhbWVzLCBUeXBl
KTsKLQotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25z
dDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IEl0ZW0mKTsKLSAgICAgICAgCi0gICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UtPnN0cmluZygpOyB9Ci0gICAgICAgIFdlYkNvcmU6OktVUkwgdXJs
KCkgY29uc3QgeyByZXR1cm4gIW1fdXJsIHx8IG1fdXJsLT5zdHJpbmcoKS5pc0VtcHR5KCkgPyBX
ZWJDb3JlOjpibGFua1VSTCgpIDogV2ViQ29yZTo6S1VSTChXZWJDb3JlOjpLVVJMKCksIG1fdXJs
LT5zdHJpbmcoKSk7IH0KLSAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdoaXRlbGlzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0OyB9Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBibGFja2xpc3QoKSBjb25zdCB7IHJldHVybiBtX2JsYWNrbGlzdDsgfQotICAgICAgICBJ
bmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRG
cmFtZXM7IH0KLSAgICAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0K
LSAgICBwcml2YXRlOgotICAgICAgICBSZWZQdHI8V2ViU3RyaW5nPiBtX3NvdXJjZTsKLSAgICAg
ICAgUmVmUHRyPFdlYlVSTD4gbV91cmw7Ci0gICAgICAgIFZlY3RvcjxTdHJpbmc+IG1fd2hpdGVs
aXN0OwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBtX2JsYWNrbGlzdDsKLSAgICAgICAgSW5qZWN0
ZWRGcmFtZXMgbV9pbmplY3RlZEZyYW1lczsKLSAgICAgICAgVHlwZSBtX3R5cGU7Ci0gICAgfTsK
LQotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwotICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBVc2VyQ29udGVu
dENvbnRhaW5lciYpOwotICAgIAotICAgIHZvaWQgYWRkSXRlbShjb25zdCBJdGVtJiBpdGVtKSB7
IG1fdXNlckNvbnRlbnQuYXBwZW5kKGl0ZW0pOyB9Ci0gICAgdm9pZCByZW1vdmVBbGxJdGVtcygp
IHsgbV91c2VyQ29udGVudC5jbGVhcigpOyB9Ci0gICAgCi0gICAgc2l6ZV90IHNpemUoKSBjb25z
dCB7IHJldHVybiBtX3VzZXJDb250ZW50LnNpemUoKTsgfQotICAgIGNvbnN0IEl0ZW0mIGF0KHNp
emVfdCBpKSBjb25zdCB7IHJldHVybiBtX3VzZXJDb250ZW50LmF0KGkpOyB9Ci0KLXByaXZhdGU6
Ci0gICAgVmVjdG9yPFVzZXJDb250ZW50Q29udGFpbmVyOjpJdGVtPiBtX3VzZXJDb250ZW50Owot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVc2VyQ29udGVudENvbnRh
aW5lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAppbmRleCAwNDEyNDY2N2Y5NTc0NjkyZTU4NzM1MWJmYTIwYjcyZjhlYmNhMzliLi5jMjVlYTk1
MTE2MDc0ZGE1NmRmYWUyMzQ3NmFhYTRmY2Q2YjE3ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNDUsNiArNDUsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0
eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KQEAgLTEwMzgsNCArMTA0MCw4NCBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZAog
CiAjZW5kaWYKIAordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Pjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6VXNlclN0eWxl
U2hlZXQmIHVzZXJTdHlsZVNoZWV0KQoreworICAgIGVuY29kZXItPmVuY29kZSh1c2VyU3R5bGVT
aGVldC5zb3VyY2UoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTdHlsZVNoZWV0LnVybCgp
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUodXNlclN0eWxlU2hlZXQud2hpdGVsaXN0KCkpOworICAg
IGVuY29kZXItPmVuY29kZSh1c2VyU3R5bGVTaGVldC5ibGFja2xpc3QoKSk7CisgICAgZW5jb2Rl
ci0+ZW5jb2RlRW51bSh1c2VyU3R5bGVTaGVldC5pbmplY3RlZEZyYW1lcygpKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGVFbnVtKHVzZXJTdHlsZVNoZWV0LmxldmVsKCkpOworfQorCitib29sIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCYgdXNlclN0eWxlU2hlZXQpCit7Cisg
ICAgU3RyaW5nIHNvdXJjZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzb3VyY2UpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBLVVJMIHVybDsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh1cmwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBWZWN0b3I8U3RyaW5nPiB3
aGl0ZWxpc3Q7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2hpdGVsaXN0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgVmVjdG9yPFN0cmluZz4gYmxhY2tsaXN0OworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlKGJsYWNrbGlzdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXM7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGluamVjdGVkRnJhbWVzKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgV2ViQ29yZTo6VXNlclN0eWxlTGV2ZWwgbGV2ZWw7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGVFbnVtKGxldmVsKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dXNlclN0eWxlU2hlZXQgPSBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hp
dGVsaXN0LCBibGFja2xpc3QsIGluamVjdGVkRnJhbWVzLCBsZXZlbCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpVc2VyU2NyaXB0Pjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6VXNlclNjcmlwdCYgdXNl
clNjcmlwdCkKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGUodXNlclNjcmlwdC5zb3VyY2UoKSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTY3JpcHQudXJsKCkpOworICAgIGVuY29kZXItPmVuY29k
ZSh1c2VyU2NyaXB0LndoaXRlbGlzdCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUodXNlclNjcmlw
dC5ibGFja2xpc3QoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSh1c2VyU2NyaXB0LmluamVj
dGlvblRpbWUoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSh1c2VyU2NyaXB0LmluamVjdGVk
RnJhbWVzKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VXNlclNjcmlwdD46
OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvcmU6OlVzZXJTY3JpcHQmIHVz
ZXJTY3JpcHQpCit7CisgICAgU3RyaW5nIHNvdXJjZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShzb3VyY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBLVVJMIHVybDsKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZSh1cmwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiB3aGl0ZWxpc3Q7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUod2hpdGVs
aXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVmVjdG9yPFN0cmluZz4gYmxhY2ts
aXN0OworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGJsYWNrbGlzdCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlv
blRpbWU7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGluamVjdGlvblRpbWUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShpbmplY3Rl
ZEZyYW1lcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHVzZXJTY3JpcHQgPSBXZWJD
b3JlOjpVc2VyU2NyaXB0KHNvdXJjZSwgdXJsLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCwgaW5qZWN0
aW9uVGltZSwgaW5qZWN0ZWRGcmFtZXMpOworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBDb3JlSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKaW5kZXggMzQyYzhmYjczZjZhNmU0NDQyN2FiYjZjNmUzZGM2NGNkYTVkMTkzMi4u
NTgxMDU4Y2FiN2NmZDY3YWVkMjhkNjliMGEwMTkzMzQ0YWQwMTlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDksNiArNDksOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKICAgICBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKyAgICBjbGFzcyBV
c2VyU3R5bGVTaGVldDsKKyAgICBjbGFzcyBVc2VyU2NyaXB0OwogICAgIHN0cnVjdCBDb21wb3Np
dGlvblVuZGVybGluZTsKICAgICBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiAgICAgc3Ry
dWN0IERyYWdTZXNzaW9uOwpAQCAtMjg5LDYgKzI5MSwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPiB7CiAjZW5kaWYKICNl
bmRpZgogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTdHls
ZVNoZWV0PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciosIGNvbnN0
IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciosIFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Jik7Cit9OworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlVzZXJTY3JpcHQ+IHsKKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6VXNlclNjcmlwdCYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpVc2Vy
U2NyaXB0Jik7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAppbmRleCA0ODljMWMwY2IzY2E2MjcxM2E5MDI4
NGYxNzM5Njk5NjIyYjU5MTg3Li5jMjI3ZDg1OTY2ZDg3OGIzODE4YjlmYTQxMDc5NjM0M2ZmZjYx
ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwCkBAIC0y
NiwxOSArMjYsMzUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJQYWdlR3Jv
dXBEYXRhLmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogdm9pZCBXZWJQYWdlR3JvdXBEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIHJldHVybiBlbmNvZGVyLT5lbmNvZGUo
Q29yZUlQQzo6SW4oaWRlbnRpZmVyLCBwYWdlR3JvdXBJRCwgdmlzaWJsZVRvSW5qZWN0ZWRCdW5k
bGUsIHZpc2libGVUb0hpc3RvcnlDbGllbnQsIHVzZXJTdHlsZVNoZWV0cykpOworICAgIGVuY29k
ZXItPmVuY29kZShpZGVudGlmZXIpOworICAgIGVuY29kZXItPmVuY29kZShwYWdlR3JvdXBJRCk7
CisgICAgZW5jb2Rlci0+ZW5jb2RlKHZpc2libGVUb0luamVjdGVkQnVuZGxlKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7CisgICAgZW5jb2Rlci0+ZW5jb2Rl
KHVzZXJTdHlsZVNoZWV0cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTY3JpcHRzKTsKIH0K
IAogYm9vbCBXZWJQYWdlR3JvdXBEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBXZWJQYWdlR3JvdXBEYXRhJiBkYXRhKQogewotICAgIHJldHVybiBkZWNvZGVy
LT5kZWNvZGUoQ29yZUlQQzo6T3V0KGRhdGEuaWRlbnRpZmVyLCBkYXRhLnBhZ2VHcm91cElELCBk
YXRhLnZpc2libGVUb0luamVjdGVkQnVuZGxlLCBkYXRhLnZpc2libGVUb0hpc3RvcnlDbGllbnQs
IGRhdGEudXNlclN0eWxlU2hlZXRzKSk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZGF0YS5p
ZGVudGlmZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGUoZGF0YS5wYWdlR3JvdXBJRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShkYXRhLnZpc2libGVUb0luamVjdGVkQnVuZGxlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGRhdGEudmlzaWJsZVRvSGlzdG9y
eUNsaWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShkYXRhLnVzZXJTdHlsZVNoZWV0cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShkYXRhLnVzZXJTY3JpcHRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCmluZGV4IGQ5N2U5ZDA1NjliMzk3YzE3YjI0
OGQ3MzFmZWU4ZTM5YjFlNGVmYTEuLmI5YWEwZjhmNWY1YTBiMzk5MmU5OGI0NTU0NjBmYzEyY2Vm
ZDg5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaApAQCAtMjYs
MTMgKzI2LDE0IEBACiAjaWZuZGVmIFdlYlBhZ2VHcm91cERhdGFfaAogI2RlZmluZSBXZWJQYWdl
R3JvdXBEYXRhX2gKIAotI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udGFpbmVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyU2NyaXB0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVl
dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsK
LSAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFz
cyBBcmd1bWVudEVuY29kZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsNyArNDYs
OSBAQCBzdHJ1Y3QgV2ViUGFnZUdyb3VwRGF0YSB7CiAgICAgdWludDY0X3QgcGFnZUdyb3VwSUQ7
CiAgICAgYm9vbCB2aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsKICAgICBib29sIHZpc2libGVUb0hp
c3RvcnlDbGllbnQ7Ci0gICAgVXNlckNvbnRlbnRDb250YWluZXIgdXNlclN0eWxlU2hlZXRzOwor
CisgICAgVmVjdG9yPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0PiB1c2VyU3R5bGVTaGVldHM7Cisg
ICAgVmVjdG9yPFdlYkNvcmU6OlVzZXJTY3JpcHQ+IHVzZXJTY3JpcHRzOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBlMzZjNTI4YTNmYTY2ZGM4ZjBlZjFiNzcy
MDhjZmEyOWRkOGE2MzlmLi40ZjM5MzA3NTNjYWZjMThjMDAwN2FkN2NhMWJmNDg4ZWU2MTRiOTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1RhcmdldC5wcmkKQEAgLTk2LDcgKzk2LDYgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVk
L1N0cmluZ1BhaXJWZWN0b3IuaCBcCiAgICAgU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmggXAog
ICAgIFNoYXJlZC9VcGRhdGVJbmZvLmggXAotICAgIFNoYXJlZC9Vc2VyQ29udGVudENvbnRhaW5l
ci5oIFwKICAgICBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBcCiAgICAgU2hhcmVkL1Zpc2l0
ZWRMaW5rVGFibGUuaCBcCiAgICAgU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIFwKQEAg
LTQ1Myw3ICs0NTIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvU3RhdGlzdGljc0RhdGEu
Y3BwIFwKICAgICBTaGFyZWQvU3VyZmFjZVVwZGF0ZUluZm8uY3BwIFwKICAgICBTaGFyZWQvVXBk
YXRlSW5mby5jcHAgXAotICAgIFNoYXJlZC9Vc2VyQ29udGVudENvbnRhaW5lci5jcHAgXAogICAg
IFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwIFwKICAgICBTaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3VwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAKaW5kZXggOTliNzgz
YzljMjViZTBkNmUzZDdiMTk2ZDRjMjU3NTlmMjc3YTNkNi4uNTU1OWQwMTgwNmU4M2Y2MThlOTA3
NTQxYjQyMTU0NTBlNmUwZTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlR3JvdXAuY3BwCkBAIC02MCwxMCArNjAsNyBAQCBXS1ByZWZlcmVuY2VzUmVmIFdL
UGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogCiB2
b2lkIFdLUGFnZUdyb3VwQWRkVXNlclN0eWxlU2hlZXQoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
UmVmLCBXS1N0cmluZ1JlZiBzb3VyY2VSZWYsIFdLVVJMUmVmIGJhc2VVUkwsIFdLQXJyYXlSZWYg
d2hpdGVsaXN0LCBXS0FycmF5UmVmIGJsYWNrbGlzdCwgV0tVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewotICAgIGlmICghc291cmNlUmVmKQotICAgICAgICByZXR1
cm47Ci0KLSAgICB0b0ltcGwocGFnZUdyb3VwUmVmKS0+YWRkVXNlclN0eWxlU2hlZXQoVXNlckNv
bnRlbnRDb250YWluZXI6Okl0ZW0odG9JbXBsKHNvdXJjZVJlZiksIHRvSW1wbChiYXNlVVJMKSwg
dG9JbXBsKHdoaXRlbGlzdCksIHRvSW1wbChibGFja2xpc3QpLCBzdGF0aWNfY2FzdDxVc2VyQ29u
dGVudENvbnRhaW5lcjo6SXRlbTo6SW5qZWN0ZWRGcmFtZXM+KGluamVjdGVkRnJhbWVzKSwgVXNl
ckNvbnRlbnRDb250YWluZXI6Okl0ZW06OlR5cGVTdHlsZXNoZWV0KSk7CisgICAgdG9JbXBsKHBh
Z2VHcm91cFJlZiktPmFkZFVzZXJTdHlsZVNoZWV0KHRvV1RGU3RyaW5nKHNvdXJjZVJlZiksIHRv
V1RGU3RyaW5nKGJhc2VVUkwpLCB0b0ltcGwod2hpdGVsaXN0KSwgdG9JbXBsKGJsYWNrbGlzdCks
IHRvVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lcyksIFdlYkNvcmU6OlVz
ZXJTdHlsZVVzZXJMZXZlbCk7CiB9CiAKIHZvaWQgV0tQYWdlR3JvdXBSZW1vdmVBbGxVc2VyU3R5
bGVTaGVldHMoV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZUdyb3VwLmNwcAppbmRleCA3MzBkZjc3Y2UyNzcxMjVhYTk4MTY0OGYzOGEz
YjRlNWE0ZjU3NzIxLi4wY2RiZjgxN2RkZWMwOTU4YjYwM2FiZDdkY2I2NzA0MTA3ZTc4NDU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmNwcApAQCAtMTI4LDE3ICsx
MjgsNjYgQEAgdm9pZCBXZWJQYWdlR3JvdXA6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAg
ICAgcGFnZS0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKICAgICB9CiB9CisKK3N0YXRpYyBWZWN0
b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihJbW11dGFibGVBcnJheSogYXJyYXkpCit7CisgICAg
VmVjdG9yPFN0cmluZz4gcGF0dGVyblZlY3RvcjsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBy
ZXR1cm4gcGF0dGVyblZlY3RvcjsKKworICAgIHNpemVfdCBzaXplID0gYXJyYXktPnNpemUoKTsK
KyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybiBwYXR0ZXJuVmVjdG9yOwogICAgIAotdm9p
ZCBXZWJQYWdlR3JvdXA6OmFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IFVzZXJDb250ZW50Q29udGFp
bmVyOjpJdGVtJiBzdHlsZVNoZWV0KQorICAgIHBhdHRlcm5WZWN0b3IucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShzaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewor
ICAgICAgICBXZWJTdHJpbmcqIHdlYlN0cmluZyA9IGFycmF5LT5hdDxXZWJTdHJpbmc+KGkpOwor
ICAgICAgICBBU1NFUlQod2ViU3RyaW5nKTsKKyAgICAgICAgcGF0dGVyblZlY3Rvci51bmNoZWNr
ZWRBcHBlbmQod2ViU3RyaW5nLT5zdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBw
YXR0ZXJuVmVjdG9yOworfQorCit2b2lkIFdlYlBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXQo
Y29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgSW1tdXRhYmxlQXJy
YXkqIHdoaXRlbGlzdCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcywgV2ViQ29yZTo6VXNlclN0eWxlTGV2
ZWwgbGV2ZWwpCit7CisgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHVzZXJTdHlsZVNoZWV0ID0gV2ViQ29yZTo6
VXNlclN0eWxlU2hlZXQoc291cmNlLCAoYmFzZVVSTC5pc0VtcHR5KCkgPyBXZWJDb3JlOjpibGFu
a1VSTCgpIDogV2ViQ29yZTo6S1VSTChXZWJDb3JlOjpLVVJMKCksIGJhc2VVUkwpKSwgdG9TdHJp
bmdWZWN0b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0KSwgaW5qZWN0ZWRG
cmFtZXMsIGxldmVsKTsKKworICAgIG1fZGF0YS51c2VyU3R5bGVTaGVldHMuYXBwZW5kKHVzZXJT
dHlsZVNoZWV0KTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKE1lc3NhZ2VzOjpXZWJQ
YWdlR3JvdXBQcm94eTo6QWRkVXNlclN0eWxlU2hlZXQodXNlclN0eWxlU2hlZXQpLCBtX2RhdGEu
cGFnZUdyb3VwSUQpOworfQorCit2b2lkIFdlYlBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdChjb25z
dCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBJbW11dGFibGVBcnJheSog
d2hpdGVsaXN0LCBJbW11dGFibGVBcnJheSogYmxhY2tsaXN0LCBXZWJDb3JlOjpVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzLCBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZSBpbmplY3Rpb25UaW1lKQogewotICAgIG1fZGF0YS51c2VyU3R5bGVTaGVldHMuYWRk
SXRlbShzdHlsZVNoZWV0KTsKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKE1lc3NhZ2Vz
OjpXZWJQYWdlR3JvdXBQcm94eTo6QWRkVXNlclN0eWxlU2hlZXQoc3R5bGVTaGVldCksIG1fZGF0
YS5wYWdlR3JvdXBJRCk7CisgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNlclNjcmlwdCA9IFdlYkNvcmU6OlVzZXJT
Y3JpcHQoc291cmNlLCAoYmFzZVVSTC5pc0VtcHR5KCkgPyBXZWJDb3JlOjpibGFua1VSTCgpIDog
V2ViQ29yZTo6S1VSTChXZWJDb3JlOjpLVVJMKCksIGJhc2VVUkwpKSwgdG9TdHJpbmdWZWN0b3Io
d2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0KSwgaW5qZWN0aW9uVGltZSwgaW5q
ZWN0ZWRGcmFtZXMpOworCisgICAgbV9kYXRhLnVzZXJTY3JpcHRzLmFwcGVuZCh1c2VyU2NyaXB0
KTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKE1lc3NhZ2VzOjpXZWJQYWdlR3JvdXBQ
cm94eTo6QWRkVXNlclNjcmlwdCh1c2VyU2NyaXB0KSwgbV9kYXRhLnBhZ2VHcm91cElEKTsKIH0K
IAogdm9pZCBXZWJQYWdlR3JvdXA6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cygpCiB7Ci0gICAg
bV9kYXRhLnVzZXJTdHlsZVNoZWV0cy5yZW1vdmVBbGxJdGVtcygpOworICAgIG1fZGF0YS51c2Vy
U3R5bGVTaGVldHMuY2xlYXIoKTsKICAgICBzZW5kVG9BbGxQcm9jZXNzZXNJbkdyb3VwKE1lc3Nh
Z2VzOjpXZWJQYWdlR3JvdXBQcm94eTo6UmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCksIG1fZGF0
YS5wYWdlR3JvdXBJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZUdyb3VwOjpyZW1vdmVBbGxVc2VyU2Ny
aXB0cygpCit7CisgICAgbV9kYXRhLnVzZXJTY3JpcHRzLmNsZWFyKCk7CisgICAgc2VuZFRvQWxs
UHJvY2Vzc2VzSW5Hcm91cChNZXNzYWdlczo6V2ViUGFnZUdyb3VwUHJveHk6OlJlbW92ZUFsbFVz
ZXJTY3JpcHRzKCksIG1fZGF0YS5wYWdlR3JvdXBJRCk7Cit9CisKK3ZvaWQgV2ViUGFnZUdyb3Vw
OjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCit7CisgICAgbV9kYXRhLnVzZXJTdHlsZVNoZWV0cy5j
bGVhcigpOworICAgIG1fZGF0YS51c2VyU2NyaXB0cy5jbGVhcigpOworICAgIHNlbmRUb0FsbFBy
b2Nlc3Nlc0luR3JvdXAoTWVzc2FnZXM6OldlYlBhZ2VHcm91cFByb3h5OjpSZW1vdmVBbGxVc2Vy
Q29udGVudCgpLCBtX2RhdGEucGFnZUdyb3VwSUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaAppbmRleCBkNzUyZmU1YmJk
ZGExOWY0MTc1OGU0OTIwODFiNjJkNTgxMTA3NjkxLi4xNzZiOWVlNDYzZjUzYmY3MjJhMzQ3Zjkx
MjNkMDZjZDNkMTNkNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5o
CkBAIC01OSw4ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVu
Y2VzKCkgY29uc3Q7CiAgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwogICAgIAotICAg
IHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgVXNlckNvbnRlbnRDb250YWluZXI6Okl0ZW0m
IHN0eWxlU2hlZXQpOworICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgSW1tdXRhYmxlQXJyYXkqIHdoaXRlbGlzdCwg
SW1tdXRhYmxlQXJyYXkqIGJsYWNrbGlzdCwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcywgV2ViQ29yZTo6VXNlclN0eWxlTGV2ZWwpOworICAgIHZvaWQgYWRkVXNlclNjcmlwdChj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBJbW11dGFibGVBcnJh
eSogd2hpdGVsaXN0LCBJbW11dGFibGVBcnJheSogYmxhY2tsaXN0LCBXZWJDb3JlOjpVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzLCBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7CiAg
ICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVz
ZXJTY3JpcHRzKCk7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCiBwcml2YXRl
OgogICAgIFdlYlBhZ2VHcm91cChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGJvb2wgdmlzaWJs
ZVRvSW5qZWN0ZWRCdW5kbGUsIGJvb2wgdmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Zh
YzQ5YmU2M2ZkNjViZmIwNTAzNGE3YWE2ZDFmYzdhNGFmMDBhOS4uOTlkZmFkZTMzZWMyOTM4MjA2
YWViZDhjNzQwYmFmZDI3YWM1ZGViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUzLDggKzI1Myw2IEBACiAJCTFDQThCOTQ1
MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0E4Qjk0MzEy
N0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNB
OEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsg
fTsKIAkJMUNBOEI5NTQxMjdDODkxNTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rvck1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDOEUyREFEMTI3OEM1
QjIwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNYWMubW0gKi87IH07Ci0JCTI5MTIxNzA3MTYxQ0U3
MzYwMDU3RDQ1MSAvKiBVc2VyQ29udGVudENvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTEyMTcwNTE2MUNFNzM2MDA1N0Q0NTEgLyog
VXNlckNvbnRlbnRDb250YWluZXIuY3BwICovOyB9OwotCQkyOTEyMTcwODE2MUNFNzM2MDA1N0Q0
NTEgLyogVXNlckNvbnRlbnRDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTIxNzA2MTYxQ0U3MzYwMDU3RDQ1MSAvKiBVc2VyQ29udGVu
dENvbnRhaW5lci5oICovOyB9OwogCQkyOTNFQkVBQjE2MjdEOUM5MDA1Rjg5RjEgLyogV0tET01U
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTNF
QkVBOTE2MjdEOUM5MDA1Rjg5RjEgLyogV0tET01UZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQkyOTNFQkVBQzE2MjdEOUM5MDA1Rjg5RjEgLyog
V0tET01UZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkzRUJFQUExNjI3RDlDOTAwNUY4OUYxIC8qIFdLRE9NVGV4dC5tbSAqLzsgfTsKIAkJMjk1
MDE3MjQxNjJBNDUwNDAwNEE5RDcxIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI5NTAxNzIzMTYyQTQ1MDQwMDRBOUQ3MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzNjYsOCArMTM2NCw2IEBACiAJCTFDQThCOTM1
MTI3Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3RvclByb3h5TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4Qjk0MzEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTI5MTIxNzA1MTYxQ0U3MzYwMDU3RDQ1MSAvKiBVc2VyQ29udGVudENvbnRhaW5lci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyQ29udGVudENvbnRhaW5l
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTI5MTIxNzA2MTYxQ0U3MzYwMDU3
RDQ1MSAvKiBVc2VyQ29udGVudENvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBVc2VyQ29udGVudENvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyOTNFQkVBOTE2MjdEOUM5MDA1Rjg5RjEgLyogV0tET01UZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRE9NVGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOTNFQkVBQTE2MjdEOUM5MDA1Rjg5RjEgLyogV0tET01UZXh0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tET01UZXh0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOTUwMTcyMzE2MkE0NTA0MDA0QTlENzEgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjUyLDggKzI2
NDgsNiBAQAogCQkJCUJDOTBBMUQwMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5o
ICovLAogCQkJCUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBXZWJVc2VyQ29udGVudFVSTFBh
dHRlcm4uaCAqLywKIAkJCQlDMDMzN0REMDEyN0EyOTgwMDA4RkY0RjQgLyogV2ViV2hlZWxFdmVu
dC5jcHAgKi8sCi0JCQkJMjkxMjE3MDUxNjFDRTczNjAwNTdENDUxIC8qIFVzZXJDb250ZW50Q29u
dGFpbmVyLmNwcCAqLywKLQkJCQkyOTEyMTcwNjE2MUNFNzM2MDA1N0Q0NTEgLyogVXNlckNvbnRl
bnRDb250YWluZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU2hhcmVkOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTQ1MzAsNyArNDUyNCw2IEBACiAJCQkJQkMwMTdEMDkxNjI2MEZG
NDAwNzA1NEY1IC8qIFdLRE9NRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMTdEMEIx
NjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzAxN0QwRDE2MjYwRkY0MDA3MDU0RjUgLyogV0tET01Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkyOTEyMTcwODE2MUNFNzM2MDA1N0Q0NTEgLyogVXNlckNvbnRlbnRDb250YWluZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMDE3RDIxMTYyNjMzMDgwMDcwNTRGNSAvKiBXS0RPTVRleHRJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzOUM0MzYxNjI2MzY2RjAwOEJDNjg5IC8qIFdL
RE9NUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEYyRjJCMTYyNzNBMkMwMDVGQUNCNSAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtNTQ0MCw3ICs1NDMzLDYgQEAKIAkJCQlCQzAxN0QwQTE2MjYwRkY0MDA3MDU0RjUg
LyogV0tET01FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMTdEMEMxNjI2MEZGNDAw
NzA1NEY1IC8qIFdLRE9NSW50ZXJuYWxzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMTdEMEUx
NjI2MEZGNDAwNzA1NEY1IC8qIFdLRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTI5MTIx
NzA3MTYxQ0U3MzYwMDU3RDQ1MSAvKiBVc2VyQ29udGVudENvbnRhaW5lci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzAxN0QyMDE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0b3Iu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzM5QzQzNTE2MjYzNjZGMDA4QkM2ODkgLyogV0tET01S
YW5nZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDOEYyRjJBMTYyNzNBMkMwMDVGQUNCNSAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCmluZGV4IDAxOGVmNzk3MDA1NzlkMTBj
OTMyNzM4MTk2MGM4ZWViYjZiOWU2MTEuLjU5YzM1NzBiZDEwODA0MmVmNWRlN2M0M2UzZmE4MDlm
MDljOWNiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaApAQCAtMzIsOCArMzIs
NiBAQAogI2luY2x1ZGUgIldLQnVuZGxlUHJpdmF0ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRWRp
dG9ySW5zZXJ0QWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0QWZmaW5pdHkuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50VHlwZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJTY3JpcHRUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvbjsKQEAgLTEwNywzMiArMTA1LDYgQEAgaW5saW5lIFdLQWZmaW5pdHlUeXBl
IHRvQVBJKFdlYkNvcmU6OkVBZmZpbml0eSBhZmZpbml0eSkKICAgICByZXR1cm4ga1dLQWZmaW5p
dHlVcHN0cmVhbTsKIH0KIAotaW5saW5lIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
IHRvVXNlclNjcmlwdEluamVjdGlvblRpbWUoV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSB3a0lu
amVjdGVkVGltZSkKLXsKLSAgICBzd2l0Y2ggKHdrSW5qZWN0ZWRUaW1lKSB7Ci0gICAgY2FzZSBr
V0tJbmplY3RBdERvY3VtZW50U3RhcnQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RB
dERvY3VtZW50U3RhcnQ7Ci0gICAgY2FzZSBrV0tJbmplY3RBdERvY3VtZW50RW5kOgotICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0QXREb2N1bWVudEVuZDsKLSAgICB9Ci0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0QXREb2N1bWVudFN0
YXJ0OwotfQotCi1pbmxpbmUgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB0b1Vz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIHdrSW5q
ZWN0ZWRGcmFtZXMpCi17Ci0gICAgc3dpdGNoICh3a0luamVjdGVkRnJhbWVzKSB7Ci0gICAgY2Fz
ZSBrV0tJbmplY3RJbkFsbEZyYW1lczoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdElu
QWxsRnJhbWVzOwotICAgIGNhc2Uga1dLSW5qZWN0SW5Ub3BGcmFtZU9ubHk6Ci0gICAgICAgIHJl
dHVybiBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seTsKLSAgICB9Ci0KLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXM7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV0tCdW5kbGVBUElDYXN0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCmluZGV4IDhjOGY2MmM3YTM0YzgxOWE5YzE0
ODVlMzY4NThlNTJlMDkwYjQ3YjMuLjM2OWM0MzAyZmFhNDczZWNjMzRlMzA0MmYzN2QwYTI2YjRh
ZWNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAtMzYsMTIgKzM2LDYg
QEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLWVudW0gV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZSB7Ci0gICAga1dLSW5qZWN0QXREb2N1bWVudFN0YXJ0LAotICAgIGtXS0luamVjdEF0RG9jdW1l
bnRFbmQKLX07Ci10eXBlZGVmIGVudW0gV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBXS1VzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lOwotCiAvLyBUZXN0UnVubmVyIG9ubHkgU1BJCiBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKFdLQnVuZGxlUmVmIGJ1bmRs
ZSwgYm9vbCBzaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZVNldEFsd2F5c0FjY2VwdENvb2tpZXMoV0tCdW5kbGVSZWYgYnVuZGxlLCBib29sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJv
eHkuY3BwCmluZGV4IDBlYzczNDAzNjJjYmI5MDFlOGY3YzVmNDc2NzAxMDYyMmEzM2E2NWQuLjI1
ZWYzMjk2YmJiODc5M2VmNTcwOTVjZTQ0NzAyOWY4M2MzNTZmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcApA
QCAtNTcsMTIgKzU3LDE5IEBAIFdlYlBhZ2VHcm91cFByb3h5OjpXZWJQYWdlR3JvdXBQcm94eShj
b25zdCBXZWJQYWdlR3JvdXBEYXRhJiBkYXRhKQogICAgICwgbV9wYWdlR3JvdXAoV2ViQ29yZTo6
UGFnZUdyb3VwOjpwYWdlR3JvdXAobV9kYXRhLmlkZW50aWZlcikpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBkYXRhLnVzZXJTdHlsZVNoZWV0cy5zaXplKCk7ICsraSkKLSAgICAgICAg
YWRkVXNlclN0eWxlU2hlZXQoZGF0YS51c2VyU3R5bGVTaGVldHMuYXQoaSkpOworICAgICAgICBh
ZGRVc2VyU3R5bGVTaGVldChkYXRhLnVzZXJTdHlsZVNoZWV0c1tpXSk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBkYXRhLnVzZXJTY3JpcHRzLnNpemUoKTsgKytpKQorICAgICAgICBhZGRV
c2VyU2NyaXB0KGRhdGEudXNlclNjcmlwdHNbaV0pOwogfQogCi12b2lkIFdlYlBhZ2VHcm91cFBy
b3h5OjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBVc2VyQ29udGVudENvbnRhaW5lcjo6SXRlbSYg
c3R5bGVTaGVldCkKK3ZvaWQgV2ViUGFnZUdyb3VwUHJveHk6OmFkZFVzZXJTdHlsZVNoZWV0KGNv
bnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0JiB1c2VyU3R5bGVTaGVldCkKIHsKLSAgICBtX3Bh
Z2VHcm91cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKFdlYkNvcmU6Om1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpLCBzdHlsZVNoZWV0LnNvdXJjZSgpLCBzdHlsZVNoZWV0LnVybCgpLCBzdHlsZVNo
ZWV0LndoaXRlbGlzdCgpLCBzdHlsZVNoZWV0LmJsYWNrbGlzdCgpLCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihzdHlsZVNoZWV0LmluamVjdGVkRnJhbWVz
KCkpKTsKKyAgICBtX3BhZ2VHcm91cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKFdlYkNvcmU6
Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCB1c2VyU3R5bGVTaGVldC5zb3VyY2UoKSwgdXNlclN0
eWxlU2hlZXQudXJsKCksIHVzZXJTdHlsZVNoZWV0LndoaXRlbGlzdCgpLCB1c2VyU3R5bGVTaGVl
dC5ibGFja2xpc3QoKSwgdXNlclN0eWxlU2hlZXQuaW5qZWN0ZWRGcmFtZXMoKSwgdXNlclN0eWxl
U2hlZXQubGV2ZWwoKSk7Cit9CisKK3ZvaWQgV2ViUGFnZUdyb3VwUHJveHk6OmFkZFVzZXJTY3Jp
cHQoY29uc3QgV2ViQ29yZTo6VXNlclNjcmlwdCYgdXNlclNjcmlwdCkKK3sKKyAgICBtX3BhZ2VH
cm91cC0+YWRkVXNlclNjcmlwdFRvV29ybGQoV2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxk
KCksIHVzZXJTY3JpcHQuc291cmNlKCksIHVzZXJTY3JpcHQudXJsKCksIHVzZXJTY3JpcHQud2hp
dGVsaXN0KCksIHVzZXJTY3JpcHQuYmxhY2tsaXN0KCksIHVzZXJTY3JpcHQuaW5qZWN0aW9uVGlt
ZSgpLCB1c2VyU2NyaXB0LmluamVjdGVkRnJhbWVzKCkpOwogfQogCiB2b2lkIFdlYlBhZ2VHcm91
cFByb3h5OjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKQpAQCAtNzAsNCArNzcsMTQgQEAgdm9p
ZCBXZWJQYWdlR3JvdXBQcm94eTo6cmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCkKICAgICBtX3Bh
Z2VHcm91cC0+cmVtb3ZlVXNlclN0eWxlU2hlZXRzRnJvbVdvcmxkKFdlYkNvcmU6Om1haW5UaHJl
YWROb3JtYWxXb3JsZCgpKTsKIH0KIAordm9pZCBXZWJQYWdlR3JvdXBQcm94eTo6cmVtb3ZlQWxs
VXNlclNjcmlwdHMoKQoreworICAgIG1fcGFnZUdyb3VwLT5yZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGQoV2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOworfQorCit2b2lkIFdl
YlBhZ2VHcm91cFByb3h5OjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCit7CisgICAgbV9wYWdlR3Jv
dXAtPnJlbW92ZUFsbFVzZXJDb250ZW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91
cFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3Vw
UHJveHkuaAppbmRleCA0MWJlNTA2MmRmOWYxZGYyYzQ5ZDI1NGM0MjZiMTNmYzRjOTY5OGU1Li5j
YmIwNzk0MjEzZDJkMWZhMWU5ODJmMGFjNWY4NGMwOWM1YzJhZWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuaApAQCAt
NjMsOCArNjMsMTEgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdl
R3JvdXBQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgCi0gICAgdm9pZCBhZGRVc2VyU3R5
bGVTaGVldChjb25zdCBVc2VyQ29udGVudENvbnRhaW5lcjo6SXRlbSYgc3R5bGVTaGVldCk7Cisg
ICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCYp
OworICAgIHZvaWQgYWRkVXNlclNjcmlwdChjb25zdCBXZWJDb3JlOjpVc2VyU2NyaXB0Jik7CiAg
ICAgdm9pZCByZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKTsKKyAgICB2b2lkIHJlbW92ZUFsbFVz
ZXJTY3JpcHRzKCk7CisgICAgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCiAgICAgV2Vi
UGFnZUdyb3VwRGF0YSBtX2RhdGE7CiAgICAgV2ViQ29yZTo6UGFnZUdyb3VwKiBtX3BhZ2VHcm91
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
R3JvdXBQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlR3JvdXBQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2YjVhYzE4Njg2NmM0Y2Y0ZDk0
YjBjOWIzZmMzM2Y4Y2U0Njc3MmQyLi44YmE1MjdhM2QyNGNmYmFiNWQxNWM2OWU0NDQ3NTc2NjVk
ZGY3NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUdyb3VwUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSw2ICsyMSw5IEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYlBhZ2VHcm91cFByb3h5IHsKLSAgICBB
ZGRVc2VyU3R5bGVTaGVldChXZWJLaXQ6OlVzZXJDb250ZW50Q29udGFpbmVyOjpJdGVtIHN0eWxl
U2hlZXQpOworICAgIEFkZFVzZXJTdHlsZVNoZWV0KFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0IHVz
ZXJTdHlsZVNoZWV0KTsKKyAgICBBZGRVc2VyU2NyaXB0KFdlYkNvcmU6OlVzZXJTY3JpcHQgdXNl
clNjcmlwdCk7CiAgICAgUmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCk7CisgICAgUmVtb3ZlQWxs
VXNlclNjcmlwdHMoKTsKKyAgICBSZW1vdmVBbGxVc2VyQ29udGVudCgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCmluZGV4IDE2NjZjNzVjMjg2MTgxMmY4YTI5MDViYmRlNzNiNmVhOWFk
ZDg5NWUuLmViY2Q2Y2MzNWY3MGZmZmY2ZWQwOGJlMzE5YTEzMTRjN2Q2MmIwNWQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTU4NywxNCArNTg3LDYgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFVzZXJDb250ZW50Q29u
dGFpbmVyLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXFVzZXJDb250ZW50Q29udGFpbmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxVc2VyTWVzc2FnZUNvZGVycy5o
IgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>
<flag name="review"
          id="181623"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>