<?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>43630</bug_id>
          
          <creation_ts>2010-08-06 11:08:00 -0700</creation_ts>
          <short_desc>Web Inspector: remove hand written InspectorFrontend from almost all places.</short_desc>
          <delta_ts>2010-08-08 10:17:23 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261361</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-06 11:08:00 -0700</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261888</commentid>
    <comment_count>1</comment_count>
      <attachid>63843</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-08 09:26:58 -0700</bug_when>
    <thetext>Created attachment 63843
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261897</commentid>
    <comment_count>2</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-08 10:17:23 -0700</bug_when>
    <thetext>Committed r64951
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorFrontend.cpp
	M	WebCore/inspector/ConsoleMessage.cpp
	M	WebCore/inspector/InjectedScriptHost.cpp
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorFrontendClientLocal.cpp
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorFrontend.h
	M	WebCore/inspector/InjectedScriptHost.h
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/TimelineRecordFactory.cpp
r64951 = f2f6283448dbac3ce324e70bc687371bd4864d00 (refs/remotes/tr</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63843</attachid>
            <date>2010-08-08 09:26:58 -0700</date>
            <delta_ts>2010-08-08 09:31:13 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>34516</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2E5MjFjMS4uODZkZGIyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxMC0wOC0wOCAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiByZW1vdmUgaGFuZCB3cml0dGVuIElu
c3BlY3RvckZyb250ZW5kIGZyb20gYWxtb3N0IGFsbCBwbGFjZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzYzMAorCisgICAgICAgICogaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6cHVzaE5v
ZGVQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9z
dC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpp
bnNwZWN0ZWRQYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Omluc3BlY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
Zm9jdXNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbmRv
d1Zpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6aW5z
cGVjdGVkV2luZG93U2NyaXB0T2JqZWN0Q2xlYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpzZXRTZWFyY2hpbmdGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OnNldE1vbml0b3JpbmdYSFIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6c2hvd1BhbmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjplbmFibGVSZXNvdXJjZVRyYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVSZXNvdXJjZVRyYWNraW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltZWxpbmVQcm9maWxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVGltZWxpbmVQcm9maWxlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpwb3N0V29ya2VyTm90aWZp
Y2F0aW9uVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRDcmVhdGVXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkRGVzdHJveVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjp0b2dnbGVSZWNvcmRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZW5hYmxlUHJvZmlsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlzYWJsZVByb2ZpbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OmVuYWJsZURlYnVnZ2VyRnJvbUZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZURlYnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmNwcDoKKwogMjAxMC0wOC0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwCmluZGV4IDg5ODVjYjcuLjA1OWRlYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCi0jaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKaW5kZXggZmEyZTJjYi4uNWMwNWM3MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAj
aW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9y
RnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmQuaCIKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JGcm9udGVuZC5oIgpAQCAtOTks
NyArOTgsNyBAQCBOb2RlKiBJbmplY3RlZFNjcmlwdEhvc3Q6Om5vZGVGb3JJZChsb25nIG5vZGVJ
ZCkKIAogbG9uZyBJbmplY3RlZFNjcmlwdEhvc3Q6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9k
ZSogbm9kZSwgYm9vbCB3aXRoQ2hpbGRyZW4sIGJvb2wgc2VsZWN0SW5VSSkKIHsKLSAgICBJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQgPSBpbnNwZWN0b3JGcm9udGVuZCgpOworICAgIFJlbW90
ZUluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCA9IHJlbW90ZUZyb250ZW5kKCk7CiAgICAgSW5z
cGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKTsKICAgICBpZiAo
IWRvbUFnZW50IHx8ICFmcm9udGVuZCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNzksMTMgKzE3
OCw2IEBAIEluc3BlY3RvckRPTUFnZW50KiBJbmplY3RlZFNjcmlwdEhvc3Q6Omluc3BlY3RvckRP
TUFnZW50KCkKICAgICByZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kb21BZ2VudCgpOwog
fQogCi1JbnNwZWN0b3JGcm9udGVuZCogSW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0b3JGcm9u
dGVuZCgpCi17Ci0gICAgaWYgKCFtX2luc3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBtX2luc3BlY3RvckNvbnRyb2xsZXItPm1fZnJvbnRlbmQuZ2V0KCk7
Ci19Ci0KIFJlbW90ZUluc3BlY3RvckZyb250ZW5kKiBJbmplY3RlZFNjcmlwdEhvc3Q6OnJlbW90
ZUZyb250ZW5kKCkKIHsKICAgICBpZiAoIW1faW5zcGVjdG9yQ29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKaW5kZXggZjUwNjFmYi4uM2JkMzMxMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTQzLDcgKzQzLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBJbmplY3RlZFNjcmlwdDsKIGNs
YXNzIEluc3BlY3RvckRPTUFnZW50OwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBO
b2RlOwogY2xhc3MgUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBTdG9yYWdlOwpAQCAt
OTUsNyArOTQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluamVjdGVkU2NyaXB0SG9zdChJ
bnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKICAgICBJbnNwZWN0b3JE
T01BZ2VudCogaW5zcGVjdG9yRE9NQWdlbnQoKTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZCogaW5z
cGVjdG9yRnJvbnRlbmQoKTsKICAgICBSZW1vdGVJbnNwZWN0b3JGcm9udGVuZCogcmVtb3RlRnJv
bnRlbmQoKTsKICAgICBTY3JpcHRPYmplY3QgY3JlYXRlSW5qZWN0ZWRTY3JpcHQoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgbG9uZyBpZCk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsCmluZGV4IDFkYmY1NmIuLjhkMTEwYWQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmlkbApAQCAtMzYsMjQgKzM2LDUxIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW25vdGlm
eV0gdm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKG91dCBPYmplY3QgcmVjb3JkKTsKICAgICAgICAg
W25vdGlmeV0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KG91dCBBcnJheSBub2RlSWRzKTsK
ICAgICAgICAgW25vdGlmeV0gdm9pZCBhdHRyaWJ1dGVzVXBkYXRlZChvdXQgbG9uZyBpZCwgb3V0
IEFycmF5IGF0dHJpYnV0ZXMpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGJyaW5nVG9Gcm9udCgp
OwogICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZUNvdW50VXBkYXRlZChvdXQgbG9uZyBp
ZCwgb3V0IGludCBuZXdWYWx1ZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlSW5z
ZXJ0ZWQob3V0IGxvbmcgcGFyZW50SWQsIG91dCBsb25nIHByZXZJZCwgb3V0IE9iamVjdCBub2Rl
KTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVSZW1vdmVkKG91dCBsb25nIHBhcmVu
dElkLCBvdXQgbG9uZyBpZCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgY2xvc2UoKTsKKyAgICAg
ICAgW25vdGlmeV0gdm9pZCBkaWRDb21taXRMb2FkKCk7CisgICAgICAgIFtub3RpZnldIHZvaWQg
ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChvdXQgbG9uZyB0ZXN0Q2FsbElkLCBvdXQgU3RyaW5n
IHNjcmlwdCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgaW5zcGVjdGVkUGFnZURlc3Ryb3llZCgp
OworICAgICAgICBbbm90aWZ5XSB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQob3V0IFN0cmluZyB1
cmwpOworICAgICAgICBbbm90aWZ5XSB2b2lkIG1vbml0b3JpbmdYSFJXYXNFbmFibGVkKCk7Cisg
ICAgICAgIFtub3RpZnldIHZvaWQgbW9uaXRvcmluZ1hIUldhc0Rpc2FibGVkKCk7CisgICAgICAg
IFtub3RpZnldIHZvaWQgcG9wdWxhdGVBcHBsaWNhdGlvblNldHRpbmdzKG91dCBTdHJpbmcgc2V0
dGluZ3MpOworICAgICAgICBbbm90aWZ5XSB2b2lkIHBvcHVsYXRlSW50ZXJmYWNlKCk7CisgICAg
ICAgIFtub3RpZnldIHZvaWQgcG9wdWxhdGVTZXNzaW9uU2V0dGluZ3Mob3V0IFN0cmluZyBzZXR0
aW5ncyk7CisgICAgICAgIFtub3RpZnldIHZvaWQgcmVtb3ZlUmVzb3VyY2Uob3V0IHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIFtub3RpZnldIHZvaWQgcmVzZXQoKTsKKyAgICAg
ICAgW25vdGlmeV0gdm9pZCByZXNldFByb2ZpbGVzUGFuZWwoKTsKKyAgICAgICAgW25vdGlmeV0g
dm9pZCByZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCgpOworICAgICAgICBbbm90aWZ5XSB2b2lk
IHJlc291cmNlVHJhY2tpbmdXYXNEaXNhYmxlZCgpOworICAgICAgICBbbm90aWZ5XSB2b2lkIHNl
YXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgc2VhcmNo
aW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgc2V0Q2hpbGRO
b2RlcyhvdXQgbG9uZyBwYXJlbnRJZCwgb3V0IEFycmF5IG5vZGVzKTsKICAgICAgICAgW25vdGlm
eV0gdm9pZCBzZXREZXRhY2hlZFJvb3Qob3V0IE9iamVjdCByb290KTsKICAgICAgICAgW25vdGlm
eV0gdm9pZCBzZXREb2N1bWVudChvdXQgVmFsdWUgcm9vdCk7CisgICAgICAgIFtub3RpZnldIHZv
aWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCB0
aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0
ZUNvbnNvbGVNZXNzYWdlRXhwaXJlZENvdW50KG91dCB1bnNpZ25lZCBsb25nIGNvdW50KTsKICAg
ICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50KG91dCB1
bnNpZ25lZCBsb25nIGNvdW50KTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVGb2N1c2Vk
Tm9kZShvdXQgbG9uZyBub2RlSWQpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0ZVJlc291
cmNlKG91dCBWYWx1ZSByZXNvdXJjZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgcmVtb3ZlUmVz
b3VyY2Uob3V0IHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCk7CisKICNpZiBkZWZpbmVkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgotICAg
ICAgICBbbm90aWZ5XSB2b2lkIHBhcnNlZFNjcmlwdFNvdXJjZShvdXQgU3RyaW5nIHNvdXJjZUlE
LCBvdXQgU3RyaW5nIHVybCwgb3V0IFN0cmluZyBkYXRhLCBvdXQgaW50IGZpcnN0TGluZSwgb3V0
IGludCBzY3JpcHRXb3JsZFR5cGUpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGFkZFByb2ZpbGVI
ZWFkZXIob3V0IE9iamVjdCBoZWFkZXIpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGF0dGFjaERl
YnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgZGVidWdnZXJXYXNFbmFi
bGVkKCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwogICAg
ICAgICBbbm90aWZ5XSB2b2lkIGZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2Uob3V0IFN0cmluZyB1
cmwsIG91dCBTdHJpbmcgZGF0YSwgb3V0IGludCBmaXJzdExpbmUsIG91dCBpbnQgZXJyb3JMaW5l
LCBvdXQgU3RyaW5nIGVycm9yTWVzc2FnZSk7CisgICAgICAgIFtub3RpZnldIHZvaWQgcGFyc2Vk
U2NyaXB0U291cmNlKG91dCBTdHJpbmcgc291cmNlSUQsIG91dCBTdHJpbmcgdXJsLCBvdXQgU3Ry
aW5nIGRhdGEsIG91dCBpbnQgZmlyc3RMaW5lLCBvdXQgaW50IHNjcmlwdFdvcmxkVHlwZSk7CiAg
ICAgICAgIFtub3RpZnldIHZvaWQgcGF1c2VkU2NyaXB0KG91dCBWYWx1ZSBjYWxsRnJhbWVzKTsK
LSAgICAgICAgW25vdGlmeV0gdm9pZCByZXN1bWVkU2NyaXB0KCk7CisgICAgICAgIFtub3RpZnld
IHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7CisgICAgICAgIFtub3RpZnldIHZvaWQgcHJvZmls
ZXJXYXNEaXNhYmxlZCgpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc3RvcmVkQnJlYWtwb2lu
dChvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQgU3RyaW5nIHVybCwgb3V0IGludCBsaW5lLCBvdXQg
Ym9vbGVhbiBlbmFibGVkLCBvdXQgU3RyaW5nIGNvbmRpdGlvbik7CisgICAgICAgIFtub3RpZnld
IHZvaWQgcmVzdW1lZFNjcmlwdCgpOworICAgICAgICBbbm90aWZ5XSB2b2lkIHNldFJlY29yZGlu
Z1Byb2ZpbGUob3V0IGJvb2xlYW4gaXNQcm9maWxpbmcpOwogICAgICAgICBbbm90aWZ5XSB2b2lk
IHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUob3V0IGxvbmcgc3RhdGUpOwotICAgICAgICBb
bm90aWZ5XSB2b2lkIGFkZFByb2ZpbGVIZWFkZXIob3V0IE9iamVjdCBoZWFkZXIpOwogI2VuZGlm
CiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUJBU0UpICYmIEVOQUJMRV9EQVRBQkFTRQogICAgICAg
ICBbbm90aWZ5XSB2b2lkIGFkZERhdGFiYXNlKG91dCBPYmplY3QgZGF0YWJhc2UpOwpAQCAtNjgs
NiArOTUsMTAgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0ZUFw
cGxpY2F0aW9uQ2FjaGVTdGF0dXMob3V0IGludCBzdGF0dXMpOwogICAgICAgICBbbm90aWZ5XSB2
b2lkIHVwZGF0ZU5ldHdvcmtTdGF0ZShvdXQgYm9vbGVhbiBpc05vd09ubGluZSk7CiAjZW5kaWYK
KyNpZiBkZWZpbmVkKEVOQUJMRV9XT1JLRVJTKSAmJiBFTkFCTEVfV09SS0VSUworICAgICAgICBb
bm90aWZ5XSB2b2lkIGRpZENyZWF0ZVdvcmtlcihvdXQgbG9uZyBpZCwgb3V0IFN0cmluZyB1cmws
IG91dCBib29sZWFuIGlzU2hhcmVkKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBkaWREZXN0cm95
V29ya2VyKG91dCBsb25nIGlkKTsKKyNlbmRpZgogCiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xs
ZXJdIHZvaWQgc3RvcmVMYXN0QWN0aXZlUGFuZWwoaW4gU3RyaW5nIHBhbmVsTmFtZSk7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKaW5kZXggNDAzZjFkZC4uZjBhMTYzOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAKQEAgLTQwLDcgKzQwLDYgQEAK
ICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kLmgiCiAj
aW5jbHVkZSAiU2NyaXB0QnJlYWtwb2ludC5oIgogI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGVyLmgi
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQyMWFlZGQu
LjY4ZmNhZWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC0xOTUsOCArMTk1LDggQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xs
ZXIoKQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQo
KQogewotICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRQ
YWdlRGVzdHJveWVkKCk7CisgICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCisgICAgICAgIG1fcmVt
b3RlRnJvbnRlbmQtPmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKTsKIAogICAgIGhpZGVIaWdobGln
aHQoKTsKIApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5z
cGVjdChOb2RlKiBub2RlKQogICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAg
IG1fbm9kZVRvRm9jdXMgPSBub2RlOwogCi0gICAgaWYgKCFtX2Zyb250ZW5kKSB7CisgICAgaWYg
KCFtX3JlbW90ZUZyb250ZW5kKSB7CiAgICAgICAgIG1fc2hvd0FmdGVyVmlzaWJsZSA9IEVsZW1l
bnRzUGFuZWw7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNjksMTEgKzI2OSwxMSBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmZvY3VzTm9kZSgpCiAgICAgaWYgKCFlbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2Zyb250ZW5kKTsKKyAgICBBU1NFUlQo
bV9yZW1vdGVGcm9udGVuZCk7CiAgICAgQVNTRVJUKG1fbm9kZVRvRm9jdXMpOwogCiAgICAgbG9u
ZyBpZCA9IG1fZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobV9ub2RlVG9Gb2N1cy5n
ZXQoKSk7Ci0gICAgbV9mcm9udGVuZC0+dXBkYXRlRm9jdXNlZE5vZGUoaWQpOworICAgIG1fcmVt
b3RlRnJvbnRlbmQtPnVwZGF0ZUZvY3VzZWROb2RlKGlkKTsKICAgICBtX25vZGVUb0ZvY3VzID0g
MDsKIH0KIApAQCAtMzAzLDcgKzMwMyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aGlk
ZUhpZ2hsaWdodCgpCiAKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2luZG93VmlzaWJsZSgp
CiB7Ci0gICAgcmV0dXJuIG1fZnJvbnRlbmQ7CisgICAgcmV0dXJuIG1fcmVtb3RlRnJvbnRlbmQ7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBT
Y3JpcHRDYWxsU3RhY2sqIGNhbGxTdGFjaywgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMzMw
LDE2ICszMzAsMTYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjphZGRDb25zb2xlTWVzc2Fn
ZShTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIFBhc3NPd25QdHIKIAogICAgIGlmIChtX3ByZXZp
b3VzTWVzc2FnZSAmJiBtX3ByZXZpb3VzTWVzc2FnZS0+aXNFcXVhbChzY3JpcHRTdGF0ZSwgY29u
c29sZU1lc3NhZ2UuZ2V0KCkpKSB7CiAgICAgICAgIG1fcHJldmlvdXNNZXNzYWdlLT5pbmNyZW1l
bnRDb3VudCgpOwotICAgICAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgaWYgKG1fcmVtb3Rl
RnJvbnRlbmQpCiAgICAgICAgICAgICBtX3ByZXZpb3VzTWVzc2FnZS0+dXBkYXRlUmVwZWF0Q291
bnRJbkNvbnNvbGUobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgbV9wcmV2aW91c01lc3NhZ2UgPSBjb25zb2xlTWVzc2FnZS5nZXQoKTsKICAgICAgICAgbV9j
b25zb2xlTWVzc2FnZXMuYXBwZW5kKGNvbnNvbGVNZXNzYWdlKTsKLSAgICAgICAgaWYgKG1fZnJv
bnRlbmQpCisgICAgICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQogICAgICAgICAgICAgbV9wcmV2
aW91c01lc3NhZ2UtPmFkZFRvRnJvbnRlbmQobV9yZW1vdGVGcm9udGVuZC5nZXQoKSwgbV9pbmpl
Y3RlZFNjcmlwdEhvc3QuZ2V0KCkpOwogICAgIH0KIAotICAgIGlmICghbV9mcm9udGVuZCAmJiBt
X2NvbnNvbGVNZXNzYWdlcy5zaXplKCkgPj0gbWF4aW11bUNvbnNvbGVNZXNzYWdlcykgeworICAg
IGlmICghbV9yZW1vdGVGcm9udGVuZCAmJiBtX2NvbnNvbGVNZXNzYWdlcy5zaXplKCkgPj0gbWF4
aW11bUNvbnNvbGVNZXNzYWdlcykgewogICAgICAgICBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNv
dW50ICs9IGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXA7CiAgICAgICAgIG1fY29uc29sZU1lc3Nh
Z2VzLnJlbW92ZSgwLCBleHBpcmVDb25zb2xlTWVzc2FnZXNTdGVwKTsKICAgICB9CkBAIC00MjQs
NyArNDI0LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRXaW5kb3dTY3Jp
cHRPYmplY3RDbGVhcmVkKEZyYW1lKiBmcmFtZSkKICAgICAgICAgbV9pbnNwZWN0b3JGcm9udGVu
ZENsaWVudC0+d2luZG93T2JqZWN0Q2xlYXJlZCgpOwogCiAgICAgaWYgKGVuYWJsZWQoKSkgewot
ICAgICAgICBpZiAobV9mcm9udGVuZCAmJiBmcmFtZSA9PSBtX2luc3BlY3RlZFBhZ2UtPm1haW5G
cmFtZSgpKQorICAgICAgICBpZiAobV9yZW1vdGVGcm9udGVuZCAmJiBmcmFtZSA9PSBtX2luc3Bl
Y3RlZFBhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdEhvc3Qt
PmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKICAgICAgICAgaWYgKG1fc2NyaXB0c1RvRXZhbHVh
dGVPbkxvYWQuc2l6ZSgpKSB7CiAgICAgICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUg
PSBtYWluV29ybGRTY3JpcHRTdGF0ZShmcmFtZSk7CkBAIC00NDUsMTEgKzQ0NSwxMSBAQCB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKQog
ICAgIG1fc2VhcmNoaW5nRm9yTm9kZSA9IGVuYWJsZWQ7CiAgICAgaWYgKCFtX3NlYXJjaGluZ0Zv
ck5vZGUpCiAgICAgICAgIGhpZGVIaWdobGlnaHQoKTsKLSAgICBpZiAobV9mcm9udGVuZCkgewor
ICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKSB7CiAgICAgICAgIGlmIChlbmFibGVkKQotICAgICAg
ICAgICAgbV9mcm9udGVuZC0+c2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQoKTsKKyAgICAgICAg
ICAgIG1fcmVtb3RlRnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNEaXNh
YmxlZCgpOworICAgICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+c2VhcmNoaW5nRm9yTm9kZVdh
c0Rpc2FibGVkKCk7CiAgICAgfQogfQogCkBAIC00NTksMTEgKzQ1OSwxMSBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNldE1vbml0b3JpbmdYSFIoYm9vbCBlbmFibGVkKQogICAgICAgICBy
ZXR1cm47CiAgICAgbV9tb25pdG9yaW5nWEhSID0gZW5hYmxlZDsKICAgICBzZXRTZXR0aW5nKG1v
bml0b3JpbmdYSFJTZXR0aW5nTmFtZSwgZW5hYmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAg
IGlmIChtX2Zyb250ZW5kKSB7CisgICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpIHsKICAgICAgICAg
aWYgKGVuYWJsZWQpCi0gICAgICAgICAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5nWEhSV2FzRW5h
YmxlZCgpOworICAgICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+bW9uaXRvcmluZ1hIUldhc0Vu
YWJsZWQoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9mcm9udGVuZC0+bW9uaXRvcmlu
Z1hIUldhc0Rpc2FibGVkKCk7CisgICAgICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5tb25pdG9y
aW5nWEhSV2FzRGlzYWJsZWQoKTsKICAgICB9CiB9CiAKQEAgLTQ3OCw3ICs0NzgsNyBAQCB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZChjb25zdCBTY3JpcHRPYmplY3Qm
IHdlYkluc3BlY3RvcikKICAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5kUHJv
eHlPYmplY3QobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7CiAKICAgICAvLyBJbml0aWFsaXplIFdl
YiBJbnNwZWN0b3IgdGl0bGUuCi0gICAgbV9mcm9udGVuZC0+aW5zcGVjdGVkVVJMQ2hhbmdlZCht
X2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCkuc3RyaW5nKCkpOwor
ICAgIG1fcmVtb3RlRnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdl
LT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsKIAogICAgIHBvcHVsYXRl
U2NyaXB0T2JqZWN0cygpOwogCkBAIC01MjMsOCArNTIzLDggQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpzaG93KCkKICAgICBpZiAobV9vcGVuaW5nRnJvbnRlbmQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5icmluZ1RvRnJv
bnQoKTsKKyAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkKKyAgICAgICAgbV9yZW1vdGVGcm9udGVu
ZC0+YnJpbmdUb0Zyb250KCk7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fb3BlbmluZ0Zyb250ZW5k
ID0gdHJ1ZTsKICAgICAgICAgbV9jbGllbnQtPm9wZW5JbnNwZWN0b3JGcm9udGVuZCh0aGlzKTsK
QEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNob3dQYW5lbChT
cGVjaWFsUGFuZWxzIHBhbmVsKQogCiAgICAgc2hvdygpOwogCi0gICAgaWYgKCFtX2Zyb250ZW5k
KSB7CisgICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kKSB7CiAgICAgICAgIG1fc2hvd0FmdGVyVmlz
aWJsZSA9IHBhbmVsOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTUxLDE0ICs1NTEsMTQg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93UGFuZWwoU3BlY2lhbFBhbmVscyBwYW5l
bCkKIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSgpCiB7Ci0gICAgaWYgKCFtX2Zy
b250ZW5kKQorICAgIGlmICghbV9yZW1vdGVGcm9udGVuZCkKICAgICAgICAgcmV0dXJuOwogICAg
IG1fZnJvbnRlbmQtPmNsb3NlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlz
Y29ubmVjdEZyb250ZW5kKCkKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCisgICAgaWYgKCFtX3Jl
bW90ZUZyb250ZW5kKQogICAgICAgICByZXR1cm47CiAgICAgbV9mcm9udGVuZC5jbGVhcigpOwog
ICAgIG1fcmVtb3RlRnJvbnRlbmQuY2xlYXIoKTsKQEAgLTYwNiwyNCArNjA2LDI0IEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVsZWFzZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKQogCiB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cygpCiB7Ci0gICAg
QVNTRVJUKG1fZnJvbnRlbmQpOwotICAgIGlmICghbV9mcm9udGVuZCkKKyAgICBBU1NFUlQobV9y
ZW1vdGVGcm9udGVuZCk7CisgICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2Zyb250ZW5kLT5wb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3Moc2V0dGlu
Zyhmcm9udGVuZFNldHRpbmdzU2V0dGluZ05hbWUoKSkpOworICAgIG1fcmVtb3RlRnJvbnRlbmQt
PnBvcHVsYXRlQXBwbGljYXRpb25TZXR0aW5ncyhzZXR0aW5nKGZyb250ZW5kU2V0dGluZ3NTZXR0
aW5nTmFtZSgpKSk7CiAKICAgICBpZiAobV9yZXNvdXJjZVRyYWNraW5nRW5hYmxlZCkKLSAgICAg
ICAgbV9mcm9udGVuZC0+cmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKKyAgICAgICAgbV9y
ZW1vdGVGcm9udGVuZC0+cmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKIAogICAgIGlmICht
X3NlYXJjaGluZ0Zvck5vZGUpCi0gICAgICAgIG1fZnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVX
YXNFbmFibGVkKCk7CisgICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVX
YXNFbmFibGVkKCk7CiAKICAgICBpZiAobV9tb25pdG9yaW5nWEhSKQotICAgICAgICBtX2Zyb250
ZW5kLT5tb25pdG9yaW5nWEhSV2FzRW5hYmxlZCgpOworICAgICAgICBtX3JlbW90ZUZyb250ZW5k
LT5tb25pdG9yaW5nWEhSV2FzRW5hYmxlZCgpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiAgICAgaWYgKG1fcHJvZmlsZXJFbmFibGVkKQotICAgICAgICBtX2Zyb250ZW5kLT5w
cm9maWxlcldhc0VuYWJsZWQoKTsKKyAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+cHJvZmlsZXJX
YXNFbmFibGVkKCk7CiAjZW5kaWYKIAogICAgIFJlc291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3Vy
Y2VzRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7CkBAIC02NDAsNyArNjQwLDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKQogCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKGRlYnVnZ2VyRW5hYmxlZCgpKQotICAgICAgICBt
X2Zyb250ZW5kLT51cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFNjcmlwdERlYnVnU2VydmVy
OjpzaGFyZWQoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCkpOworICAgICAgICBtX3JlbW90ZUZy
b250ZW5kLT51cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFNjcmlwdERlYnVnU2VydmVyOjpz
aGFyZWQoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkYXRhYmFzZXNFbmQg
PSBtX2RhdGFiYXNlUmVzb3VyY2VzLmVuZCgpOwpAQCAtNjU0LDE2ICs2NTQsMTggQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKQogI2VuZGlmCiAjaWYg
RU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2Vyc01hcDo6aXRlcmF0b3Igd29ya2Vyc0VuZCA9IG1f
d29ya2Vycy5lbmQoKTsKLSAgICBmb3IgKFdvcmtlcnNNYXA6Oml0ZXJhdG9yIGl0ID0gbV93b3Jr
ZXJzLmJlZ2luKCk7IGl0ICE9IHdvcmtlcnNFbmQ7ICsraXQpCi0gICAgICAgIG1fZnJvbnRlbmQt
PmRpZENyZWF0ZVdvcmtlcigqaXQtPnNlY29uZCk7CisgICAgZm9yIChXb3JrZXJzTWFwOjppdGVy
YXRvciBpdCA9IG1fd29ya2Vycy5iZWdpbigpOyBpdCAhPSB3b3JrZXJzRW5kOyArK2l0KSB7Cisg
ICAgICAgIEluc3BlY3RvcldvcmtlclJlc291cmNlKiB3b3JrZXIgPSBpdC0+c2Vjb25kLmdldCgp
OworICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5kaWRDcmVhdGVXb3JrZXIod29ya2VyLT5pZCgp
LCB3b3JrZXItPnVybCgpLCB3b3JrZXItPmlzU2hhcmVkV29ya2VyKCkpOworICAgIH0KICNlbmRp
ZgogCi0gICAgbV9mcm9udGVuZC0+cG9wdWxhdGVTZXNzaW9uU2V0dGluZ3MobV9zZXNzaW9uU2V0
dGluZ3MtPnRvSlNPTlN0cmluZygpKTsKLSAgICBtX2Zyb250ZW5kLT5wb3B1bGF0ZUludGVyZmFj
ZSgpOworICAgIG1fcmVtb3RlRnJvbnRlbmQtPnBvcHVsYXRlU2Vzc2lvblNldHRpbmdzKG1fc2Vz
c2lvblNldHRpbmdzLT50b0pTT05TdHJpbmcoKSk7CisgICAgbV9yZW1vdGVGcm9udGVuZC0+cG9w
dWxhdGVJbnRlcmZhY2UoKTsKIAogICAgIC8vIERpc3BhdGNoIHBlbmRpbmcgZnJvbnRlbmQgY29t
bWFuZHMKICAgICBmb3IgKFZlY3RvcjxwYWlyPGxvbmcsIFN0cmluZz4gPjo6aXRlcmF0b3IgaXQg
PSBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5iZWdpbigpOyBpdCAhPSBtX3BlbmRpbmdF
dmFsdWF0ZVRlc3RDb21tYW5kcy5lbmQoKTsgKytpdCkKLSAgICAgICAgbV9mcm9udGVuZC0+ZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZCgoKml0KS5maXJzdCwgKCppdCkuc2Vjb25kKTsKKyAgICAg
ICAgbV9yZW1vdGVGcm9udGVuZC0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZCgoKml0KS5maXJz
dCwgKCppdCkuc2Vjb25kKTsKICAgICBtX3BlbmRpbmdFdmFsdWF0ZVRlc3RDb21tYW5kcy5jbGVh
cigpOwogfQogCkBAIC03MTQsOCArNzE2LDggQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgQVNTRVJUKG1faW5zcGVj
dGVkUGFnZSk7CiAKICAgICBpZiAobG9hZGVyLT5mcmFtZSgpID09IG1faW5zcGVjdGVkUGFnZS0+
bWFpbkZyYW1lKCkpIHsKLSAgICAgICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgICAgICBtX2Zy
b250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKGxvYWRlci0+dXJsKCkuc3RyaW5nKCkpOworICAg
ICAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkKKyAgICAgICAgICAgIG1fcmVtb3RlRnJvbnRlbmQt
Pmluc3BlY3RlZFVSTENoYW5nZWQobG9hZGVyLT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICAgICAg
bV9pbmplY3RlZFNjcmlwdEhvc3QtPmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKICAgICAgICAg
Y2xlYXJDb25zb2xlTWVzc2FnZXMoKTsKQEAgLTczMCw4ICs3MzIsOCBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAg
ICAgbV9wcm9maWxlcy5jbGVhcigpOwogICAgICAgICBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJv
ZmlsZU51bWJlciA9IDE7CiAgICAgICAgIG1fbmV4dFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVy
ID0gMTsKLSAgICAgICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgICAgICBtX2Zyb250ZW5kLT5y
ZXNldFByb2ZpbGVzUGFuZWwoKTsKKyAgICAgICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCisgICAg
ICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5yZXNldFByb2ZpbGVzUGFuZWwoKTsKICNlbmRpZgog
ICAgICAgICAvLyB1bmJpbmRBbGxSZXNvdXJjZXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgZGF0
YWJhc2UgYW5kIERPTSBzdG9yYWdlCiAgICAgICAgIC8vIHJlc291cmNlcyBhcmUgY2xlYXJlZCBz
byB0aGF0IGl0IGhhcyBhIGNoYW5jZSB0byB1bmJpbmQgdGhlbS4KQEAgLTczOSw4ICs3NDEsOCBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKIAogICAgICAgICBtX2Nzc1N0b3JlLT5yZXNldCgpOwogICAgICAgICBtX3Nlc3Np
b25TZXR0aW5ncyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGlmIChtX2Zy
b250ZW5kKSB7Ci0gICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXNldCgpOworICAgICAgICBpZiAo
bV9yZW1vdGVGcm9udGVuZCkgeworICAgICAgICAgICAgbV9yZW1vdGVGcm9udGVuZC0+cmVzZXQo
KTsKICAgICAgICAgICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7CiAgICAgICAgIH0KICNpZiBFTkFC
TEUoV09SS0VSUykKQEAgLTc1Myw3ICs3NTUsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgbV9kb21TdG9y
YWdlUmVzb3VyY2VzLmNsZWFyKCk7CiAjZW5kaWYKIAotICAgICAgICBpZiAobV9mcm9udGVuZCkg
eworICAgICAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkgewogICAgICAgICAgICAgaWYgKCFsb2Fk
ZXItPmZyYW1lTG9hZGVyKCktPmlzTG9hZGluZ0Zyb21DYWNoZWRQYWdlKCkpIHsKICAgICAgICAg
ICAgICAgICBBU1NFUlQobV9tYWluUmVzb3VyY2UgJiYgbV9tYWluUmVzb3VyY2UtPmlzU2FtZUxv
YWRlcihsb2FkZXIpKTsKICAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBhZGQgdGhlIG1haW4g
cmVzb3VyY2UgdW50aWwgaXRzIGxvYWQgaXMgY29tbWl0dGVkLiBUaGlzIGlzCkBAIC03NjcsNyAr
NzY5LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21taXRMb2FkKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgICAgICAgICAgLy8gaWRlbnRpZmllckZvckluaXRpYWxS
ZXF1ZXN0LgogICAgICAgICAgICAgICAgIG1fbWFpblJlc291cmNlID0gMDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPmRpZENvbW1pdExvYWQoKTsKKyAgICAgICAgICAg
IG1fcmVtb3RlRnJvbnRlbmQtPmRpZENvbW1pdExvYWQoKTsKICAgICAgICAgICAgIG1fZG9tQWdl
bnQtPnNldERvY3VtZW50KG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCkp
OwogICAgICAgICB9CiAgICAgfQpAQCAtMTEwMCw4ICsxMTAyLDggQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjplbmFibGVSZXNvdXJjZVRyYWNraW5nKGJvb2wgYWx3YXlzLCBib29sIHJlbG9h
ZCkKIAogICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwogICAgIG1fcmVzb3VyY2VUcmFja2lu
Z0VuYWJsZWQgPSB0cnVlOwotICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5k
LT5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCgpOworICAgIGlmIChtX3JlbW90ZUZyb250ZW5k
KQorICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCgp
OwogICAgIG1fY2xpZW50LT5yZXNvdXJjZVRyYWNraW5nV2FzRW5hYmxlZCgpOwogCiAgICAgaWYg
KHJlbG9hZCkKQEAgLTExMTgsOCArMTEyMCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzYWJsZVJlc291cmNlVHJhY2tpbmcoYm9vbCBhbHdheXMpCiAKICAgICBBU1NFUlQobV9pbnNw
ZWN0ZWRQYWdlKTsKICAgICBtX3Jlc291cmNlVHJhY2tpbmdFbmFibGVkID0gZmFsc2U7Ci0gICAg
aWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPnJlc291cmNlVHJhY2tpbmdXYXNE
aXNhYmxlZCgpOworICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQorICAgICAgICBtX3JlbW90ZUZy
b250ZW5kLT5yZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQoKTsKICAgICBtX2NsaWVudC0+cmVz
b3VyY2VUcmFja2luZ1dhc0Rpc2FibGVkKCk7CiB9CiAKQEAgLTExNDgsOCArMTE1MCw4IEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1lbGluZVByb2ZpbGVyKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV90aW1lbGluZUFnZW50ID0gbmV3IEluc3BlY3RvclRpbWVsaW5lQWdl
bnQobV9yZW1vdGVGcm9udGVuZC5nZXQoKSk7Ci0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAg
IG1fZnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7CisgICAgaWYgKG1fcmVt
b3RlRnJvbnRlbmQpCisgICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPnRpbWVsaW5lUHJvZmlsZXJX
YXNTdGFydGVkKCk7CiAgICAgbV9jbGllbnQtPnRpbWVsaW5lUHJvZmlsZXJXYXNTdGFydGVkKCk7
CiB9CiAKQEAgLTExNjIsOCArMTE2NCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3Rv
cFRpbWVsaW5lUHJvZmlsZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3RpbWVsaW5lQWdl
bnQgPSAwOwotICAgIGlmIChtX2Zyb250ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT50aW1lbGlu
ZVByb2ZpbGVyV2FzU3RvcHBlZCgpOworICAgIGlmIChtX3JlbW90ZUZyb250ZW5kKQorICAgICAg
ICBtX3JlbW90ZUZyb250ZW5kLT50aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogICAgIG1f
Y2xpZW50LT50aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogfQogCkBAIC0xMTk1LDE0ICsx
MTk3LDE0IEBAIHByaXZhdGU6CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cG9zdFdvcmtl
ck5vdGlmaWNhdGlvblRvRnJvbnRlbmQoY29uc3QgSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UmIHdv
cmtlciwgSW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VyQWN0aW9uIGFjdGlvbikKIHsKLSAgICBp
ZiAoIW1fZnJvbnRlbmQpCisgICAgaWYgKCFtX3JlbW90ZUZyb250ZW5kKQogICAgICAgICByZXR1
cm47CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xsZXI6
OldvcmtlckNyZWF0ZWQ6Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRpZENyZWF0ZVdvcmtlcih3b3Jr
ZXIpOworICAgICAgICBtX3JlbW90ZUZyb250ZW5kLT5kaWRDcmVhdGVXb3JrZXIod29ya2VyLmlk
KCksIHdvcmtlci51cmwoKSwgd29ya2VyLmlzU2hhcmVkV29ya2VyKCkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIEluc3BlY3RvckNvbnRyb2xsZXI6OldvcmtlckRlc3Ryb3llZDoKLSAgICAg
ICAgbV9mcm9udGVuZC0+ZGlkRGVzdHJveVdvcmtlcih3b3JrZXIpOworICAgICAgICBtX3JlbW90
ZUZyb250ZW5kLT5kaWREZXN0cm95V29ya2VyKHdvcmtlci5pZCgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQpAQCAtMTIxNCw3ICsxMjE2LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRDcmVhdGVXb3JrZXIoaW50cHRyX3QgaWQsIGNvbnN0IFN0cmluZyYgdXJsLCBib29sIGkK
IAogICAgIFJlZlB0cjxJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZT4gd29ya2VyUmVzb3VyY2UoSW5z
cGVjdG9yV29ya2VyUmVzb3VyY2U6OmNyZWF0ZShpZCwgdXJsLCBpc1NoYXJlZFdvcmtlcikpOwog
ICAgIG1fd29ya2Vycy5zZXQoaWQsIHdvcmtlclJlc291cmNlKTsKLSAgICBpZiAobV9pbnNwZWN0
ZWRQYWdlICYmIG1fZnJvbnRlbmQpCisgICAgaWYgKG1faW5zcGVjdGVkUGFnZSAmJiBtX3JlbW90
ZUZyb250ZW5kKQogICAgICAgICBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVu
dCgpLT5wb3N0VGFzayhQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s6OmNyZWF0
ZSh3b3JrZXJSZXNvdXJjZSwgSW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VyQ3JlYXRlZCkpOwog
fQogCkBAIC0xMjI2LDcgKzEyMjgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZERl
c3Ryb3lXb3JrZXIoaW50cHRyX3QgaWQpCiAgICAgV29ya2Vyc01hcDo6aXRlcmF0b3Igd29ya2Vy
UmVzb3VyY2UgPSBtX3dvcmtlcnMuZmluZChpZCk7CiAgICAgaWYgKHdvcmtlclJlc291cmNlID09
IG1fd29ya2Vycy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2luc3BlY3RlZFBh
Z2UgJiYgbV9mcm9udGVuZCkKKyAgICBpZiAobV9pbnNwZWN0ZWRQYWdlICYmIG1fcmVtb3RlRnJv
bnRlbmQpCiAgICAgICAgIG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCkt
PnBvc3RUYXNrKFBvc3RXb3JrZXJOb3RpZmljYXRpb25Ub0Zyb250ZW5kVGFzazo6Y3JlYXRlKHdv
cmtlclJlc291cmNlLT5zZWNvbmQsIEluc3BlY3RvckNvbnRyb2xsZXI6OldvcmtlckRlc3Ryb3ll
ZCkpOwogICAgIG1fd29ya2Vycy5yZW1vdmUod29ya2VyUmVzb3VyY2UpOwogfQpAQCAtMTU3NCw5
ICsxNTc2LDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVXNlckluaXRpYXRlZFBy
b2ZpbGluZygpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6dG9nZ2xlUmVjb3JkQnV0dG9u
KGJvb2wgaXNQcm9maWxpbmcpCiB7Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQorICAgIGlmICghbV9y
ZW1vdGVGcm9udGVuZCkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJvbnRlbmQtPnNldFJlY29y
ZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOworICAgIG1fcmVtb3RlRnJvbnRlbmQtPnNldFJlY29y
ZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmVuYWJsZVByb2ZpbGVyKGJvb2wgYWx3YXlzLCBib29sIHNraXBSZWNvbXBpbGUpCkBAIC0xNTky
LDggKzE1OTQsOCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZVByb2ZpbGVyKGJv
b2wgYWx3YXlzLCBib29sIHNraXBSZWNvbXBpbGUpCiAgICAgaWYgKCFza2lwUmVjb21waWxlKQog
ICAgICAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucmVjb21waWxlQWxsSlNGdW5jdGlv
bnNTb29uKCk7CiAKLSAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+cHJv
ZmlsZXJXYXNFbmFibGVkKCk7CisgICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCisgICAgICAgIG1f
cmVtb3RlRnJvbnRlbmQtPnByb2ZpbGVyV2FzRW5hYmxlZCgpOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpc2FibGVQcm9maWxlcihib29sIGFsd2F5cykKQEAgLTE2MDgsOCArMTYx
MCw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJsZVByb2ZpbGVyKGJvb2wgYWx3
YXlzKQogCiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zU29vbigpOwogCi0gICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRlbmQt
PnByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKKyAgICBpZiAobV9yZW1vdGVGcm9udGVuZCkKKyAgICAg
ICAgbV9yZW1vdGVGcm9udGVuZC0+cHJvZmlsZXJXYXNEaXNhYmxlZCgpOwogfQogI2VuZGlmCiAK
QEAgLTE2MjQsNyArMTYyNiw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlRGVi
dWdnZXJGcm9tRnJvbnRlbmQoYm9vbCBhbHdheXMpCiAKICAgICBtX2RlYnVnZ2VyQWdlbnQgPSBJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpjcmVhdGUodGhpcyk7CiAKLSAgICBtX2Zyb250ZW5kLT5k
ZWJ1Z2dlcldhc0VuYWJsZWQoKTsKKyAgICBtX3JlbW90ZUZyb250ZW5kLT5kZWJ1Z2dlcldhc0Vu
YWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVEZWJ1Z2dlcigp
CkBAIC0xNjM1LDEwICsxNjM3LDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxl
RGVidWdnZXIoKQogICAgIGlmIChkZWJ1Z2dlckVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQorICAgIGlmICghbV9yZW1vdGVGcm9udGVuZCkKICAgICAg
ICAgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAg
IG1fZnJvbnRlbmQtPmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIG1fcmVtb3Rl
RnJvbnRlbmQtPmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CiAgICAgICAgIG1fYXR0YWNoRGVi
dWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xNjU3LDggKzE2NTksOCBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVEZWJ1Z2dlcihib29sIGFsd2F5cykKIAog
ICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKIAotICAgIGlmIChtX2Zyb250
ZW5kKQotICAgICAgICBtX2Zyb250ZW5kLT5kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CisgICAgaWYg
KG1fcmVtb3RlRnJvbnRlbmQpCisgICAgICAgIG1fcmVtb3RlRnJvbnRlbmQtPmRlYnVnZ2VyV2Fz
RGlzYWJsZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN1bWUoKQpAQCAt
MTY2NiwxMiArMTY2OCwxNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3VtZSgpCiAg
ICAgaWYgKG1fZGVidWdnZXJBZ2VudCkKICAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5yZXN1bWUo
KTsKIH0KKy8vIEphdmFTY3JpcHREZWJ1Z0xpc3RlbmVyIGZ1bmN0aW9ucworCiAjZW5kaWYKIAog
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGxvbmcg
Y2FsbElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKIHsKLSAgICBpZiAobV9mcm9udGVuZCkKLSAg
ICAgICAgbV9mcm9udGVuZC0+ZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjYWxsSWQsIHNjcmlw
dCk7CisgICAgaWYgKG1fcmVtb3RlRnJvbnRlbmQpCisgICAgICAgIG1fcmVtb3RlRnJvbnRlbmQt
PmV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwogICAgIGVsc2UKICAg
ICAgICAgbV9wZW5kaW5nRXZhbHVhdGVUZXN0Q29tbWFuZHMuYXBwZW5kKHBhaXI8bG9uZywgU3Ry
aW5nPihjYWxsSWQsIHNjcmlwdCkpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuY3BwCmluZGV4IDdmMjE0NDAuLmJjMTA1ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZC5jcHAKQEAgLTU3LDQxICs1Nyw2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6
OmNsb3NlKCkKICAgICBmdW5jdGlvbi5jYWxsKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBm
dW5jdGlvbihtX3dlYkluc3BlY3RvciwgImluc3BlY3RlZFBhZ2VEZXN0cm95ZWQiKTsKLSAgICBm
dW5jdGlvbi5jYWxsKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZENvbW1pdExv
YWQoKQotewotICAgIGNhbGxTaW1wbGVGdW5jdGlvbigiZGlkQ29tbWl0TG9hZCIpOwotfQotCi12
b2lkIEluc3BlY3RvckZyb250ZW5kOjpwb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3MoY29uc3Qg
U3RyaW5nJiBzZXR0aW5ncykKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93
ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJw
b3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3MiKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVu
dChzZXR0aW5ncyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIEluc3BlY3RvckZy
b250ZW5kOjpwb3B1bGF0ZVNlc3Npb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmIHNldHRpbmdzKQot
ewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3Bh
dGNoIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInBvcHVsYXRlU2Vzc2lvblNldHRp
bmdzIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc2V0dGluZ3MpOwotICAgIGZ1bmN0
aW9uLmNhbGwoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dXBkYXRlRm9jdXNlZE5v
ZGUobG9uZyBub2RlSWQpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2Vi
SW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVw
ZGF0ZUZvY3VzZWROb2RlIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQobm9kZUlkKTsK
LSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnNob3dQ
YW5lbChpbnQgcGFuZWwpCiB7CiAgICAgY29uc3QgY2hhciogc2hvd0Z1bmN0aW9uTmFtZTsKQEAg
LTEyOSwxNjggKzk0LDYgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6c2hvd1BhbmVsKGludCBw
YW5lbCkKICAgICAgICAgY2FsbFNpbXBsZUZ1bmN0aW9uKHNob3dGdW5jdGlvbk5hbWUpOwogfQog
Ci12b2lkIEluc3BlY3RvckZyb250ZW5kOjpwb3B1bGF0ZUludGVyZmFjZSgpCi17Ci0gICAgY2Fs
bFNpbXBsZUZ1bmN0aW9uKCJwb3B1bGF0ZUludGVyZmFjZSIpOwotfQotCi12b2lkIEluc3BlY3Rv
ckZyb250ZW5kOjpyZXNldCgpCi17Ci0gICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJyZXNldCIpOwot
fQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kOjpyZXNldFByb2ZpbGVzUGFuZWwoKQotewotICAg
IGNhbGxTaW1wbGVGdW5jdGlvbigicmVzZXRQcm9maWxlc1BhbmVsIik7Ci19Ci0KLXZvaWQgSW5z
cGVjdG9yRnJvbnRlbmQ6OmJyaW5nVG9Gcm9udCgpCi17Ci0gICAgY2FsbFNpbXBsZUZ1bmN0aW9u
KCJicmluZ1RvRnJvbnQiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6aW5zcGVjdGVk
VVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIHVybCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwg
ZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOwotICAgIGZ1bmN0aW9uLmFwcGVu
ZEFyZ3VtZW50KCJpbnNwZWN0ZWRVUkxDaGFuZ2VkIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQodXJsKTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJv
bnRlbmQ6OnJlc291cmNlVHJhY2tpbmdXYXNFbmFibGVkKCkKLXsKLSAgICBjYWxsU2ltcGxlRnVu
Y3Rpb24oInJlc291cmNlVHJhY2tpbmdXYXNFbmFibGVkIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OnJlc291cmNlVHJhY2tpbmdXYXNEaXNhYmxlZCgpCi17Ci0gICAgY2FsbFNpbXBs
ZUZ1bmN0aW9uKCJyZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQiKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6c2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQoKQotewotICAgIGNhbGxT
aW1wbGVGdW5jdGlvbigic2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQiKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZDo6c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCkKLXsKLSAgICBj
YWxsU2ltcGxlRnVuY3Rpb24oInNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCIpOwotfQotCi12
b2lkIEluc3BlY3RvckZyb250ZW5kOjptb25pdG9yaW5nWEhSV2FzRW5hYmxlZCgpCi17Ci0gICAg
Y2FsbFNpbXBsZUZ1bmN0aW9uKCJtb25pdG9yaW5nWEhSV2FzRW5hYmxlZCIpOwotfQotCi12b2lk
IEluc3BlY3RvckZyb250ZW5kOjptb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQoKQotewotICAgIGNh
bGxTaW1wbGVGdW5jdGlvbigibW9uaXRvcmluZ1hIUldhc0Rpc2FibGVkIik7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yRnJvbnRlbmQ6OnVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUobG9uZyBzdGF0
ZSkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJk
aXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgidXBkYXRlUGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHN0YXRlKTsKLSAg
ICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnRpbWVsaW5l
UHJvZmlsZXJXYXNTdGFydGVkKCkKLXsKLSAgICBjYWxsU2ltcGxlRnVuY3Rpb24oInRpbWVsaW5l
UHJvZmlsZXJXYXNTdGFydGVkIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnRpbWVs
aW5lUHJvZmlsZXJXYXNTdG9wcGVkKCkKLXsKLSAgICBjYWxsU2ltcGxlRnVuY3Rpb24oInRpbWVs
aW5lUHJvZmlsZXJXYXNTdG9wcGVkIik7Ci19Ci0KLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCkK
LXsKLSAgICBjYWxsU2ltcGxlRnVuY3Rpb24oImF0dGFjaERlYnVnZ2VyV2hlblNob3duIik7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRlYnVnZ2VyV2FzRW5hYmxlZCgpCi17Ci0gICAg
Y2FsbFNpbXBsZUZ1bmN0aW9uKCJkZWJ1Z2dlcldhc0VuYWJsZWQiKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6ZGVidWdnZXJXYXNEaXNhYmxlZCgpCi17Ci0gICAgY2FsbFNpbXBsZUZ1
bmN0aW9uKCJkZWJ1Z2dlcldhc0Rpc2FibGVkIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmQ6OnByb2ZpbGVyV2FzRW5hYmxlZCgpCi17Ci0gICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJwcm9m
aWxlcldhc0VuYWJsZWQiKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6cHJvZmlsZXJX
YXNEaXNhYmxlZCgpCi17Ci0gICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJwcm9maWxlcldhc0Rpc2Fi
bGVkIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnNldFJlY29yZGluZ1Byb2ZpbGUo
Ym9vbCBpc1Byb2ZpbGluZykKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93
ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgi
c2V0UmVjb3JkaW5nUHJvZmlsZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlzUHJv
ZmlsaW5nKTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0jZW5kaWYKLQotdm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6ZGlkUHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGxvbmcgY2FsbElkLCBsb25n
IG5vZGVJZCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0
b3IsICJkaXNwYXRjaCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgiZGlkUHVzaE5v
ZGVCeVBhdGhUb0Zyb250ZW5kIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElk
KTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChub2RlSWQpOwotICAgIGZ1bmN0aW9uLmNh
bGwoKTsKLX0KLQotI2lmIEVOQUJMRShXT1JLRVJTKQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6
ZGlkQ3JlYXRlV29ya2VyKGNvbnN0IEluc3BlY3RvcldvcmtlclJlc291cmNlJiB3b3JrZXIpCi17
Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0
Y2giKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgiZGlkQ3JlYXRlV29ya2VyIik7Ci0g
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQod29ya2VyLmlkKCkpOwotICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KHdvcmtlci51cmwoKSk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQo
d29ya2VyLmlzU2hhcmVkV29ya2VyKCkpOwotICAgIGZ1bmN0aW9uLmNhbGwoKTsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZDo6ZGlkRGVzdHJveVdvcmtlcihjb25zdCBJbnNwZWN0b3JXb3Jr
ZXJSZXNvdXJjZSYgd29ya2VyKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbiht
X3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IAotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KCJkaWREZXN0cm95V29ya2VyIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQod29ya2Vy
LmlkKCkpOwotICAgIGZ1bmN0aW9uLmNhbGwoKTsKLX0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VS
UykKLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoaW50
IGl0ZW1JZCkKLXsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0
b3IsICJkaXNwYXRjaCIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZCIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGl0ZW1JZCk7Ci0g
ICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kOjpjb250ZXh0
TWVudUNsZWFyZWQoKQotewotICAgIGNhbGxTaW1wbGVGdW5jdGlvbigiY29udGV4dE1lbnVDbGVh
cmVkIik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmV2YWx1YXRlRm9yVGVzdEluRnJv
bnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQotewotICAgIFNjcmlwdEZ1
bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IAotICAgIGZ1
bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kIik7Ci0gICAg
ZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbElkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1
bWVudChzY3JpcHQpOwotICAgIGZ1bmN0aW9uLmNhbGwoKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JG
cm9udGVuZDo6Y2FsbFNpbXBsZUZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKQog
ewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3Bh
dGNoIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA2ZTA2MjBhLi4y
MTU3OTZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5o
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTQ3LDYwICs0
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfkluc3BlY3RvckZyb250ZW5kKCk7
CiAKICAgICAgICAgdm9pZCBjbG9zZSgpOwotICAgICAgICB2b2lkIGluc3BlY3RlZFBhZ2VEZXN0
cm95ZWQoKTsKLQotICAgICAgICB2b2lkIGRpZENvbW1pdExvYWQoKTsKLQotICAgICAgICB2b2lk
IHBvcHVsYXRlQXBwbGljYXRpb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmIHNldHRpbmdzKTsKLSAg
ICAgICAgdm9pZCBwb3B1bGF0ZVNlc3Npb25TZXR0aW5ncyhjb25zdCBTdHJpbmcmIHNldHRpbmdz
KTsKLQotICAgICAgICB2b2lkIHVwZGF0ZUZvY3VzZWROb2RlKGxvbmcgbm9kZUlkKTsKICAgICAg
ICAgdm9pZCBzaG93UGFuZWwoaW50IHBhbmVsKTsKLSAgICAgICAgdm9pZCBwb3B1bGF0ZUludGVy
ZmFjZSgpOwotICAgICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgICAgIHZvaWQgcmVzZXRQcm9maWxl
c1BhbmVsKCk7Ci0KLSAgICAgICAgdm9pZCBicmluZ1RvRnJvbnQoKTsKLSAgICAgICAgdm9pZCBp
bnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwotCi0gICAgICAgIHZvaWQgcmVzb3Vy
Y2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKLSAgICAgICAgdm9pZCByZXNvdXJjZVRyYWNraW5nV2Fz
RGlzYWJsZWQoKTsKLQotICAgICAgICB2b2lkIHNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7
Ci0gICAgICAgIHZvaWQgc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7Ci0KLSAgICAgICAg
dm9pZCBtb25pdG9yaW5nWEhSV2FzRW5hYmxlZCgpOwotICAgICAgICB2b2lkIG1vbml0b3JpbmdY
SFJXYXNEaXNhYmxlZCgpOwotCi0gICAgICAgIHZvaWQgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZShsb25nIHN0YXRlKTsKLQotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAg
ICAgICB2b2lkIGF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7Ci0gICAgICAgIHZvaWQgZGVidWdn
ZXJXYXNFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwotCi0g
ICAgICAgIHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgcHJvZmlsZXJX
YXNEaXNhYmxlZCgpOwotICAgICAgICB2b2lkIHNldFJlY29yZGluZ1Byb2ZpbGUoYm9vbCBpc1By
b2ZpbGluZyk7Ci0jZW5kaWYKLQotICAgICAgICB2b2lkIGRpZFB1c2hOb2RlQnlQYXRoVG9Gcm9u
dGVuZChsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwotCi0gICAgICAgIHZvaWQgdGltZWxpbmVQ
cm9maWxlcldhc1N0YXJ0ZWQoKTsKLSAgICAgICAgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3Rv
cHBlZCgpOwotCi0jaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgICAgIHZvaWQgZGlkQ3JlYXRlV29y
a2VyKGNvbnN0IEluc3BlY3RvcldvcmtlclJlc291cmNlJik7Ci0gICAgICAgIHZvaWQgZGlkRGVz
dHJveVdvcmtlcihjb25zdCBJbnNwZWN0b3JXb3JrZXJSZXNvdXJjZSYpOwotI2VuZGlmIC8vIEVO
QUJMRShXT1JLRVIpCi0KLSAgICAgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChpbnQg
aXRlbUlkKTsKLSAgICAgICAgdm9pZCBjb250ZXh0TWVudUNsZWFyZWQoKTsKLQogICAgICAgICBT
Y3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3dlYkluc3BlY3Rvci5z
Y3JpcHRTdGF0ZSgpOyB9Ci0KLSAgICAgICAgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5k
KGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCk7Ci0KICAgICBwcml2YXRlOgogICAg
ICAgICB2b2lkIGNhbGxTaW1wbGVGdW5jdGlvbihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSk7
CiAgICAgICAgIFNjcmlwdE9iamVjdCBtX3dlYkluc3BlY3RvcjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXggZjZmNzgxMS4u
YmFhOWM4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kSG9zdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAKaW5kZXggODc2MjJjZS4uYWQ5ZmRlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9U
aW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIAogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCg==
</data>
<flag name="review"
          id="52266"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>