<?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>104243</bug_id>
          
          <creation_ts>2012-12-06 01:56:00 -0800</creation_ts>
          <short_desc>[BlackBerry] DRT - Update implementation of TestRunner.setCustomPolicyDelegate()</short_desc>
          <delta_ts>2012-12-07 02:23:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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="Xiaobo Wang">xiaobwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>mxie</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784772</commentid>
    <comment_count>0</comment_count>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2012-12-06 01:56:00 -0800</bug_when>
    <thetext>The current implementation of TestRunner::setCustomPolicyDelegate is not
completed.
1. Doesn&apos;t support originating for navigation request.
2. Doesn&apos;t support delegation of navigation response.

With these update we can enable tests in http/tests/download.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784813</commentid>
    <comment_count>1</comment_count>
      <attachid>177985</attachid>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2012-12-06 03:10:25 -0800</bug_when>
    <thetext>Created attachment 177985
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784899</commentid>
    <comment_count>2</comment_count>
      <attachid>177985</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-12-06 06:19:47 -0800</bug_when>
    <thetext>Comment on attachment 177985
patch

LGTM. You could have stated what tests this fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785744</commentid>
    <comment_count>3</comment_count>
      <attachid>178183</attachid>
    <who name="Xiaobo Wang">xiaobwang</who>
    <bug_when>2012-12-07 01:37:04 -0800</bug_when>
    <thetext>Created attachment 178183
patch - final

Added tests fixed in ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785750</commentid>
    <comment_count>4</comment_count>
      <attachid>178183</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-12-07 01:40:06 -0800</bug_when>
    <thetext>Comment on attachment 178183
patch - final

commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785759</commentid>
    <comment_count>5</comment_count>
      <attachid>178183</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-07 02:23:02 -0800</bug_when>
    <thetext>Comment on attachment 178183
patch - final

Clearing flags on attachment: 178183

Committed r136940: &lt;http://trac.webkit.org/changeset/136940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785760</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-07 02:23:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177985</attachid>
            <date>2012-12-06 03:10:25 -0800</date>
            <delta_ts>2012-12-07 01:37:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-BlackBerry-DRT-Update-implementation-of-TestRunner.s.patch</filename>
            <type>text/plain</type>
            <size>22285</size>
            <attacher name="Xiaobo Wang">xiaobwang</attacher>
            
              <data encoding="base64">RnJvbSA2Mzk2MDE2MzE5NWNmYjhhMjI3N2EwMDRmOGJiYTBkM2I5ZDlhYWY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFvYm8gV2FuZyA8eGJ3YW5nQHRvcmNobW9iaWxlLmNvbS5j
