<?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>131317</bug_id>
          
          <creation_ts>2014-04-07 15:42:30 -0700</creation_ts>
          <short_desc>Add API::InjectedBundle::FormClient</short_desc>
          <delta_ts>2014-04-07 17:42:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998259</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-04-07 15:42:30 -0700</bug_when>
    <thetext>Add API::InjectedBundle::FormClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998261</commentid>
    <comment_count>1</comment_count>
      <attachid>228764</attachid>
    <who name="">mitz</who>
    <bug_when>2014-04-07 15:50:24 -0700</bug_when>
    <thetext>Created attachment 228764
Add and deploy new client interface class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998330</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-04-07 17:42:16 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r166890&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228764</attachid>
            <date>2014-04-07 15:50:24 -0700</date>
            <delta_ts>2014-04-07 15:59:53 -0700</delta_ts>
            <desc>Add and deploy new client interface class</desc>
            <filename>bug-131317-20140407155000.patch</filename>
            <type>text/plain</type>
            <size>32284</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Njg4OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYxIEBACisyMDE0LTA0LTA3ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSTo6SW5qZWN0ZWRCdW5k
bGU6OkZvcm1DbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMTMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCByZWZlcmVu
Y2UgdG8gbmV3IGZpbGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTZXRGb3JtQ2xpZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZUZvcm1DbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAg
ICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgX3NldEZvcm1E
ZWxlZ2F0ZTpdKTogQ2hhbmdlZCB0byBkZWZpbmUgYW5kCisgICAgICAgIGNyZWF0ZSBhIEZvcm1D
bGllbnQgKHdoaWNoIGRlcml2ZXMgZnJvbSBBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50
IGFuZCBtZXNzYWdlcyBhCisgICAgICAgIGRlbGVnYXRlKSwgYW5kIHNldCBpdCBhcyB0aGUgZm9y
bSBjbGllbnQuCisgICAgICAgIChkaWRGb2N1c1RleHRGaWVsZCk6IERlbGV0ZWQuCisgICAgICAg
ICh3aWxsU3VibWl0Rm9ybSk6IERlbGV0ZWQuCisgICAgICAgIChzZXRVcEZvcm1DbGllbnQpOiBE
ZWxldGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmplY3Rl
ZEJ1bmRsZUZvcm1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxl
OjpGb3JtQ2xpZW50Ojp+Rm9ybUNsaWVudCk6CisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxl
OjpGb3JtQ2xpZW50OjpkaWRGb2N1c1RleHRGaWVsZCk6CisgICAgICAgIChBUEk6OkluamVjdGVk
QnVuZGxlOjpGb3JtQ2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcpOgorICAgICAgICAo
QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6
CisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdl
SW5UZXh0RmllbGQpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6
dGV4dERpZENoYW5nZUluVGV4dEFyZWEpOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6
Rm9ybUNsaWVudDo6c2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKToKKyAgICAgICAgKEFQ
STo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKToKKyAgICAgICAg
KEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQpOgor
ICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6ZGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzKToKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OnNo
b3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudCk6IEFkZGVkIGEgY29uc3RydWN0b3IKKyAgICAgICAgZnJvbSBXS0J1bmRsZVBhZ2VGb3Jt
Q2xpZW50QmFzZS4KKyAgICAgICAgKFdlYktpdDo6dG9XS0lucHV0RmllbGRBY3Rpb25UeXBlKTog
QWRkZWQgaGVscGVyIHRvIGNvbnZlcnQgZnJvbSBpbnRlcm5hbCBlbnVtIHRvIEMgU1BJCisgICAg
ICAgIGVudW0uCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6
OnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZCk6IFVzZSBoZWxwZXIuCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg6
IEFkZGVkIGluaGVyaXRhbmNlIGZyb20KKyAgICAgICAgQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9y
bUNsaWVudCwgbWFya2VkIG92ZXJyaWRlcyBhcyBzdWNoLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOiBSZW1vdmVkIHVu
dXNlZCBmb3J3YXJkCisgICAgICAgIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
dG9JbnB1dEZpZWxkQWN0aW9uKTogQWRkZWQgaGVscGVyIHRvIGNvbnZlcnQgZnJvbSBDIFNQSSBl
bnVtIHRvIGludGVybmFsIGVudW0uCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6
ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KTogVXNlIGhlbHBlci4KKyAgICAgICAgKFdlYktp
dDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKTogRGl0dG8u
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOiBJbml0aWFsaXplIG1fZm9ybUNsaWVudCBtZW1iZXIu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEluamVjdGVkQnVuZGxlRm9ybUNsaWVudCk6
IEFkZGVkLiBVcGRhdGVzIG1fZm9ybUNsaWVudC4gCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNsb3NlKTogVXBkYXRlZCBjb2RlIHRvIGNsZWFyIG1fZm9ybUNsaWVudC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRm9ybUNsaWVudCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KTogVXBkYXRlZCByZXR1cm4g
dHlwZS4KKwogMjAxNC0wNC0wNyAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgZm9yIG9wZW5nbCwgdGV4
bWFwLCB0cmFuc2Zvcm1zIGFuZCBlZmwgaW4gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDE2Njg4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjY1LDYgKzY2NSw3IEBACiAJCTM3
NjZGOUYwMTg5QTEyNDgwMDNDRjE5QiAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFDNzlBMTAwRTdGQzUwMDc4
REVCQyAvKiBXZWJDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJMzc2NkY5RjExODlBMTI1NDAwM0NG
MTlCIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzg3REZBOTEwMTgxMDE0MDA1NjQyMTYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLzsgfTsKIAkJMzc2OTA3OUExOEYzMUNCMjAwMURGRjA0IC8qIEFQSUluamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzNzY5MDc5ODE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCAqLzsgfTsKKwkJMzc2OTA3OUUxOEYzNDBBMjAwMURGRjA0IC8qIEFQSUluamVj
dGVkQnVuZGxlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzc2OTA3OUMxOEYzNDBBMjAwMURGRjA0IC8qIEFQSUluamVjdGVkQnVuZGxl
Rm9ybUNsaWVudC5oICovOyB9OwogCQkzNzY5NDUyNTE4NEZDNkI2MDBDREUyMUYgLyogU2VjdXJp
dHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLzsg
fTsKIAkJMzc3RUFENDUxN0UyQzUxQTAwMkQxOTNEIC8qIFdLRGVjbGFyYXRpb25TcGVjaWZpZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzdFQUQ0
NDE3RTJDNTFBMDAyRDE5M0QgLyogV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTM3N0VBRDQ4MTdFMkM3N0Iw
MDJEMTkzRCAvKiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3N0VBRDQ2MTdFMkM3N0IwMDJEMTkzRCAv
KiBXS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQ4NCw2ICsyNDg1LDcgQEAKIAkJMzc2MDg4MjAx
NTA0MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLUmVuZGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzc2MDg4MjExNTA0MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmVuZGVyT2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3NjkwNzk4MThGMzFDQjIwMDFERkYwNCAvKiBBUElJ
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBBUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOyBwYXRoID0gQVBJL0FQSUluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM3
NjkwNzlDMThGMzQwQTIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3N0VBRDQ0MTdFMkM1MUEwMDJE
MTkzRCAvKiBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzdFQUQ0NjE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzdFQUQ0
NzE3RTJDNzdCMDAyRDE5M0QgLyogV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzYyLDYgKzU3NjQsNyBAQAogCQkJCUJDMjA0
RUU3MTFDODNFQUQwMDhGMzM3NSAvKiBBUEkgKi8sCiAJCQkJQkM0QkVFOTYxMjBBMDkxNzAwRkJB
MEM3IC8qIERPTSAqLywKIAkJCQlCQzIwNEVFNDExQzgzRTlDMDA4RjMzNzUgLyogbWFjICovLAor
CQkJCTM3NjkwNzlDMThGMzQwQTIwMDFERkYwNCAvKiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGll
bnQuaCAqLywKIAkJCQkzNzY5MDc5ODE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaCAqLywKIAkJCQlCQzIwNEVFMDExQzgzRTk4MDA4RjMzNzUgLyogSW5q
ZWN0ZWRCdW5kbGUuY3BwICovLAogCQkJCUJDMjA0RUUxMTFDODNFOTgwMDhGMzM3NSAvKiBJbmpl
Y3RlZEJ1bmRsZS5oICovLApAQCAtNzI2MCw2ICs3MjYzLDcgQEAKIAkJCQlCQ0I5RjZBNTExMjNE
RDBEMDBBMTM3RTAgLyogV0tGcmFtZVBvbGljeUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMUFFQTIyRjE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRENBODVDOTEzMkFCQTRFMDBFOTYxREYgLyogV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzc2OTA3OUUxOEYz
NDBBMjAwMURGRjA0IC8qIEFQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFCOEExRjYxODQwMEI5RDAwRTlBRTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU0Q0MxMjEyRDY3NEVFMDA1QzY3QjAgLyogV0tH
ZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDRFMTJEQkRGM0Yw
MDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICov
LApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJbmpl
Y3RlZEJ1bmRsZUZvcm1DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSUluamVjdGVkQnVuZGxlRm9ybUNsaWVudC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUElJ
bmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnRfaAorI2Rl
ZmluZSBBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CitjbGFzcyBIVE1MSW5wdXRFbGVt
ZW50OworY2xhc3MgSFRNTFRleHRBcmVhRWxlbWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CitjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYlBhZ2U7Cit9CisKK25hbWVzcGFjZSBBUEkgewor
CitjbGFzcyBPYmplY3Q7CisKK25hbWVzcGFjZSBJbmplY3RlZEJ1bmRsZSB7CisKK2NsYXNzIEZv
cm1DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkZvcm1DbGllbnQoKSB7IH0KKworICAg
IHZpcnR1YWwgdm9pZCBkaWRGb2N1c1RleHRGaWVsZChXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50KiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudCosIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50KiwgV2ViS2l0OjpXZWJGcmFtZSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0
ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudCosIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4
dERpZENoYW5nZUluVGV4dEFyZWEoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTFRleHRB
cmVhRWxlbWVudCosIFdlYktpdDo6V2ViRnJhbWUqKSB7IH0KKworICAgIGVudW0gY2xhc3MgSW5w
dXRGaWVsZEFjdGlvbiB7CisgICAgICAgIE1vdmVVcCwKKyAgICAgICAgTW92ZURvd24sCisgICAg
ICAgIENhbmNlbCwKKyAgICAgICAgSW5zZXJ0VGFiLAorICAgICAgICBJbnNlcnRCYWNrdGFiLAor
ICAgICAgICBJbnNlcnROZXdsaW5lLAorICAgICAgICBJbnNlcnREZWxldGUsCisgICAgfTsKKwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViS2l0OjpX
ZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCosIElucHV0RmllbGRBY3Rpb24sIFdl
YktpdDo6V2ViRnJhbWUqKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U3VibWl0Rm9ybShXZWJLaXQ6OldlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBX
ZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPj4mLCBSZWZQdHI8QVBJOjpP
YmplY3Q+JiB1c2VyRGF0YSkgeyBVTlVTRURfUEFSQU0odXNlckRhdGEpOyB9CisgICAgdmlydHVh
bCB2b2lkIHdpbGxTZW5kU3VibWl0RXZlbnQoV2ViS2l0OjpXZWJQYWdlKiwgV2ViQ29yZTo6SFRN
TEZvcm1FbGVtZW50KiwgV2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6V2ViRnJhbWUqIHNvdXJj
ZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdURjo6U3RyaW5nLCBXVEY6OlN0cmluZz4+
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJLaXQ6
OldlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYpIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKFdlYktpdDo6V2ViUGFn
ZSopIHsgcmV0dXJuIGZhbHNlOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBJbmplY3RlZEJ1bmRs
ZQorCit9IC8vIG5hbWVzcGFjZSBBUEkKKworI2VuZGlmIC8vIEFQSUluamVjdGVkQnVuZGxlRm9y
bUNsaWVudF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5jcHAJKHJldmlzaW9uIDE2Njg4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDYgKzM5LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAorSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6SW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudChjb25zdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZSogY2xp
ZW50KQoreworICAgIGluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50OjpkaWRGb2N1c1RleHRGaWVsZChXZWJQYWdlKiBwYWdlLCBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoIW1f
Y2xpZW50LmRpZEZvY3VzVGV4dEZpZWxkKQpAQCAtODQsMTMgKzg5LDM2IEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEQKICAgICBtX2NsaWVudC50ZXh0RGlkQ2hhbmdl
SW5UZXh0QXJlYSh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZy
YW1lKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAotYm9vbCBJbmplY3RlZEJ1bmRs
ZVBhZ2VGb3JtQ2xpZW50OjpzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViUGFnZSog
cGFnZSwgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50LCBXS0lucHV0RmllbGRBY3Rpb25U
eXBlIGFjdGlvblR5cGUsIFdlYkZyYW1lKiBmcmFtZSkKK3N0YXRpYyBXS0lucHV0RmllbGRBY3Rp
b25UeXBlIHRvV0tJbnB1dEZpZWxkQWN0aW9uVHlwZShBUEk6OkluamVjdGVkQnVuZGxlOjpGb3Jt
Q2xpZW50OjpJbnB1dEZpZWxkQWN0aW9uIGFjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGFjdGlvbikg
eworICAgIGNhc2UgQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6SW5wdXRGaWVsZEFj
dGlvbjo6TW92ZVVwOgorICAgICAgICByZXR1cm4gV0tJbnB1dEZpZWxkQWN0aW9uVHlwZU1vdmVV
cDsKKyAgICBjYXNlIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OklucHV0RmllbGRB
Y3Rpb246Ok1vdmVEb3duOgorICAgICAgICByZXR1cm4gV0tJbnB1dEZpZWxkQWN0aW9uVHlwZU1v
dmVEb3duOworICAgIGNhc2UgQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6SW5wdXRG
aWVsZEFjdGlvbjo6Q2FuY2VsOgorICAgICAgICByZXR1cm4gV0tJbnB1dEZpZWxkQWN0aW9uVHlw
ZUNhbmNlbDsKKyAgICBjYXNlIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OklucHV0
RmllbGRBY3Rpb246Okluc2VydFRhYjoKKyAgICAgICAgcmV0dXJuIFdLSW5wdXRGaWVsZEFjdGlv
blR5cGVJbnNlcnRUYWI7CisgICAgY2FzZSBBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50
OjpJbnB1dEZpZWxkQWN0aW9uOjpJbnNlcnRCYWNrdGFiOgorICAgICAgICByZXR1cm4gV0tJbnB1
dEZpZWxkQWN0aW9uVHlwZUluc2VydEJhY2t0YWI7CisgICAgY2FzZSBBUEk6OkluamVjdGVkQnVu
ZGxlOjpGb3JtQ2xpZW50OjpJbnB1dEZpZWxkQWN0aW9uOjpJbnNlcnROZXdsaW5lOgorICAgICAg
ICByZXR1cm4gV0tJbnB1dEZpZWxkQWN0aW9uVHlwZUluc2VydE5ld2xpbmU7CisgICAgY2FzZSBB
UEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50OjpJbnB1dEZpZWxkQWN0aW9uOjpJbnNlcnRE
ZWxldGU6CisgICAgICAgIHJldHVybiBXS0lucHV0RmllbGRBY3Rpb25UeXBlSW5zZXJ0RGVsZXRl
OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXS0lucHV0
RmllbGRBY3Rpb25UeXBlQ2FuY2VsOworfQorCitib29sIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChXZWJQYWdlKiBwYWdlLCBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGll
bnQ6OklucHV0RmllbGRBY3Rpb24gYWN0aW9uVHlwZSwgV2ViRnJhbWUqIGZyYW1lKQogewogICAg
IGlmICghbV9jbGllbnQuc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2Rl
SGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShpbnB1dEVsZW1l
bnQpOwotICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQo
dG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCBhY3Rpb25UeXBlLCB0b0FQSShm
cmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIG1fY2xpZW50LnNo
b3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZCh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRs
ZS5nZXQoKSksIHRvV0tJbnB1dEZpZWxkQWN0aW9uVHlwZShhY3Rpb25UeXBlKSwgdG9BUEkoZnJh
bWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFnZSwgSFRNTEZv
cm1FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lLCBXZWJGcmFtZSogc291cmNl
RnJhbWUsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdmFsdWVzKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VGb3JtQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgJKHJldmlz
aW9uIDE2Njg4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw0NCAr
MjcsMzIgQEAKICNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudF9oCiAKICNpbmNs
dWRlICJBUElDbGllbnQuaCIKLSNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKLSNpbmNsdWRlIDxh
bGdvcml0aG0+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSAiQVBJSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50LmgiCisjaW5jbHVkZSAi
V0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oIgogCiBuYW1lc3BhY2UgQVBJIHsKLWNsYXNzIE9iamVj
dDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUZvcm1DbGll
bnRCYXNlPiB7CiAgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZUZvcm1DbGllbnRW
MCwgV0tCdW5kbGVQYWdlRm9ybUNsaWVudFYxLCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50VjI+IFZl
cnNpb25zOwogfTsKIH0KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgRWxlbWVudDsKLWNs
YXNzIEhUTUxGb3JtRWxlbWVudDsKLWNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7Ci1jbGFzcyBIVE1M
VGV4dEFyZWFFbGVtZW50OwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgSW1tdXRh
YmxlRGljdGlvbmFyeTsKLWNsYXNzIFdlYkZyYW1lOwotY2xhc3MgV2ViUGFnZTsKLQotY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRs
ZVBhZ2VGb3JtQ2xpZW50QmFzZT4geworY2xhc3MgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVu
dCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZT4sIHB1Ymxp
YyBBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2b2lkIGRp
ZEZvY3VzVGV4dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV2Vi
RnJhbWUqKTsKLSAgICB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJQYWdlKiwgV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudCosIFdlYkZyYW1lKik7Ci0gICAgdm9pZCB0ZXh0RmllbGRE
aWRFbmRFZGl0aW5nKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV2ViRnJh
bWUqKTsKLSAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJQYWdlKiwgV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudCosIFdlYkZyYW1lKik7Ci0gICAgdm9pZCB0ZXh0RGlkQ2hhbmdl
SW5UZXh0QXJlYShXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudCosIFdlYkZy
YW1lKik7Ci0gICAgYm9vbCBzaG91bGRQZXJmb3JtQWN0aW9uSW5UZXh0RmllbGQoV2ViUGFnZSos
IFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqLCBXS0lucHV0RmllbGRBY3Rpb25UeXBlLCBXZWJG
cmFtZSopOyAgICAKLSAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqLCBXZWJDb3JlOjpI
VE1MRm9ybUVsZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3Qg
VmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYg
dXNlckRhdGEpOwotICAgIHZvaWQgd2lsbFNlbmRTdWJtaXRFdmVudChXZWJQYWdlKiwgV2ViQ29y
ZTo6SFRNTEZvcm1FbGVtZW50KiwgV2ViRnJhbWUqLCBXZWJGcmFtZSogc291cmNlRnJhbWUsIGNv
bnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYpOwotICAgIHZvaWQgZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzKFdlYlBhZ2UqLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6
OkVsZW1lbnQ+PiYpOwotICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcyhXZWJQYWdl
Kik7CisgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudChjb25zdCBXS0J1
bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZSopOworCisgICAgdmlydHVhbCB2b2lkIGRpZEZvY3VzVGV4
dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV2ViRnJhbWUqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYlBh
Z2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgV2ViRnJhbWUqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJQYWdlKiwgV2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudCosIFdlYkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJQYWdlKiwgV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudCosIFdlYkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFu
Z2VJblRleHRBcmVhKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50KiwgV2Vi
RnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGVyZm9ybUFjdGlvbklu
VGV4dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiwgSW5wdXRGaWVs
ZEFjdGlvbiwgV2ViRnJhbWUqKSBvdmVycmlkZTsgICAgCisgICAgdmlydHVhbCB2b2lkIHdpbGxT
dWJtaXRGb3JtKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqLCBXZWJGcmFtZSos
IFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+JiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZFN1Ym1pdEV2ZW50KFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MRm9y
bUVsZW1lbnQqLCBXZWJGcmFtZSosIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3QgVmVjdG9y
PHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhXZWJQYWdlKiwgY29uc3QgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90
aWZ5T25Gb3JtQ2hhbmdlcyhXZWJQYWdlKikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgJ
KHJldmlzaW9uIDE2Njg4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEs
MTggKzQxLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUAogfTsK
IH0KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotY2xhc3Mg
SGl0VGVzdFJlc3VsdDsKLWNsYXNzIEludFJlY3Q7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBXZWJGcmFtZTsKLWNsYXNzIFdlYlBhZ2U7Ci1jbGFzcyBXZWJTZWN1cml0eU9yaWdp
bjsKLQogY2xhc3MgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGll
bnQ8V0tCdW5kbGVQYWdlVUlDbGllbnRCYXNlPiwgcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6
OlBhZ2VVSUNsaWVudCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQoY29uc3QgV0tCdW5kbGVQYWdlVUlDbGllbnRCYXNlKik7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiAxNjY4ODgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCIKICNpbmNs
dWRlICJQYWdlQmFubmVyLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCkBAIC03OSw3ICs4MCw3
IEBAIHZvaWQgV0tCdW5kbGVQYWdlU2V0RWRpdG9yQ2xpZW50KFdLQnVuZGwKIAogdm9pZCBXS0J1
bmRsZVBhZ2VTZXRGb3JtQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBh
Z2VGb3JtQ2xpZW50QmFzZSogd2tDbGllbnQpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KHdrQ2xpZW50KTsKKyAgICB0b0ltcGwocGFn
ZVJlZiktPnNldEluamVjdGVkQnVuZGxlRm9ybUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEluamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ+KHdrQ2xpZW50KSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQ
YWdlU2V0UGFnZUxvYWRlckNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50QmFzZSogd2tDbGllbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAkocmV2aXNpb24gMTY2ODg4KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGb3JtQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudF9oCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg+CiAKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZVRleHRGaWVsZERpZEJlZ2luRWRpdGluZ0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJbnB1dEVsZW1lbnRIYW5kbGUsIFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlVGV4dEZpZWxkRGlkRW5kRWRpdGluZ0NhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJbnB1dEVsZW1lbnRIYW5k
bGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAxNjY4ODgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC01Myw2ICs1Myw4IEBACiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFs
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MSW5wdXRFbGVtZW50Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKQEAgLTI2NywzNyArMjY5LDYgQEAgc3RhdGljIHZvaWQgc2V0VXBS
ZXNvdXJjZUxvYWRDbGllbnQoV0tXZQogICAgIHBhZ2UuaW5pdGlhbGl6ZUluamVjdGVkQnVuZGxl
UmVzb3VyY2VMb2FkQ2xpZW50KCZjbGllbnQuYmFzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRpZEZv
Y3VzVGV4dEZpZWxkKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYg
aHRtbElucHV0RWxlbWVudEhhbmRsZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSAoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKLSAgICBhdXRvIGZvcm1EZWxlZ2F0ZSA9IGNv
bnRyb2xsZXItPl9mb3JtRGVsZWdhdGUuZ2V0KCk7Ci0KLSAgICBpZiAoW2Zvcm1EZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOmRpZEZvY3VzVGV4dEZpZWxkOmluRnJhbWU6KV0pCi0gICAgICAgIFtmb3Jt
RGVsZWdhdGUgX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6Y29udHJv
bGxlciBkaWRGb2N1c1RleHRGaWVsZDp3cmFwcGVyKCp0b0ltcGwoaHRtbElucHV0RWxlbWVudEhh
bmRsZVJlZikpIGluRnJhbWU6d3JhcHBlcigqdG9JbXBsKGZyYW1lUmVmKSldOwotfQotCi1zdGF0
aWMgdm9pZCB3aWxsU3VibWl0Rm9ybShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIGh0bWxGb3JtRWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
V0tCdW5kbGVGcmFtZVJlZiBzb3VyY2VGcmFtZSwgV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tU
eXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSAoV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY2xpZW50SW5mbzsKLSAgICBh
dXRvIGZvcm1EZWxlZ2F0ZSA9IGNvbnRyb2xsZXItPl9mb3JtRGVsZWdhdGUuZ2V0KCk7Ci0KLSAg
ICBpZiAoW2Zvcm1EZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOndpbGxTdWJtaXRGb3JtOnRvRnJhbWU6
ZnJvbUZyYW1lOndpdGhWYWx1ZXM6KV0pCi0gICAgICAgIFtmb3JtRGVsZWdhdGUgX3dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6Y29udHJvbGxlciB3aWxsU3VibWl0Rm9y
bTp3cmFwcGVyKCp0b0ltcGwoaHRtbEZvcm1FbGVtZW50SGFuZGxlKSkgdG9GcmFtZTp3cmFwcGVy
KCp0b0ltcGwoZnJhbWUpKSBmcm9tRnJhbWU6d3JhcHBlcigqdG9JbXBsKHNvdXJjZUZyYW1lKSkg
d2l0aFZhbHVlczp3cmFwcGVyKCp0b0ltcGwodmFsdWVzKSldOwotfQotCi1zdGF0aWMgdm9pZCBz
ZXRVcEZvcm1DbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICpjb250ZXh0Q29udHJvbGxlciwgV2ViUGFnZSYgcGFnZSkKLXsKLSAgICBXS0J1bmRsZVBhZ2VG
b3JtQ2xpZW50VjIgY2xpZW50OwotICAgIG1lbXNldCgmY2xpZW50LCAwLCBzaXplb2YoY2xpZW50
KSk7Ci0KLSAgICBjbGllbnQuYmFzZS52ZXJzaW9uID0gMjsKLSAgICBjbGllbnQuYmFzZS5jbGll
bnRJbmZvID0gY29udGV4dENvbnRyb2xsZXI7Ci0gICAgY2xpZW50LmRpZEZvY3VzVGV4dEZpZWxk
ID0gZGlkRm9jdXNUZXh0RmllbGQ7Ci0gICAgY2xpZW50LndpbGxTdWJtaXRGb3JtID0gd2lsbFN1
Ym1pdEZvcm07Ci0KLSAgICBwYWdlLmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQo
JmNsaWVudC5iYXNlKTsKLX0KLQogLSAoaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0
ZT4pbG9hZERlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9sb2FkRGVsZWdhdGUuZ2V0QXV0b3JlbGVh
c2VkKCk7CkBAIC00MDQsMTAgKzM3NSw0NCBAQCAtICh2b2lkKV9zZXRGb3JtRGVsZWdhdGU6KGlk
IDxXS1dlYlByb2NlCiB7CiAgICAgX2Zvcm1EZWxlZ2F0ZSA9IGZvcm1EZWxlZ2F0ZTsKIAorICAg
IGNsYXNzIEZvcm1DbGllbnQgOiBwdWJsaWMgQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVu
dCB7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBGb3JtQ2xpZW50KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqY29udHJvbGxlcikKKyAgICAgICAgICAg
IDogbV9jb250cm9sbGVyKGNvbnRyb2xsZXIpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgfkZvcm1DbGllbnQoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
Rm9jdXNUZXh0RmllbGQoV2ViUGFnZSosIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCwg
V2ViRnJhbWUqIGZyYW1lKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvIGZv
cm1EZWxlZ2F0ZSA9IG1fY29udHJvbGxlci0+X2Zvcm1EZWxlZ2F0ZS5nZXQoKTsKKworICAgICAg
ICAgICAgaWYgKFtmb3JtRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpkaWRGb2N1c1RleHRGaWVsZDpp
bkZyYW1lOildKQorICAgICAgICAgICAgICAgIFtmb3JtRGVsZWdhdGUgX3dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6bV9jb250cm9sbGVyIGRpZEZvY3VzVGV4dEZpZWxk
OndyYXBwZXIoKkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoaW5wdXRFbGVt
ZW50KS5nZXQoKSkgaW5GcmFtZTp3cmFwcGVyKCpmcmFtZSldOworICAgICAgICB9CisKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqLCBIVE1MRm9ybUVsZW1lbnQq
IGZvcm1FbGVtZW50LCBXZWJGcmFtZSogZnJhbWUsIFdlYkZyYW1lKiBzb3VyY2VGcmFtZSwgY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+PiYgdmFsdWVzLCBS
ZWZQdHI8QVBJOjpPYmplY3Q+JiB1c2VyRGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgYXV0byBmb3JtRGVsZWdhdGUgPSBtX2NvbnRyb2xsZXItPl9mb3JtRGVsZWdhdGUuZ2V0
KCk7CisKKyAgICAgICAgICAgIGlmIChbZm9ybURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6d2lsbFN1
Ym1pdEZvcm06dG9GcmFtZTpmcm9tRnJhbWU6d2l0aFZhbHVlczopXSkgeworICAgICAgICAgICAg
ICAgIGF1dG8gdmFsdWVNYXAgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTp2YWx1ZXMuc2l6ZSgpXSk7CisgICAgICAgICAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBwYWlyIDogdmFsdWVzKQorICAgICAgICAgICAgICAgICAgICBbdmFsdWVNYXAg
c2V0T2JqZWN0OnBhaXIuc2Vjb25kIGZvcktleTpwYWlyLmZpcnN0XTsKKworICAgICAgICAgICAg
ICAgIFtmb3JtRGVsZWdhdGUgX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6bV9jb250cm9sbGVyIHdpbGxTdWJtaXRGb3JtOndyYXBwZXIoKkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUoZm9ybUVsZW1lbnQpLmdldCgpKSB0b0ZyYW1lOndyYXBwZXIo
KmZyYW1lKSBmcm9tRnJhbWU6d3JhcHBlcigqc291cmNlRnJhbWUpIHdpdGhWYWx1ZXM6dmFsdWVN
YXAuZ2V0KCldOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKm1fY29udHJv
bGxlcjsKKyAgICB9OworCiAgICAgaWYgKGZvcm1EZWxlZ2F0ZSkKLSAgICAgICAgc2V0VXBGb3Jt
Q2xpZW50KHNlbGYsICpfcGFnZSk7CisgICAgICAgIF9wYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUZv
cm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxGb3JtQ2xpZW50PihzZWxmKSk7CiAgICAgZWxzZQot
ICAgICAgICBfcGFnZS0+aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRm9ybUNsaWVudChudWxscHRy
KTsKKyAgICAgICAgX3BhZ2UtPnNldEluamVjdGVkQnVuZGxlRm9ybUNsaWVudChudWxscHRyKTsK
IH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTY2ODg4
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsNiArMzYxLDI5IEBAIHN0YXRpYyBib29s
IGdldEFjdGlvblR5cGVGb3JLZXlFdmVudChLZXkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3Rh
dGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OklucHV0RmllbGRBY3Rpb24gdG9J
bnB1dEZpZWxkQWN0aW9uKFdLSW5wdXRGaWVsZEFjdGlvblR5cGUgYWN0aW9uKQoreworICAgIHN3
aXRjaCAoYWN0aW9uKSB7CisgICAgY2FzZSBXS0lucHV0RmllbGRBY3Rpb25UeXBlTW92ZVVwOgor
ICAgICAgICByZXR1cm4gQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6SW5wdXRGaWVs
ZEFjdGlvbjo6TW92ZVVwOworICAgIGNhc2UgV0tJbnB1dEZpZWxkQWN0aW9uVHlwZU1vdmVEb3du
OgorICAgICAgICByZXR1cm4gQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6SW5wdXRG
aWVsZEFjdGlvbjo6TW92ZURvd247CisgICAgY2FzZSBXS0lucHV0RmllbGRBY3Rpb25UeXBlQ2Fu
Y2VsOgorICAgICAgICByZXR1cm4gQVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudDo6SW5w
dXRGaWVsZEFjdGlvbjo6Q2FuY2VsOworICAgIGNhc2UgV0tJbnB1dEZpZWxkQWN0aW9uVHlwZUlu
c2VydFRhYjoKKyAgICAgICAgcmV0dXJuIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6
OklucHV0RmllbGRBY3Rpb246Okluc2VydFRhYjsKKyAgICBjYXNlIFdLSW5wdXRGaWVsZEFjdGlv
blR5cGVJbnNlcnROZXdsaW5lOgorICAgICAgICByZXR1cm4gQVBJOjpJbmplY3RlZEJ1bmRsZTo6
Rm9ybUNsaWVudDo6SW5wdXRGaWVsZEFjdGlvbjo6SW5zZXJ0TmV3bGluZTsKKyAgICBjYXNlIFdL
SW5wdXRGaWVsZEFjdGlvblR5cGVJbnNlcnREZWxldGU6CisgICAgICAgIHJldHVybiBBUEk6Oklu
amVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50OjpJbnB1dEZpZWxkQWN0aW9uOjpJbnNlcnREZWxldGU7
CisgICAgY2FzZSBXS0lucHV0RmllbGRBY3Rpb25UeXBlSW5zZXJ0QmFja3RhYjoKKyAgICAgICAg
cmV0dXJuIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OklucHV0RmllbGRBY3Rpb246
Okluc2VydEJhY2t0YWI7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ6OklucHV0RmllbGRBY3Rpb246
OkNhbmNlbDsKK30KKwogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxkQ29tbWFuZEZy
b21FdmVudChFbGVtZW50KiBlbGVtZW50LCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBp
ZiAoIWlzSFRNTElucHV0RWxlbWVudChlbGVtZW50KSkKQEAgLTM3Myw3ICszOTYsNyBAQCBib29s
IFdlYkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kCiAgICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUo
KSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAotICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVk
QnVuZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZvcm1BY3Rpb25JblRleHRGaWVsZChtX3BhZ2Us
IHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgYWN0aW9uVHlwZSwgd2ViRnJhbWUpOworICAg
IHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZvcm1B
Y3Rpb25JblRleHRGaWVsZChtX3BhZ2UsIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgdG9J
bnB1dEZpZWxkQWN0aW9uKGFjdGlvblR5cGUpLCB3ZWJGcmFtZSk7CiB9CiAKIHZvaWQgV2ViRWRp
dG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqIGVsZW1lbnQp
CkBAIC0zODQsNyArNDA3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVEZWxl
dGVkSQogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpl
bGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKLSAg
ICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRm9ybUNsaWVudCgpLnNob3VsZFBlcmZvcm1BY3Rpb25J
blRleHRGaWVsZChtX3BhZ2UsIHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KSwgV0tJbnB1dEZp
ZWxkQWN0aW9uVHlwZUluc2VydERlbGV0ZSwgd2ViRnJhbWUpOworICAgIG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50KCkuc2hvdWxkUGVyZm9ybUFjdGlvbkluVGV4dEZpZWxkKG1fcGFn
ZSwgdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpLCB0b0lucHV0RmllbGRBY3Rpb24oV0tJbnB1
dEZpZWxkQWN0aW9uVHlwZUluc2VydERlbGV0ZSksIHdlYkZyYW1lKTsKIH0KIAogYm9vbCBXZWJF
ZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFdlYkNv
cmU6OlRleHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDE2Njg4OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYzLDYgKzI2Myw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCAKICNlbmRpZgogICAgICwgbV9zZXRDYW5TdGFydE1lZGlhVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmV2ViUGFnZTo6c2V0Q2FuU3RhcnRNZWRpYVRpbWVyRmlyZWQpCiAgICAgLCBt
X3NlbmREaWRVcGRhdGVWaWV3U3RhdGVUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQ
YWdlOjpkaWRVcGRhdGVWaWV3U3RhdGVUaW1lckZpcmVkKQorICAgICwgbV9mb3JtQ2xpZW50KHN0
ZDo6bWFrZV91bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudD4oKSkKICAgICAs
IG1fdWlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlD
bGllbnQ+KCkpCiAgICAgLCBtX2ZpbmRDb250cm9sbGVyKHRoaXMpCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCkBAIC01MjksOSArNTMwLDE0IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6
ZUluamVjdGVkQnVuZGxlRWQKICAgICBtX2VkaXRvckNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRm9ybUNsaWVudChX
S0J1bmRsZVBhZ2VGb3JtQ2xpZW50QmFzZSogY2xpZW50KQordm9pZCBXZWJQYWdlOjpzZXRJbmpl
Y3RlZEJ1bmRsZUZvcm1DbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6
OkZvcm1DbGllbnQ+IGZvcm1DbGllbnQpCiB7Ci0gICAgbV9mb3JtQ2xpZW50LmluaXRpYWxpemUo
Y2xpZW50KTsKKyAgICBpZiAoIWZvcm1DbGllbnQpIHsKKyAgICAgICAgbV9mb3JtQ2xpZW50ID0g
c3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50PigpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9mb3JtQ2xpZW50ID0gc3RkOjptb3ZlKGZvcm1D
bGllbnQpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUxvYWRl
ckNsaWVudChXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRCYXNlKiBjbGllbnQpCkBAIC04NzksNyAr
ODg1LDcgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgbV9jb250ZXh0TWVudUNsaWVudC5p
bml0aWFsaXplKDApOwogI2VuZGlmCiAgICAgbV9lZGl0b3JDbGllbnQuaW5pdGlhbGl6ZSgwKTsK
LSAgICBtX2Zvcm1DbGllbnQuaW5pdGlhbGl6ZSgwKTsKKyAgICBtX2Zvcm1DbGllbnQgPSBzdGQ6
OnVuaXF1ZV9wdHI8QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudD4oKTsKICAgICBtX2xv
YWRlckNsaWVudC5pbml0aWFsaXplKDApOwogICAgIG1fcG9saWN5Q2xpZW50LmluaXRpYWxpemUo
MCk7CiAgICAgbV9yZXNvdXJjZUxvYWRDbGllbnQuaW5pdGlhbGl6ZSgwKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMTY2ODg4
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBXZWJQYWdlX2gKICNkZWZpbmUgV2Vi
UGFnZV9oCiAKKyNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQuaCIKICNpbmNs
dWRlICJBUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCkBAIC0zNCw3ICszNSw2IEBACiAjaW5jbHVk
ZSAiSW1hZ2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuaCIKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFn
ZVBvbGljeUNsaWVudC5oIgpAQCAtMjgxLDcgKzI4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlu
aXRpYWxpemVJbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KFdLQnVuZGxlUGFnZUNvbnRl
eHRNZW51Q2xpZW50QmFzZSopOwogI2VuZGlmCiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRC
dW5kbGVFZGl0b3JDbGllbnQoV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50QmFzZSopOwotICAgIHZv
aWQgaW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRm9ybUNsaWVudChXS0J1bmRsZVBhZ2VGb3JtQ2xp
ZW50QmFzZSopOworICAgIHZvaWQgc2V0SW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KHN0ZDo6dW5p
cXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50Pik7CiAgICAgdm9pZCBpbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
QmFzZSopOwogICAgIHZvaWQgaW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KFdL
QnVuZGxlUGFnZVBvbGljeUNsaWVudEJhc2UqKTsKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3Rl
ZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudChXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnRC
YXNlKik7CkBAIC0yOTUsNyArMjk1LDcgQEAgcHVibGljOgogICAgIEluamVjdGVkQnVuZGxlUGFn
ZUNvbnRleHRNZW51Q2xpZW50JiBpbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KCkgeyBy
ZXR1cm4gbV9jb250ZXh0TWVudUNsaWVudDsgfQogI2VuZGlmCiAgICAgSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudCgpIHsgcmV0dXJuIG1f
ZWRpdG9yQ2xpZW50OyB9Ci0gICAgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudCYgaW5qZWN0
ZWRCdW5kbGVGb3JtQ2xpZW50KCkgeyByZXR1cm4gbV9mb3JtQ2xpZW50OyB9CisgICAgQVBJOjpJ
bmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkgeyBy
ZXR1cm4gKm1fZm9ybUNsaWVudC5nZXQoKTsgfQogICAgIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudCYgaW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKSB7IHJldHVybiBtX2xvYWRlckNs
aWVudDsgfQogICAgIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudCYgaW5qZWN0ZWRCdW5k
bGVQb2xpY3lDbGllbnQoKSB7IHJldHVybiBtX3BvbGljeUNsaWVudDsgfQogICAgIEluamVjdGVk
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudCYgaW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRD
bGllbnQoKSB7IHJldHVybiBtX3Jlc291cmNlTG9hZENsaWVudDsgfQpAQCAtMTA3NSw3ICsxMDc1
LDcgQEAgcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudCBt
X2NvbnRleHRNZW51Q2xpZW50OwogI2VuZGlmCiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50IG1fZWRpdG9yQ2xpZW50OwotICAgIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQg
bV9mb3JtQ2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpG
b3JtQ2xpZW50PiBtX2Zvcm1DbGllbnQ7CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50IG1fbG9hZGVyQ2xpZW50OwogICAgIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudCBt
X3BvbGljeUNsaWVudDsKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQg
bV9yZXNvdXJjZUxvYWRDbGllbnQ7Cg==
</data>
<flag name="review"
          id="253088"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>