bj4KRGF0ZTogVGh1LCA2IERlYyAyMDEyIDE5OjA1OjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
W0JsYWNrQmVycnldIERSVCAtIFVwZGF0ZSBpbXBsZW1lbnRhdGlvbiBvZgogVGVzdFJ1bm5lci5z
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSgpCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MjQzCgpSSU0gUFIgMjU5MzM3CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KClNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeToKCjEuIEFkZCBEUlQgY2FsbGJhY2sgaW4gZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZS4KMi4gUGFzcyBmcmFtZSBwb2ludGVyIHRvIERS
VCBjYWxsYmFjayBpbgpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sIHNv
IHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8KY2FsY3VsYXRlIG9yaWdpbmF0aW5nLgozLiBGaXggc29t
ZSB3ZWJraXQgc3R5bGUgZXJyb3JzLgoKKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgooV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeTo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CihXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6CihXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZCk6CihXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKClRvb2xzOgoKMS4gSW1wbGVtZW50IGNhbGN1
bGF0aW9uIG9mIG5hdmlnYXRpb24gb3JpZ2luYXRpbmcgaW4KZGlkRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbigpLgoyLiBJbXBsZW1lbnQgcG9saWN5IGRlbGVnYXRlIGZvciByZXNvdXJj
ZSByZXNwb25zZS4KMy4gRW5hYmxlIGN1c3RvbVBvbGljeURlbGVnYXRlIGlmIHdhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSgpIGlzIGNhbGxlZC4KNC4gTWlub3Igb3B0aW9uYWwgdXBkYXRlcyBpbiBkdW1w
KCkgYW5kIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKS4KCiogRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHA6CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJU
cmVlOjpEdW1wUmVuZGVyVHJlZSk6CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVl
OjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CihCbGFja0JlcnJ5OjpXZWJL
aXQ6OkR1bXBSZW5kZXJUcmVlOjpkdW1wKToKKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRl
clRyZWU6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBS
ZW5kZXJUcmVlOjpkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKEJsYWNrQmVy
cnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmRpZERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToK
KEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OnNldEN1c3RvbVBvbGljeURlbGVn
YXRlKToKKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJy
eS5oOgooRHVtcFJlbmRlclRyZWUpOgoqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1
bm5lckJsYWNrQmVycnkuY3BwOgooVGVzdFJ1bm5lcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUp
OgooVGVzdFJ1bm5lcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKToKKFRlc3RSdW5uZXI6Om92ZXJy
aWRlUHJlZmVyZW5jZSk6Ci0tLQogLi4uL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVy
VHJlZUNsaWVudC5oICAgfCAgICA1ICstCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICB8ICAgMjUgKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIHwgICA0MSArKysrKysrLS0tLS0tCiBUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKysr
KysrKysrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5j
cHAgfCAgIDYyICsrKysrKysrKysrKysrKystLS0tCiAuLi4vYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZUJsYWNrQmVycnkuaCAgICAgICAgICB8ICAgIDUgKy0KIC4uLi9ibGFja2JlcnJ5L1Rlc3RS
dW5uZXJCbGFja0JlcnJ5LmNwcCAgICAgICAgICAgIHwgICAgNyArLQogNyBmaWxlcyBjaGFuZ2Vk
LCAxMzggaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGM5YTY2Mzku
LmZjMTRjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJl
bmRlclRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBS
ZW5kZXJUcmVlQ2xpZW50LmgKQEAgLTU1LDEyICs1NSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkKiwgSlNHbG9iYWxDb250ZXh0UmVmLCBKU09iamVjdFJlZiB3aW5kb3dP
YmplY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoY29u
c3QgU3RyaW5nJiB0aXRsZSwgV2ViQ29yZTo6RnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6RnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZERpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWUqKSA9IDA7CiAKICAgICAvLyBDaHJvbWVDbGllbnQgZGVsZWdhdGVzCi0gICAgdmlydHVhbCB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBp
bnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAw
OwogICAgIHZpcnR1YWwgU3RyaW5nIHJ1bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKaW5kZXggNDBkMGNlNi4uNjlkNzdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMTItMDYgIFhpYW9ibyBXYW5nICA8eGJ3
YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gRFJUIC0gVXBk
YXRlIGltcGxlbWVudGF0aW9uIG9mIFRlc3RSdW5uZXIuc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjQz
CisKKyAgICAgICAgUklNIFBSIDI1OTMzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDEuIEFkZCBEUlQgY2FsbGJhY2sgaW4gZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZS4KKyAgICAgICAgMi4gUGFzcyBmcmFtZSBwb2ludGVyIHRvIERSVCBj
YWxsYmFjayBpbgorICAgICAgICBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24sIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgY2FsY3VsYXRlIG9yaWdpbmF0
aW5nLgorICAgICAgICAzLiBGaXggc29tZSB3ZWJraXQgc3R5bGUgZXJyb3JzLgorCisgICAgICAg
ICogQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aERpZEZpbmlzaExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRlY2lkZVBv
bGljeUZvckV4dGVybmFsTG9hZCk6CisKIDIwMTItMTItMDUgIE90dG8gRGVyZWsgQ2hldW5nICA8
b3RjaGV1bmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gR2VvbG9jYXRpb24gcHJv
bXB0cyB3b24ndCByZXNwb25kIHRvIHRoZSBjb3JyZWN0IGdlb2xvY2F0aW9uIG9iamVjdCBpZiB0
aGUgdXNlciBvcGVucyB0d28gcGFnZXMgYW5kIHJlc3BvbmQgaW4gdGhlIHJldmVyc2VkIG9yZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDgwZmMw
NmIuLmE5ZWM2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnku
Y3BwCkBAIC0yMDAsNiArMjAwLDkgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW4KICAgICBlbHNl
IGlmIChSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lID09IHJlcXVlc3QudGFyZ2V0
VHlwZSgpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5kb3dubG9hZEFsbG93ZWQocmVx
dWVzdC51cmwoKS5zdHJpbmcoKSkpCiAgICAgICAgIHBvbGljeSA9IFBvbGljeURvd25sb2FkOwog
CisgICAgaWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUpCisgICAgICAgIG1f
d2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUtPmRpZERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHJlc3BvbnNlKTsKKwogICAgIChtX2ZyYW1lLT5sb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigp
LT4qZnVuY3Rpb24pKHBvbGljeSk7CiB9CiAKQEAgLTI0MywxMCArMjQ2LDEwIEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oRnJhbWVQCiAgICAgaWYgKGRlY2lzaW9uID09IFBvbGljeUlnbm9yZSkKICAgICAg
ICAgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpOwogCi0gICAgKG1fZnJhbWUtPmxv
YWRlcigpLT5wb2xpY3lDaGVja2VyKCktPipmdW5jdGlvbikoZGVjaXNpb24pOwotCiAgICAgaWYg
KG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUpCi0gICAgICAgIG1fd2ViUGFnZVBy
aXZhdGUtPm1fZHVtcFJlbmRlclRyZWUtPmRpZERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oYWN0aW9uLCByZXF1ZXN0KTsKKyAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVu
ZGVyVHJlZS0+ZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihhY3Rpb24sIHJlcXVl
c3QsIG1fZnJhbWUpOworCisgICAgKG1fZnJhbWUtPmxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCkt
PipmdW5jdGlvbikoZGVjaXNpb24pOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeTo6ZGVsYXlQb2xpY3lDaGVja1VudGlsRnJhZ21lbnRFeGlzdHMoY29uc3QgU3RyaW5nJiBm
cmFnbWVudCwgRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbikKQEAgLTQ0NywxNiArNDUwLDE2
IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojp0cmFuc2l0aW9uVG9Db21taXR0
ZWRGb3JOZXdQYWdlKCkKICAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3IobV93ZWJQYWdlUHJpdmF0
ZS0+bV93ZWJTZXR0aW5ncy0+YmFja2dyb3VuZENvbG9yKCkpOwogCiAgICAgbV9mcmFtZS0+Y3Jl
YXRlVmlldyhtX3dlYlBhZ2VQcml2YXRlLT52aWV3cG9ydFNpemUoKSwgICAgICAvKiB2aWV3cG9y
dCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yLCAgICAgICAgICAg
ICAgICAgICAgICAgLyogYmFja2dyb3VuZCBjb2xvciAqLwotICAgICAgICAgICAgICAgICAgICAg
ICAgYmFja2dyb3VuZENvbG9yLmhhc0FscGhhKCksICAgICAgICAgICAgLyogaXMgdHJhbnNwYXJl
bnQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPmFjdHVhbFZp
c2libGVTaXplKCksIC8qIGZpeGVkIHJlcG9ydGVkIHNpemUgKi8KLSAgICAgICAgICAgICAgICAg
ICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPmZpeGVkTGF5b3V0U2l6ZSgpLCAgIC8qIGZpeGVkIGxh
eW91dCBzaXplICovCi0gICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0KCksICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiBmaXhlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+dXNlRml4ZWRMYXlvdXQoKSwg
ICAgLyogdXNlIGZpeGVkIGxheW91dCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgU2Nyb2xs
YmFyQWx3YXlzT2ZmLCAgICAgICAgICAgICAgICAgICAgLyogaG9yIG1vZGUgKi8KLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IGxvY2sgdGhlIG1vZGUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIFNjcm9sbGJhckFsd2F5
c09mZiwgICAgICAgICAgICAgICAgICAgIC8qIHZlciBtb2RlICovCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsb2NrIHRo
ZSBtb2RlICovCisgICAgICAgIGJhY2tncm91bmRDb2xvciwgICAgICAgICAgICAgICAgICAgICAg
IC8qIGJhY2tncm91bmQgY29sb3IgKi8KKyAgICAgICAgYmFja2dyb3VuZENvbG9yLmhhc0FscGhh
KCksICAgICAgICAgICAgLyogaXMgdHJhbnNwYXJlbnQgKi8KKyAgICAgICAgbV93ZWJQYWdlUHJp
dmF0ZS0+YWN0dWFsVmlzaWJsZVNpemUoKSwgLyogZml4ZWQgcmVwb3J0ZWQgc2l6ZSAqLworICAg
ICAgICBtX3dlYlBhZ2VQcml2YXRlLT5maXhlZExheW91dFNpemUoKSwgICAvKiBmaXhlZCBsYXlv
dXQgc2l6ZSAqLworICAgICAgICBJbnRSZWN0KCksICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiBmaXhlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCAqLworICAgICAgICBtX3dlYlBhZ2VQcml2
YXRlLT51c2VGaXhlZExheW91dCgpLCAgICAvKiB1c2UgZml4ZWQgbGF5b3V0ICovCisgICAgICAg
IFNjcm9sbGJhckFsd2F5c09mZiwgICAgICAgICAgICAgICAgICAgIC8qIGhvciBtb2RlICovCisg
ICAgICAgIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxvY2sgdGhl
IG1vZGUgKi8KKyAgICAgICAgU2Nyb2xsYmFyQWx3YXlzT2ZmLCAgICAgICAgICAgICAgICAgICAg
LyogdmVyIG1vZGUgKi8KKyAgICAgICAgdHJ1ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogbG9jayB0aGUgbW9kZSAqLwogCiAgICAgaWYgKGlzTWFpbkZyYW1lKCkgJiYgbV93
ZWJQYWdlUHJpdmF0ZS0+YmFja2luZ1N0b3JlQ2xpZW50KCkpIHsKICAgICAgICAgLy8gRklYTUU6
IERvIHdlIHJlYWxseSBuZWVkIHRvIHN1c3BlbmQvcmVzdW1lIGJvdGggYmFja2luZ3N0b3JlIGFu
ZCBzY3JlZW4gaGVyZT8KQEAgLTYwMSw3ICs2MDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkKIAogICAgIC8vIFByb2Nlc3MgZG9j
dW1lbnQgbWV0YWRhdGEuCiAgICAgUmVmUHRyPE5vZGVMaXN0PiBub2RlTGlzdCA9IGhlYWRFbGVt
ZW50LT5nZXRFbGVtZW50c0J5VGFnTmFtZShIVE1MTmFtZXM6Om1ldGFUYWcubG9jYWxOYW1lKCkp
OwotICAgIHVuc2lnbmVkIGludCBzaXplID0gbm9kZUxpc3QtPmxlbmd0aCgpOworICAgIHVuc2ln
bmVkIHNpemUgPSBub2RlTGlzdC0+bGVuZ3RoKCk7CiAgICAgU2NvcGVBcnJheTxCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6U3RyaW5nPiBoZWFkZXJzOwogCiAgICAgLy8gVGhpcyBtYXkgYWxsb2NhdGUg
bW9yZSBzcGFjZSB0aGFuIG5lZWRlZCBzaW5jZSBub3QgYWxsIG1ldGEgZWxlbWVudHMgd2lsbCBi
ZSBodHRwLWVxdWl2LgpAQCAtNjk3LDcgKzcwMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VF
CiAgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPnNldExvYWRTdGF0ZShXZWJQYWdlUHJpdmF0ZTo6
RmFpbGVkKTsKIAogICAgICAgICBpZiAoZXJyb3IuZG9tYWluKCkgPT0gUmVzb3VyY2VFcnJvcjo6
cGxhdGZvcm1FcnJvckRvbWFpbgotICAgICAgICAgICAgICAgICYmIChlcnJvci5lcnJvckNvZGUo
KSA9PSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNFcnJvckFscmVh
ZHlIYW5kbGVkKSkgeworICAgICAgICAgICAgJiYgKGVycm9yLmVycm9yQ29kZSgpID09IEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c0Vycm9yQWxyZWFkeUhhbmRsZWQp
KSB7CiAgICAgICAgICAgICAvLyBFcnJvciBoYXMgYWxyZWFkeSBiZWVuIGRpc3BsYXllZCBieSBj
bGllbnQuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTk3OCw3ICs5ODEsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGV0YWNoZWRGcm9tUGFyZW50Migp
CiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPm5vdGlmeUZyYW1lRGV0YWNoZWQobV9m
cmFtZSk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogZG9jTG9hZGVyLCBsb25nIHVuc2lnbmVkIGlu
dCwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKK3Zv
aWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChE
b2N1bWVudExvYWRlciogZG9jTG9hZGVyLCBsb25nIHVuc2lnbmVkLCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQogewogICAgIC8vIElmIHRoZSByZXF1
ZXN0IGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgcHJvdmlzaW9uYWwgZG9jdW1lbnQgbG9hZGVyLCB0
aGVuCiAgICAgLy8gaXQgaXMgYSBuZXcgdG9wIGxldmVsIHJlcXVlc3Qgd2hpY2ggaGFzIG5vdCBi
ZWVuIGNvbW1pdGVkLgpAQCAtMTE1Miw5ICsxMTU1LDkgQEAgUG9saWN5QWN0aW9uIEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKGNvbnN0IFJl
c28KICNlbmRpZgogCiAgICAgaWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmFy
ZUxpbmtzSGFuZGxlZEV4dGVybmFsbHkoKQotICAgICAgICAgICAgJiYgaXNNYWluRnJhbWUoKQot
ICAgICAgICAgICAgJiYgIXJlcXVlc3QubXVzdEhhbmRsZUludGVybmFsbHkoKQotICAgICAgICAg
ICAgJiYgIWlzRnJhZ21lbnRTY3JvbGwpIHsKKyAgICAgICAgJiYgaXNNYWluRnJhbWUoKQorICAg
ICAgICAmJiAhcmVxdWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCisgICAgICAgICYmICFpc0Zy
YWdtZW50U2Nyb2xsKSB7CiAgICAgICAgIE5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsK
ICAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVz
dCwgY29va2llc0VuYWJsZWQoKSk7CiAgICAgICAgIGlmIChwbGF0Zm9ybVJlcXVlc3QuZ2V0VGFy
Z2V0VHlwZSgpID09IE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc1Vua25vd24pCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjIyYTc2NC4uZWVhZTA2
NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDEyLTEyLTA2ICBYaWFvYm8gV2FuZyAgPHhid2FuZ0B0b3JjaG1vYmls
ZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNrQmVycnldIERSVCAtIFVwZGF0ZSBpbXBsZW1lbnRh
dGlvbiBvZiBUZXN0UnVubmVyLnNldEN1c3RvbVBvbGljeURlbGVnYXRlKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI0MworCisgICAgICAgIFJJ
TSBQUiAyNTkzMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAxLiBJbXBsZW1lbnQgY2FsY3VsYXRpb24gb2YgbmF2aWdhdGlvbiBvcmlnaW5hdGluZyBp
bgorICAgICAgICBkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCkuCisgICAgICAg
IDIuIEltcGxlbWVudCBwb2xpY3kgZGVsZWdhdGUgZm9yIHJlc291cmNlIHJlc3BvbnNlLgorICAg
ICAgICAzLiBFbmFibGUgY3VzdG9tUG9saWN5RGVsZWdhdGUgaWYgd2FpdEZvclBvbGljeURlbGVn
YXRlKCkgaXMgY2FsbGVkLgorICAgICAgICA0LiBNaW5vciBvcHRpb25hbCB1cGRhdGVzIGluIGR1
bXAoKSBhbmQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVm
b3JlVGVzdGluZyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVl
OjpkdW1wKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmRp
ZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBS
ZW5kZXJUcmVlOjpkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmRpZERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OnNl
dEN1c3RvbVBvbGljeURlbGVnYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWUp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZSk6CisKIDIwMTItMTItMDYgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIxMzY3ODQgYW5kIHIxMzY4MDIuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGJmNmRjN2MuLmRkYTg0ZmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRy
ZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRy
ZWUuY3BwCkBAIC0zNyw5ICszNywxMyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRl
ICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCisjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgpAQCAtMTYzLDYgKzE2Nyw3IEBAIER1bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVyVHJl
ZShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2UqIHBhZ2UpCiAgICAgLCBtX3dhaXRUb0R1bXBX
YXRjaGRvZ1RpbWVyKHRoaXMsICZEdW1wUmVuZGVyVHJlZTo6d2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXJGaXJlZCkKICAgICAsIG1fd29ya1RpbWVyKHRoaXMsICZEdW1wUmVuZGVyVHJlZTo6cHJvY2Vz
c1dvcmspCiAgICAgLCBtX2FjY2VwdHNFZGl0aW5nKHRydWUpCisgICAgLCBtX3BvbGljeURlbGVn
YXRlRW5hYmxlZChmYWxzZSkKIHsKICAgICBjb25zdCBjaGFyKiB3b3JrZXJOdW1iZXIgPSBnZXRl
bnYoIldPUktFUl9OVU1CRVIiKSA/IGdldGVudigiV09SS0VSX05VTUJFUiIpIDogIjAiOwogICAg
IFN0cmluZyBzZGNhcmRQYXRoID0gU0RDQVJEX1BBVEg7CkBAIC0yNzEsNyArMjc2LDggQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnMKICAgICB0b3BMb2FkaW5nRnJhbWUgPSAwOwogICAgIG1fbG9h
ZEZpbmlzaGVkID0gZmFsc2U7CiAgICAgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
ID0gZmFsc2U7Ci0KKyAgICBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCA9IGZhbHNlOworICAgIHdh
aXRGb3JQb2xpY3kgPSBmYWxzZTsKICAgICB0ZXN0RG9uZSA9IGZhbHNlOwogICAgIFdvcmtRdWV1
ZTo6c2hhcmVkKCktPmNsZWFyKCk7CiAgICAgV29ya1F1ZXVlOjpzaGFyZWQoKS0+c2V0RnJvemVu
KGZhbHNlKTsKQEAgLTUyMyw5ICs1MjksNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpkdW1wKCkK
ICAgICBkdW1wVG9GaWxlKHJlc3VsdCk7CiAKICAgICBpZiAoIXJ1bkZyb21Db21tYW5kTGluZSkg
ewotICAgICAgICAvLyBzaWduYWwgZW5kIG9mIHRleHQgYmxvY2sKLSAgICAgICAgZnB1dHMoIiNF
T0ZcbiIsIHN0ZG91dCk7Ci0KICAgICAgICAgLy8gVGhlcmUgYXJlIHR3byBzY2VuYXJpb3MgZm9y
IGR1bXBpbmcgcGl4ZWxzOgogICAgICAgICAvLyAxLiBXaGVuIHRoZSB0ZXN0IGNhc2UgZXhwbGlj
aXRseSBhc2tzIGZvciBpdCBieSBjYWxsaW5nIGR1bXBBc1RleHQodHJ1ZSkgd2l0aCB0aGF0IGV4
dHJhIHRydWUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHZhbHVlLCBmcm9tIEphdmFTY3JpcHQKICAg
ICAgICAgYm9vbCBleHBsaWNpdFBpeGVsUmVzdWx0cyA9IGdUZXN0UnVubmVyLT5kdW1wQXNUZXh0
KCkgJiYgZ1Rlc3RSdW5uZXItPmdlbmVyYXRlUGl4ZWxSZXN1bHRzKCk7CkBAIC01MzQsOCArNTM3
LDExIEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OmR1bXAoKQogCiAgICAgICAgIC8vIEJ1dCBvbmx5
IGlmIG1fZW5hYmxlUGl4ZWxUZXN0cyBpcyBzZXQsIHRvIHNheSB0aGF0IHRoZSB1c2VyIHdhbnRz
IHRvIHJ1biBwaXhlbCB0ZXN0cyBhdCBhbGwuCiAgICAgICAgIGJvb2wgZ2VuZXJhdGVQaXhlbFJl
c3VsdHMgPSBtX2VuYWJsZVBpeGVsVGVzdHMgJiYgKGV4cGxpY2l0UGl4ZWxSZXN1bHRzIHx8IGlt
cGxpY2l0UGl4ZWxSZXN1bHRzKTsKLSAgICAgICAgaWYgKGdlbmVyYXRlUGl4ZWxSZXN1bHRzKQor
ICAgICAgICBpZiAoZ2VuZXJhdGVQaXhlbFJlc3VsdHMpIHsKKyAgICAgICAgICAgIC8vIHNpZ25h
bCBlbmQgb2YgdGV4dCBibG9jaworICAgICAgICAgICAgZnB1dHMoIiNFT0ZcbiIsIHN0ZG91dCk7
CiAgICAgICAgICAgICBkdW1wV2ViVmlld0FzUGl4ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3RlZChn
VGVzdFJ1bm5lci0+ZXhwZWN0ZWRQaXhlbEhhc2goKSk7CisgICAgICAgIH0KIAogICAgICAgICBT
dHJpbmcgY3Jhc2hGaWxlID0gZHVtcEZpbGUgKyAiLmNyYXNoIjsKICAgICAgICAgdW5saW5rKGNy
YXNoRmlsZS51dGY4KCkuZGF0YSgpKTsKQEAgLTYzMCw5ICs2MzYsMTAgQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKICAg
ICBpZiAoIXRlc3REb25lICYmIGdUZXN0UnVubmVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkp
CiAgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWVcbiIsIGRydEZyYW1l
RGVzY3JpcHRpb24oZnJhbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKGZyYW1lID09IHRv
cExvYWRpbmdGcmFtZSkKKyAgICBpZiAoZnJhbWUgPT0gdG9wTG9hZGluZ0ZyYW1lKSB7CiAgICAg
ICAgIG1fbG9hZEZpbmlzaGVkID0gdHJ1ZTsKLSAgICBsb2NhdGlvbkNoYW5nZUZvckZyYW1lKGZy
YW1lKTsKKyAgICAgICAgbG9jYXRpb25DaGFuZ2VGb3JGcmFtZShmcmFtZSk7CisgICAgfQogfQog
CiB2b2lkIER1bXBSZW5kZXJUcmVlOjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSogZnJhbWUpCkBAIC04MzEsOSArODM4LDkgQEAgYm9vbCBEdW1wUmVuZGVyVHJl
ZTo6c2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFdlYkNvcmU6OlJhbmdlKiBy
YW5nZSwKICAgICByZXR1cm4gbV9hY2NlcHRzRWRpdGluZzsKIH0KIAotdm9pZCBEdW1wUmVuZGVy
VHJlZTo6ZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3ZvaWQgRHVtcFJlbmRlclRyZWU6OmRpZERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkK
IHsKLSAgICBpZiAoIXdhaXRGb3JQb2xpY3kpCisgICAgaWYgKHRlc3REb25lIHx8ICFtX3BvbGlj
eURlbGVnYXRlRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgY2hhciogdHlw
ZURlc2NyaXB0aW9uOwpAQCAtODYwLDEwICs4NjcsMzYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6
ZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW8KICAgICAgICAgdHlwZURlc2NyaXB0aW9uID0gImlsbGVnYWwgdmFsdWUiOwogICAgIH0KIAot
ICAgIHByaW50ZigiUG9saWN5IGRlbGVnYXRlOiBhdHRlbXB0IHRvIGxvYWQgJXMgd2l0aCBuYXZp
Z2F0aW9uIHR5cGUgJyVzJ1xuIiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCB0eXBlRGVzY3JpcHRpb24pOwotICAgIC8vIEZJWE1FOiBkbyBvcmlnaW5hdGluZyBwYXJ0Lgor
ICAgIGJvb2wgc2hvdWxkV2FpdEZvclJlc3BvbnNlID0gIXJlcXVlc3QudXJsKCkuc3RyaW5nKCku
c3RhcnRzV2l0aCgibWFpbHRvOiIpOworICAgIHByaW50ZigiUG9saWN5IGRlbGVnYXRlOiBhdHRl
bXB0IHRvIGxvYWQgJXMgd2l0aCBuYXZpZ2F0aW9uIHR5cGUgJyVzJyIsIHJlcXVlc3QudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgdHlwZURlc2NyaXB0aW9uKTsKKyAgICAvLyBPcmlnaW5h
dGluZyBwYXJ0LCBib3Jyb3dlZCBmcm9tIENocm9taXVtLgorICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBub2RlOworICAgIGZvciAoY29uc3QgV2ViQ29yZTo6RXZlbnQqIGV2ZW50ID0gYWN0aW9u
LmV2ZW50KCk7IGV2ZW50OyBldmVudCA9IGV2ZW50LT51bmRlcmx5aW5nRXZlbnQoKSkgeworICAg
ICAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CisgICAgICAgICAgICBjb25zdCBXZWJD
b3JlOjpNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6
TW91c2VFdmVudCo+KGV2ZW50KTsKKyAgICAgICAgICAgIG5vZGUgPSBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24o
KSwgZmFsc2UpLmlubmVyTm9uU2hhcmVkTm9kZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKG5vZGUuZ2V0KCkpCisgICAgICAgIHByaW50ZigiIG9yaWdp
bmF0aW5nIGZyb20gJXNcbiIsIGRydER1bXBQYXRoKG5vZGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkp
OworICAgIGVsc2UKKyAgICAgICAgcHJpbnRmKCJcbiIpOworCisgICAgaWYgKHdhaXRGb3JQb2xp
Y3kgJiYgIXNob3VsZFdhaXRGb3JSZXNwb25zZSkKKyAgICAgICAgZ1Rlc3RSdW5uZXItPm5vdGlm
eURvbmUoKTsKK30KIAotICAgIGdUZXN0UnVubmVyLT5ub3RpZnlEb25lKCk7Cit2b2lkIER1bXBS
ZW5kZXJUcmVlOjpkaWREZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAoIXRlc3REb25lICYmIG1fcG9saWN5
RGVsZWdhdGVFbmFibGVkKSB7CisgICAgICAgIGlmIChXZWJDb3JlOjpjb250ZW50RGlzcG9zaXRp
b25UeXBlKHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZCgiQ29udGVudC1EaXNwb3NpdGlvbiIpKSA9
PSBXZWJDb3JlOjpDb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50KQorICAgICAgICAgICAgcHJp
bnRmKCJQb2xpY3kgZGVsZWdhdGU6IHJlc291cmNlIGlzIGFuIGF0dGFjaG1lbnQsIHN1Z2dlc3Rl
ZCBmaWxlIG5hbWUgJyVzJ1xuIiwgcmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJpbnRmKCJQb2xpY3kgZGVsZWdh
dGU6IGVycm9yIC0gcmVzb3VyY2UgaGFzIGFuIHVua25vd24gQ29udGVudC1EaXNwb3NpdGlvbiAn
JXMnXG4iLCByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoIkNvbnRlbnQtRGlzcG9zaXRpb24iKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKHdhaXRGb3JQb2xpY3kpCisgICAgICAgICAgICBn
VGVzdFJ1bm5lci0+bm90aWZ5RG9uZSgpOworICAgIH0KIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJl
ZTo6ZGlkRGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCkKQEAgLTg5OCw2ICs5MzEs
MTEgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmIGNyZWQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9p
ZCBEdW1wUmVuZGVyVHJlZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBzZXREZWxlZ2F0
ZSwgYm9vbCBwZXJtaXNzaXZlKQoreworICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gc2V0
RGVsZWdhdGU7CisgICAgVU5VU0VEX1BBUkFNKHBlcm1pc3NpdmUpOworfQogfQogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxh
Y2tCZXJyeS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJl
ZUJsYWNrQmVycnkuaAppbmRleCBkYWNhMTEyLi5hMTNhZmIxIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5
LmgKQEAgLTcxLDcgKzcxLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2b2lkIGRpZENsZWFyV2luZG93T2Jq
ZWN0SW5Xb3JsZChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQqLCBKU0dsb2JhbENvbnRleHRSZWYs
IEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShjb25zdCBTdHJpbmcmIHRpdGxlLCBXZWJDb3JlOjpGcmFtZSopOwotICAgIHZvaWQgZGlk
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBkaWRE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGcmFtZSop
OworICAgIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkRGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0KCk7CiAgICAgdm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSopOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CkBAIC0xMDcsNiArMTA4
LDcgQEAgcHVibGljOgogCiAgICAgLy8gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlQ
bGF0Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0aG9kCiAgICAgdmlydHVhbCB2b2lkIGFkZFRlc3Qo
Y29uc3QgY2hhciogdGVzdEZpbGUpOworICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUo
Ym9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZlKTsKIHByaXZhdGU6CiAgICAgdm9pZCBy
dW5UZXN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGltYWdlSGFzaCk7CiAgICAg
dm9pZCBydW5UZXN0cygpOwpAQCAtMTQ3LDYgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2FjY2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7CiAgICAgc3RhdGljIGJv
b2wgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIGJvb2wgbV9wb2xpY3lE
ZWxlZ2F0ZUVuYWJsZWQ7CiB9OwogfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCBlYTliNGU3Li42
ZWVhYzM4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RS
dW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtMTkxLDkgKzE5MSw3IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0Q2FjaGVNb2RlbChpbnQpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q3VzdG9tUG9s
aWN5RGVsZWdhdGUoYm9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZlKQogewotICAgIFVO
VVNFRF9QQVJBTShzZXREZWxlZ2F0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHBlcm1pc3NpdmUpOwot
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVy
VHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldEN1c3RvbVBvbGljeURlbGVnYXRlKHNldERlbGVn
YXRlLCBwZXJtaXNzaXZlKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpjbGVhckFwcGxpY2F0aW9u
Q2FjaGVGb3JPcmlnaW4oT3BhcXVlSlNTdHJpbmcqKQpAQCAtMzAyLDYgKzMwMCw3IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmluZ1JlZiBwYXRoKQog
CiB2b2lkIFRlc3RSdW5uZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpCiB7CisgICAgc2V0Q3Vz
dG9tUG9saWN5RGVsZWdhdGUodHJ1ZSwgdHJ1ZSk7CiAgICAgc2V0V2FpdFRvRHVtcCh0cnVlKTsK
ICAgICB3YWl0Rm9yUG9saWN5ID0gdHJ1ZTsKIH0KQEAgLTQzOSw2ICs0MzgsOCBAQCB2b2lkIFRl
c3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVm
IHZhbHVlKQogICAgICAgICBtYWluRnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0SHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkKHZhbHVlU3RyID09ICJ0cnVlIiB8fCB2YWx1ZVN0ciA9PSAiMSIp
OwogICAgIGVsc2UgaWYgKGtleVN0ciA9PSAiV2ViU29ja2V0c0VuYWJsZWQiKQogICAgICAgICBC
bGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFn
ZSgpLT5zZXR0aW5ncygpLT5zZXRXZWJTb2NrZXRzRW5hYmxlZCh2YWx1ZVN0ciA9PSAidHJ1ZSIg
fHwgdmFsdWVTdHIgPT0gIjEiKTsKKyAgICBlbHNlIGlmIChrZXlTdHIgPT0gIldlYktpdERlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lIikKKyAgICAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVu
ZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0RGVmYXVs
dFRleHRFbmNvZGluZ05hbWUodmFsdWVTdHIpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEFs
d2F5c0FjY2VwdENvb2tpZXMoYm9vbCBhbHdheXNBY2NlcHRDb29raWVzKQotLSAKMS43LjYKCg==
</data>
<flag name="review"
          id="194335"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178183</attachid>
            <date>2012-12-07 01:37:04 -0800</date>
            <delta_ts>2012-12-07 02:23:02 -0800</delta_ts>
            <desc>patch - final</desc>
            <filename>0001-BlackBerry-DRT-Update-implementation-of-TestRunner.s.patch</filename>
            <type>text/plain</type>
            <size>23058</size>
            <attacher name="Xiaobo Wang">xiaobwang</attacher>
            
              <data encoding="base64">RnJvbSA0ZTUwMDkwNmEyYWRiY2U0MTU4MThkY2ZkZDA0NTk4NTY2OGY1Mjg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFvYm8gV2FuZyA8eGJ3YW5nQHRvcmNobW9iaWxlLmNvbS5j
bj4KRGF0ZTogRnJpLCA3IERlYyAyMDEyIDE3OjMxOjAyICswODAwClN1YmplY3Q6IFtQQVRDSF0g
W0JsYWNrQmVycnldIERSVCAtIFVwZGF0ZSBpbXBsZW1lbnRhdGlvbiBvZgogVGVzdFJ1bm5lci5z
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSgpCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MjQzCgpSSU0gUFIgMjU5MzM3CgpSZXZpZXdlZCBieSBSb2IgQnVpcy4KClNv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeToKCjEuIEFkZCBEUlQgY2FsbGJhY2sgaW4gZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZS4KMi4gUGFzcyBmcmFtZSBwb2ludGVyIHRvIERSVCBjYWxs
YmFjayBpbgpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sIHNvIHRoYXQg
aXQgY2FuIGJlIHVzZWQgdG8KY2FsY3VsYXRlIG9yaWdpbmF0aW5nLgozLiBGaXggc29tZSB3ZWJr
aXQgc3R5bGUgZXJyb3JzLgoKVGhlIHBhdGNoIGZpeGVkIHRoZSBmb2xsb3dpbmcgdGVzdHM6Ci0g
aHR0cC90ZXN0cy9kb3dubG9hZAotIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJp
YnV0ZS1idXR0b24taHRtbC5odG1sCi0gZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWlucHV0LWh0bWwuaHRtbAotIGZhc3QvZW5jb2RpbmcvbWFpbHRvLWFsd2F5cy11dGYt
OC5odG1sCgoqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oOgoqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CihXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgooV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKToKKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3Qp
OgooV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWNpZGVQb2xpY3lGb3JF
eHRlcm5hbExvYWQpOgoKVG9vbHM6CgoxLiBJbXBsZW1lbnQgY2FsY3VsYXRpb24gb2YgbmF2aWdh
dGlvbiBvcmlnaW5hdGluZyBpbgpkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCku
CjIuIEltcGxlbWVudCBwb2xpY3kgZGVsZWdhdGUgZm9yIHJlc291cmNlIHJlc3BvbnNlLgozLiBF
bmFibGUgY3VzdG9tUG9saWN5RGVsZWdhdGUgaWYgd2FpdEZvclBvbGljeURlbGVnYXRlKCkgaXMg
Y2FsbGVkLgo0LiBNaW5vciBvcHRpb25hbCB1cGRhdGVzIGluIGR1bXAoKSBhbmQgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpLgoKVGhlIHBhdGNoIGZpeGVkIHRoZSBmb2xsb3dpbmcgdGVzdHM6Ci0g
aHR0cC90ZXN0cy9kb3dubG9hZAotIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJp
YnV0ZS1idXR0b24taHRtbC5odG1sCi0gZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWlucHV0LWh0bWwuaHRtbAotIGZhc3QvZW5jb2RpbmcvbWFpbHRvLWFsd2F5cy11dGYt
OC5odG1sCgoqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgoo
QmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6RHVtcFJlbmRlclRyZWUpOgooQmxh
Y2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcpOgooQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6ZHVtcCk6
CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpkaWRGaW5pc2hMb2FkRm9yRnJh
bWUpOgooQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6ZGlkRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVl
OjpkaWREZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CihCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBS
ZW5kZXJUcmVlOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSk6CiogRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKER1bXBSZW5kZXJUcmVlKToKKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKFRlc3RS
dW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKToKKFRlc3RSdW5uZXI6OndhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSk6CihUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgotLS0KIC4uLi9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaCAgIHwgICAgNSArLQog
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCAgIDMx
ICsrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkuY3BwIHwgICA0MSArKysrKysrLS0tLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzYgKysrKysrKysrKysrCiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCB8ICAgNjAgKysrKysrKysrKysr
KysrKy0tLS0KIC4uLi9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oICAgICAg
ICAgIHwgICAgNSArLQogLi4uL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwICAg
ICAgICAgICAgfCAgICA3ICstCiA3IGZpbGVzIGNoYW5nZWQsIDE0OCBpbnNlcnRpb25zKCspLCAz
NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0R1bXBSZW5kZXJUcmVlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1
bXBSZW5kZXJUcmVlQ2xpZW50LmgKaW5kZXggYzlhNjYzOS4uZmMxNGNkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAt
NTUsMTIgKzU1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQqLCBKU0ds
b2JhbENvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShjb25zdCBTdHJpbmcmIHRpdGxlLCBXZWJD
b3JlOjpGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGcmFtZSopID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGF0Y2hX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5k
bGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSopID0gMDsKIAogICAgIC8vIENo
cm9tZUNsaWVudCBkZWxlZ2F0ZXMKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29s
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcg
cnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA0MGQw
Y2U2Li4zNWQwZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxMi0xMi0wNiAgWGlhb2JvIFdhbmcgIDx4YndhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBEUlQgLSBVcGRhdGUgaW1wbGVtZW50YXRpb24gb2Yg
VGVzdFJ1bm5lci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQyNDMKKworICAgICAgICBSSU0gUFIgMjU5
MzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9iIEJ1aXMuCisKKyAgICAgICAgMS4gQWRkIERS
VCBjYWxsYmFjayBpbiBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlLgorICAgICAgICAy
LiBQYXNzIGZyYW1lIHBvaW50ZXIgdG8gRFJUIGNhbGxiYWNrIGluCisgICAgICAgIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiwgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0
bworICAgICAgICBjYWxjdWxhdGUgb3JpZ2luYXRpbmcuCisgICAgICAgIDMuIEZpeCBzb21lIHdl
YmtpdCBzdHlsZSBlcnJvcnMuCisKKyAgICAgICAgVGhlIHBhdGNoIGZpeGVkIHRoZSBmb2xsb3dp
bmcgdGVzdHM6CisgICAgICAgIC0gaHR0cC90ZXN0cy9kb3dubG9hZAorICAgICAgICAtIGZhc3Qv
Zm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0b24taHRtbC5odG1sCisgICAg
ICAgIC0gZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0cmlidXRlLWlucHV0LWh0bWwu
aHRtbAorICAgICAgICAtIGZhc3QvZW5jb2RpbmcvbWFpbHRvLWFsd2F5cy11dGYtOC5odG1sCisK
KyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJl
c3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
ZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKToKKwogMjAxMi0xMi0wNSAgT3R0byBEZXJlayBD
aGV1bmcgIDxvdGNoZXVuZ0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBHZW9sb2Nh
dGlvbiBwcm9tcHRzIHdvbid0IHJlc3BvbmQgdG8gdGhlIGNvcnJlY3QgZ2VvbG9jYXRpb24gb2Jq
ZWN0IGlmIHRoZSB1c2VyIG9wZW5zIHR3byBwYWdlcyBhbmQgcmVzcG9uZCBpbiB0aGUgcmV2ZXJz
ZWQgb3JkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5k
ZXggODBmYzA2Yi4uYTllYzZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTIwMCw2ICsyMDAsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bgog
ICAgIGVsc2UgaWYgKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWUgPT0gcmVxdWVz
dC50YXJnZXRUeXBlKCkgJiYgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmRvd25sb2FkQWxs
b3dlZChyZXF1ZXN0LnVybCgpLnN0cmluZygpKSkKICAgICAgICAgcG9saWN5ID0gUG9saWN5RG93
bmxvYWQ7CiAKKyAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZSkKKyAg
ICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+ZGlkRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UocmVzcG9uc2UpOworCiAgICAgKG1fZnJhbWUtPmxvYWRlcigpLT5wb2xpY3lD
aGVja2VyKCktPipmdW5jdGlvbikocG9saWN5KTsKIH0KIApAQCAtMjQzLDEwICsyNDYsMTAgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihGcmFtZVAKICAgICBpZiAoZGVjaXNpb24gPT0gUG9saWN5SWdub3Jl
KQogICAgICAgICBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCk7CiAKLSAgICAobV9m
cmFtZS0+bG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+KmZ1bmN0aW9uKShkZWNpc2lvbik7Ci0K
ICAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZSkKLSAgICAgICAgbV93
ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+ZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihhY3Rpb24sIHJlcXVlc3QpOworICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5t
X2R1bXBSZW5kZXJUcmVlLT5kaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGFjdGlv
biwgcmVxdWVzdCwgbV9mcmFtZSk7CisKKyAgICAobV9mcmFtZS0+bG9hZGVyKCktPnBvbGljeUNo
ZWNrZXIoKS0+KmZ1bmN0aW9uKShkZWNpc2lvbik7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkZWxheVBvbGljeUNoZWNrVW50aWxGcmFnbWVudEV4aXN0cyhjb25zdCBT
dHJpbmcmIGZyYWdtZW50LCBGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uKQpAQCAtNDQ3LDE2
ICs0NTAsMTYgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnRyYW5zaXRpb25U
b0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgIENvbG9yIGJhY2tncm91bmRDb2xvcihtX3dlYlBh
Z2VQcml2YXRlLT5tX3dlYlNldHRpbmdzLT5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAKICAgICBtX2Zy
YW1lLT5jcmVhdGVWaWV3KG1fd2ViUGFnZVByaXZhdGUtPnZpZXdwb3J0U2l6ZSgpLCAgICAgIC8q
IHZpZXdwb3J0ICovCi0gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IsICAg
ICAgICAgICAgICAgICAgICAgICAvKiBiYWNrZ3JvdW5kIGNvbG9yICovCi0gICAgICAgICAgICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3IuaGFzQWxwaGEoKSwgICAgICAgICAgICAvKiBpcyB0
cmFuc3BhcmVudCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+
YWN0dWFsVmlzaWJsZVNpemUoKSwgLyogZml4ZWQgcmVwb3J0ZWQgc2l6ZSAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+Zml4ZWRMYXlvdXRTaXplKCksICAgLyog
Zml4ZWQgbGF5b3V0IHNpemUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QoKSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpeGVkIHZpc2libGUgY29udGVudCByZWN0
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT51c2VGaXhlZExh
eW91dCgpLCAgICAvKiB1c2UgZml4ZWQgbGF5b3V0ICovCi0gICAgICAgICAgICAgICAgICAgICAg
ICBTY3JvbGxiYXJBbHdheXNPZmYsICAgICAgICAgICAgICAgICAgICAvKiBob3IgbW9kZSAqLwot
ICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogbG9jayB0aGUgbW9kZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgU2Nyb2xs
YmFyQWx3YXlzT2ZmLCAgICAgICAgICAgICAgICAgICAgLyogdmVyIG1vZGUgKi8KLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRydWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IGxvY2sgdGhlIG1vZGUgKi8KKyAgICAgICAgYmFja2dyb3VuZENvbG9yLCAgICAgICAgICAgICAg
ICAgICAgICAgLyogYmFja2dyb3VuZCBjb2xvciAqLworICAgICAgICBiYWNrZ3JvdW5kQ29sb3Iu
aGFzQWxwaGEoKSwgICAgICAgICAgICAvKiBpcyB0cmFuc3BhcmVudCAqLworICAgICAgICBtX3dl
YlBhZ2VQcml2YXRlLT5hY3R1YWxWaXNpYmxlU2l6ZSgpLCAvKiBmaXhlZCByZXBvcnRlZCBzaXpl
ICovCisgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPmZpeGVkTGF5b3V0U2l6ZSgpLCAgIC8qIGZp
eGVkIGxheW91dCBzaXplICovCisgICAgICAgIEludFJlY3QoKSwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIGZpeGVkIHZpc2libGUgY29udGVudCByZWN0ICovCisgICAgICAgIG1fd2Vi
UGFnZVByaXZhdGUtPnVzZUZpeGVkTGF5b3V0KCksICAgIC8qIHVzZSBmaXhlZCBsYXlvdXQgKi8K
KyAgICAgICAgU2Nyb2xsYmFyQWx3YXlzT2ZmLCAgICAgICAgICAgICAgICAgICAgLyogaG9yIG1v
ZGUgKi8KKyAgICAgICAgdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
bG9jayB0aGUgbW9kZSAqLworICAgICAgICBTY3JvbGxiYXJBbHdheXNPZmYsICAgICAgICAgICAg
ICAgICAgICAvKiB2ZXIgbW9kZSAqLworICAgICAgICB0cnVlKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBsb2NrIHRoZSBtb2RlICovCiAKICAgICBpZiAoaXNNYWluRnJhbWUo
KSAmJiBtX3dlYlBhZ2VQcml2YXRlLT5iYWNraW5nU3RvcmVDbGllbnQoKSkgewogICAgICAgICAv
LyBGSVhNRTogRG8gd2UgcmVhbGx5IG5lZWQgdG8gc3VzcGVuZC9yZXN1bWUgYm90aCBiYWNraW5n
c3RvcmUgYW5kIHNjcmVlbiBoZXJlPwpAQCAtNjAxLDcgKzYwNCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogCiAgICAgLy8gUHJv
Y2VzcyBkb2N1bWVudCBtZXRhZGF0YS4KICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVMaXN0ID0g
aGVhZEVsZW1lbnQtPmdldEVsZW1lbnRzQnlUYWdOYW1lKEhUTUxOYW1lczo6bWV0YVRhZy5sb2Nh
bE5hbWUoKSk7Ci0gICAgdW5zaWduZWQgaW50IHNpemUgPSBub2RlTGlzdC0+bGVuZ3RoKCk7Cisg
ICAgdW5zaWduZWQgc2l6ZSA9IG5vZGVMaXN0LT5sZW5ndGgoKTsKICAgICBTY29wZUFycmF5PEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpTdHJpbmc+IGhlYWRlcnM7CiAKICAgICAvLyBUaGlzIG1heSBh
bGxvY2F0ZSBtb3JlIHNwYWNlIHRoYW4gbmVlZGVkIHNpbmNlIG5vdCBhbGwgbWV0YSBlbGVtZW50
cyB3aWxsIGJlIGh0dHAtZXF1aXYuCkBAIC02OTcsNyArNzAwLDcgQEAgdm9pZCBGcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUUKICAgICAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+c2V0TG9hZFN0YXRlKFdlYlBhZ2VQ
cml2YXRlOjpGYWlsZWQpOwogCiAgICAgICAgIGlmIChlcnJvci5kb21haW4oKSA9PSBSZXNvdXJj
ZUVycm9yOjpwbGF0Zm9ybUVycm9yRG9tYWluCi0gICAgICAgICAgICAgICAgJiYgKGVycm9yLmVy
cm9yQ29kZSgpID09IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c0Vy
cm9yQWxyZWFkeUhhbmRsZWQpKSB7CisgICAgICAgICAgICAmJiAoZXJyb3IuZXJyb3JDb2RlKCkg
PT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzRXJyb3JBbHJlYWR5
SGFuZGxlZCkpIHsKICAgICAgICAgICAgIC8vIEVycm9yIGhhcyBhbHJlYWR5IGJlZW4gZGlzcGxh
eWVkIGJ5IGNsaWVudC4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtOTc4LDcg
Kzk4MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZXRhY2hlZEZyb21Q
YXJlbnQyKCkKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+bm90aWZ5RnJhbWVEZXRh
Y2hlZChtX2ZyYW1lKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRp
c3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIsIGxvbmcgdW5z
aWduZWQgaW50LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0KERvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIsIGxvbmcgdW5zaWduZWQsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCiB7CiAgICAgLy8gSWYg
dGhlIHJlcXVlc3QgaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBwcm92aXNpb25hbCBkb2N1bWVudCBs
b2FkZXIsIHRoZW4KICAgICAvLyBpdCBpcyBhIG5ldyB0b3AgbGV2ZWwgcmVxdWVzdCB3aGljaCBo
YXMgbm90IGJlZW4gY29tbWl0ZWQuCkBAIC0xMTUyLDkgKzExNTUsOSBAQCBQb2xpY3lBY3Rpb24g
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkZWNpZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQo
Y29uc3QgUmVzbwogI2VuZGlmCiAKICAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0
aW5ncy0+YXJlTGlua3NIYW5kbGVkRXh0ZXJuYWxseSgpCi0gICAgICAgICAgICAmJiBpc01haW5G
cmFtZSgpCi0gICAgICAgICAgICAmJiAhcmVxdWVzdC5tdXN0SGFuZGxlSW50ZXJuYWxseSgpCi0g
ICAgICAgICAgICAmJiAhaXNGcmFnbWVudFNjcm9sbCkgeworICAgICAgICAmJiBpc01haW5GcmFt
ZSgpCisgICAgICAgICYmICFyZXF1ZXN0Lm11c3RIYW5kbGVJbnRlcm5hbGx5KCkKKyAgICAgICAg
JiYgIWlzRnJhZ21lbnRTY3JvbGwpIHsKICAgICAgICAgTmV0d29ya1JlcXVlc3QgcGxhdGZvcm1S
ZXF1ZXN0OwogICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZv
cm1SZXF1ZXN0LCBjb29raWVzRW5hYmxlZCgpKTsKICAgICAgICAgaWYgKHBsYXRmb3JtUmVxdWVz
dC5nZXRUYXJnZXRUeXBlKCkgPT0gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzVW5rbm93bikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMjJhNzY0
Li5kM2I2ZWExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMTItMDYgIFhpYW9ibyBXYW5nICA8eGJ3YW5nQHRv
cmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gRFJUIC0gVXBkYXRlIGlt
cGxlbWVudGF0aW9uIG9mIFRlc3RSdW5uZXIuc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MjQzCisKKyAg
ICAgICAgUklNIFBSIDI1OTMzNworCisgICAgICAgIFJldmlld2VkIGJ5IFJvYiBCdWlzLgorCisg
ICAgICAgIDEuIEltcGxlbWVudCBjYWxjdWxhdGlvbiBvZiBuYXZpZ2F0aW9uIG9yaWdpbmF0aW5n
IGluCisgICAgICAgIGRpZERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKS4KKyAgICAg
ICAgMi4gSW1wbGVtZW50IHBvbGljeSBkZWxlZ2F0ZSBmb3IgcmVzb3VyY2UgcmVzcG9uc2UuCisg
ICAgICAgIDMuIEVuYWJsZSBjdXN0b21Qb2xpY3lEZWxlZ2F0ZSBpZiB3YWl0Rm9yUG9saWN5RGVs
ZWdhdGUoKSBpcyBjYWxsZWQuCisgICAgICAgIDQuIE1pbm9yIG9wdGlvbmFsIHVwZGF0ZXMgaW4g
ZHVtcCgpIGFuZCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkuCisKKyAgICAgICAgVGhlIHBhdGNo
IGZpeGVkIHRoZSBmb2xsb3dpbmcgdGVzdHM6CisgICAgICAgIC0gaHR0cC90ZXN0cy9kb3dubG9h
ZAorICAgICAgICAtIGZhc3QvZm9ybXMvbWFpbHRvL2Zvcm1lbmN0eXBlLWF0dHJpYnV0ZS1idXR0
b24taHRtbC5odG1sCisgICAgICAgIC0gZmFzdC9mb3Jtcy9tYWlsdG8vZm9ybWVuY3R5cGUtYXR0
cmlidXRlLWlucHV0LWh0bWwuaHRtbAorICAgICAgICAtIGZhc3QvZW5jb2RpbmcvbWFpbHRvLWFs
d2F5cy11dGYtOC5odG1sCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1
bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRl
clRyZWU6OkR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVt
cFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmR1bXApOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6ZGlkRmluaXNoTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmRpZERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpEdW1wUmVuZGVyVHJlZTo6ZGlkRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6c2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVC
bGFja0JlcnJ5Lmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSk6CisgICAgICAgIChUZXN0UnVubmVy
Ojp3YWl0Rm9yUG9saWN5RGVsZWdhdGUpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6b3ZlcnJpZGVQ
cmVmZXJlbmNlKToKKwogMjAxMi0xMi0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNjc4NCBh
bmQgcjEzNjgwMi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
RHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1w
UmVuZGVyVHJlZS5jcHAKaW5kZXggYmY2ZGM3Yy4uZDQ2YjNjNCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTM3LDkgKzM3
LDEzIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkZyYW1lVHJl
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAj
aW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIk1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCkBAIC0xNjMsNiAr
MTY3LDcgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKEJsYWNrQmVycnk6OldlYktp
dDo6V2ViUGFnZSogcGFnZSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIodGhpcywg
JkR1bXBSZW5kZXJUcmVlOjp3YWl0VG9EdW1wV2F0Y2hkb2dUaW1lckZpcmVkKQogICAgICwgbV93
b3JrVGltZXIodGhpcywgJkR1bXBSZW5kZXJUcmVlOjpwcm9jZXNzV29yaykKICAgICAsIG1fYWNj
ZXB0c0VkaXRpbmcodHJ1ZSkKKyAgICAsIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkKGZhbHNlKQog
ewogICAgIGNvbnN0IGNoYXIqIHdvcmtlck51bWJlciA9IGdldGVudigiV09SS0VSX05VTUJFUiIp
ID8gZ2V0ZW52KCJXT1JLRVJfTlVNQkVSIikgOiAiMCI7CiAgICAgU3RyaW5nIHNkY2FyZFBhdGgg
PSBTRENBUkRfUEFUSDsKQEAgLTI3MSw3ICsyNzYsOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVybCwgY29u
cwogICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxzZTsK
ICAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLQorICAgIG1f
cG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7CisgICAgd2FpdEZvclBvbGljeSA9IGZhbHNl
OwogICAgIHRlc3REb25lID0gZmFsc2U7CiAgICAgV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y2xlYXIo
KTsKICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4oZmFsc2UpOwpAQCAtNTIzLDkg
KzUyOSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OmR1bXAoKQogICAgIGR1bXBUb0ZpbGUocmVz
dWx0KTsKIAogICAgIGlmICghcnVuRnJvbUNvbW1hbmRMaW5lKSB7Ci0gICAgICAgIC8vIHNpZ25h
bCBlbmQgb2YgdGV4dCBibG9jawotICAgICAgICBmcHV0cygiI0VPRlxuIiwgc3Rkb3V0KTsKLQog
ICAgICAgICAvLyBUaGVyZSBhcmUgdHdvIHNjZW5hcmlvcyBmb3IgZHVtcGluZyBwaXhlbHM6CiAg
ICAgICAgIC8vIDEuIFdoZW4gdGhlIHRlc3QgY2FzZSBleHBsaWNpdGx5IGFza3MgZm9yIGl0IGJ5
IGNhbGxpbmcgZHVtcEFzVGV4dCh0cnVlKSB3aXRoIHRoYXQgZXh0cmEgdHJ1ZSBwYXNzZWQgYXMg
YSBwYXJhbWV0ZXIgdmFsdWUsIGZyb20gSmF2YVNjcmlwdAogICAgICAgICBib29sIGV4cGxpY2l0
UGl4ZWxSZXN1bHRzID0gZ1Rlc3RSdW5uZXItPmR1bXBBc1RleHQoKSAmJiBnVGVzdFJ1bm5lci0+
Z2VuZXJhdGVQaXhlbFJlc3VsdHMoKTsKQEAgLTUzNCw4ICs1MzcsMTEgQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZTo6ZHVtcCgpCiAKICAgICAgICAgLy8gQnV0IG9ubHkgaWYgbV9lbmFibGVQaXhlbFRl
c3RzIGlzIHNldCwgdG8gc2F5IHRoYXQgdGhlIHVzZXIgd2FudHMgdG8gcnVuIHBpeGVsIHRlc3Rz
IGF0IGFsbC4KICAgICAgICAgYm9vbCBnZW5lcmF0ZVBpeGVsUmVzdWx0cyA9IG1fZW5hYmxlUGl4
ZWxUZXN0cyAmJiAoZXhwbGljaXRQaXhlbFJlc3VsdHMgfHwgaW1wbGljaXRQaXhlbFJlc3VsdHMp
OwotICAgICAgICBpZiAoZ2VuZXJhdGVQaXhlbFJlc3VsdHMpCisgICAgICAgIGlmIChnZW5lcmF0
ZVBpeGVsUmVzdWx0cykgeworICAgICAgICAgICAgLy8gc2lnbmFsIGVuZCBvZiB0ZXh0IGJsb2Nr
CisgICAgICAgICAgICBmcHV0cygiI0VPRlxuIiwgc3Rkb3V0KTsKICAgICAgICAgICAgIGR1bXBX
ZWJWaWV3QXNQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKGdUZXN0UnVubmVyLT5leHBlY3Rl
ZFBpeGVsSGFzaCgpKTsKKyAgICAgICAgfQogCiAgICAgICAgIFN0cmluZyBjcmFzaEZpbGUgPSBk
dW1wRmlsZSArICIuY3Jhc2giOwogICAgICAgICB1bmxpbmsoY3Jhc2hGaWxlLnV0ZjgoKS5kYXRh
KCkpOwpAQCAtNjMwLDkgKzYzNiwxMCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpkaWRGaW5pc2hM
b2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogICAgIGlmICghdGVzdERvbmUgJiYg
Z1Rlc3RSdW5uZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKICAgICAgICAgcHJpbnRmKCIl
cyAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZVxuIiwgZHJ0RnJhbWVEZXNjcmlwdGlvbihmcmFtZSku
dXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoZnJhbWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAg
IGlmIChmcmFtZSA9PSB0b3BMb2FkaW5nRnJhbWUpIHsKICAgICAgICAgbV9sb2FkRmluaXNoZWQg
PSB0cnVlOwotICAgIGxvY2F0aW9uQ2hhbmdlRm9yRnJhbWUoZnJhbWUpOworICAgICAgICBsb2Nh
dGlvbkNoYW5nZUZvckZyYW1lKGZyYW1lKTsKKyAgICB9CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRy
ZWU6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkK
QEAgLTgzMSw5ICs4MzgsOSBAQCBib29sIER1bXBSZW5kZXJUcmVlOjpzaG91bGRJbnNlcnRUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgV2ViQ29yZTo6UmFuZ2UqIHJhbmdlLAogICAgIHJldHVybiBt
X2FjY2VwdHNFZGl0aW5nOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlOjpkaWREZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mIGFj
dGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBEdW1w
UmVuZGVyVHJlZTo6ZGlkRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogewotICAgIGlmICghd2FpdEZv
clBvbGljeSkKKyAgICBpZiAodGVzdERvbmUgfHwgIW1fcG9saWN5RGVsZWdhdGVFbmFibGVkKQog
ICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBjaGFyKiB0eXBlRGVzY3JpcHRpb247CkBAIC04
NjAsMTAgKzg2NywzNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpkaWREZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpbwogICAgICAgICB0eXBlRGVz
Y3JpcHRpb24gPSAiaWxsZWdhbCB2YWx1ZSI7CiAgICAgfQogCi0gICAgcHJpbnRmKCJQb2xpY3kg
ZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCAlcyB3aXRoIG5hdmlnYXRpb24gdHlwZSAnJXMnXG4i
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHR5cGVEZXNjcmlwdGlvbik7
Ci0gICAgLy8gRklYTUU6IGRvIG9yaWdpbmF0aW5nIHBhcnQuCisgICAgYm9vbCBzaG91bGRXYWl0
Rm9yUmVzcG9uc2UgPSAhcmVxdWVzdC51cmwoKS5zdHJpbmcoKS5zdGFydHNXaXRoKCJtYWlsdG86
Iik7CisgICAgcHJpbnRmKCJQb2xpY3kgZGVsZWdhdGU6IGF0dGVtcHQgdG8gbG9hZCAlcyB3aXRo
IG5hdmlnYXRpb24gdHlwZSAnJXMnIiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCB0eXBlRGVzY3JpcHRpb24pOworICAgIC8vIE9yaWdpbmF0aW5nIHBhcnQsIGJvcnJvd2Vk
IGZyb20gQ2hyb21pdW0uCisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG5vZGU7CisgICAgZm9y
IChjb25zdCBXZWJDb3JlOjpFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsgZXZlbnQ7IGV2
ZW50ID0gZXZlbnQtPnVuZGVybHlpbmdFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNN
b3VzZUV2ZW50KCkpIHsKKyAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6Ok1vdXNlRXZlbnQqIG1v
dXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpNb3VzZUV2ZW50Kj4oZXZlbnQp
OworICAgICAgICAgICAgbm9kZSA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGl0VGVzdFJlc3Vs
dEF0UG9pbnQobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBmYWxzZSkuaW5uZXJOb25T
aGFyZWROb2RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBp
ZiAobm9kZS5nZXQoKSkKKyAgICAgICAgcHJpbnRmKCIgb3JpZ2luYXRpbmcgZnJvbSAlc1xuIiwg
ZHJ0RHVtcFBhdGgobm9kZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CisgICAgZWxzZQorICAgICAg
ICBwcmludGYoIlxuIik7CiAKLSAgICBnVGVzdFJ1bm5lci0+bm90aWZ5RG9uZSgpOworICAgIGlm
ICh3YWl0Rm9yUG9saWN5ICYmICFzaG91bGRXYWl0Rm9yUmVzcG9uc2UpCisgICAgICAgIGdUZXN0
UnVubmVyLT5ub3RpZnlEb25lKCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWU6OmRpZERlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQoreworICAgIGlmICghdGVzdERvbmUgJiYgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQpIHsK
KyAgICAgICAgaWYgKFdlYkNvcmU6OmNvbnRlbnREaXNwb3NpdGlvblR5cGUocmVzcG9uc2UuaHR0
cEhlYWRlckZpZWxkKCJDb250ZW50LURpc3Bvc2l0aW9uIikpID09IFdlYkNvcmU6OkNvbnRlbnRE
aXNwb3NpdGlvbkF0dGFjaG1lbnQpCisgICAgICAgICAgICBwcmludGYoIlBvbGljeSBkZWxlZ2F0
ZTogcmVzb3VyY2UgaXMgYW4gYXR0YWNobWVudCwgc3VnZ2VzdGVkIGZpbGUgbmFtZSAnJXMnXG4i
LCByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBp
ZiAod2FpdEZvclBvbGljeSkKKyAgICAgICAgICAgIGdUZXN0UnVubmVyLT5ub3RpZnlEb25lKCk7
CisgICAgfQogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlOjpkaWREaXNwYXRjaFdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoKQpAQCAtODk4LDYgKzkyOSwxMSBAQCBib29sIER1bXBSZW5kZXJUcmVl
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYg
Y3JlZAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlOjpzZXRDdXN0
b21Qb2xpY3lEZWxlZ2F0ZShib29sIHNldERlbGVnYXRlLCBib29sIHBlcm1pc3NpdmUpCit7Cisg
ICAgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgPSBzZXREZWxlZ2F0ZTsKKyAgICBVTlVTRURfUEFS
QU0ocGVybWlzc2l2ZSk7Cit9CiB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCmluZGV4IGRhY2Ex
MTIuLmExM2FmYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
RHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaApAQCAtNzEsNyArNzEsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZSopOwogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKFdlYkNvcmU6OkRPTVdy
YXBwZXJXb3JsZCosIEpTR2xvYmFsQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0
KTsKICAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKGNvbnN0IFN0cmluZyYgdGl0bGUs
IFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgdm9pZCBkaWREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBkaWREZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9p
ZCBkaWREaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoKTsKICAgICB2b2lkIGRpZEhh
bmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKQEAgLTEwNyw2ICsxMDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENsaWVudCBt
ZXRob2QKICAgICB2aXJ0dWFsIHZvaWQgYWRkVGVzdChjb25zdCBjaGFyKiB0ZXN0RmlsZSk7Cisg
ICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIHNldERlbGVnYXRlLCBib29sIHBl
cm1pc3NpdmUpOwogcHJpdmF0ZToKICAgICB2b2lkIHJ1blRlc3QoY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgaW1hZ2VIYXNoKTsKICAgICB2b2lkIHJ1blRlc3RzKCk7CkBAIC0xNDcs
NiArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWNjZXB0c0VkaXRpbmc7CiAgICAgYm9v
bCBtX2xvYWRGaW5pc2hlZDsKICAgICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ7CisgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZDsKIH07CiB9CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJC
bGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5l
ckJsYWNrQmVycnkuY3BwCmluZGV4IGVhOWI0ZTcuLjZlZWFjMzggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3Bw
CkBAIC0xOTEsOSArMTkxLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRDYWNoZU1vZGVsKGludCkK
IAogdm9pZCBUZXN0UnVubmVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIHNldERlbGVn
YXRlLCBib29sIHBlcm1pc3NpdmUpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNldERlbGVnYXRlKTsK
LSAgICBVTlVTRURfUEFSQU0ocGVybWlzc2l2ZSk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoc2V0RGVsZWdhdGUsIHBlcm1pc3NpdmUpOwogfQogCiB2
b2lkIFRlc3RSdW5uZXI6OmNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbihPcGFxdWVKU1N0
cmluZyopCkBAIC0zMDIsNiArMzAwLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVT
aGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6d2FpdEZv
clBvbGljeURlbGVnYXRlKCkKIHsKKyAgICBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVlLCB0
cnVlKTsKICAgICBzZXRXYWl0VG9EdW1wKHRydWUpOwogICAgIHdhaXRGb3JQb2xpY3kgPSB0cnVl
OwogfQpAQCAtNDM5LDYgKzQzOCw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6b3ZlcnJpZGVQcmVmZXJl
bmNlKEpTU3RyaW5nUmVmIGtleSwgSlNTdHJpbmdSZWYgdmFsdWUpCiAgICAgICAgIG1haW5GcmFt
ZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQodmFsdWVT
dHIgPT0gInRydWUiIHx8IHZhbHVlU3RyID09ICIxIik7CiAgICAgZWxzZSBpZiAoa2V5U3RyID09
ICJXZWJTb2NrZXRzRW5hYmxlZCIpCiAgICAgICAgIEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJl
bmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPnNldFdlYlNv
Y2tldHNFbmFibGVkKHZhbHVlU3RyID09ICJ0cnVlIiB8fCB2YWx1ZVN0ciA9PSAiMSIpOworICAg
IGVsc2UgaWYgKGtleVN0ciA9PSAiV2ViS2l0RGVmYXVsdFRleHRFbmNvZGluZ05hbWUiKQorICAg
ICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2Uo
KS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZSh2YWx1ZVN0
cik7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QWx3YXlzQWNjZXB0Q29va2llcyhib29sIGFs
d2F5c0FjY2VwdENvb2tpZXMpCi0tIAoxLjcuNgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>