<?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>39671</bug_id>
          
          <creation_ts>2010-05-25 05:02:58 -0700</creation_ts>
          <short_desc>[BREWMP] Port SocketStream</short_desc>
          <delta_ts>2010-06-19 10:25:08 -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>Platform</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>
          
          <blocked>33564</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beergun</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joybro201</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>230224</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-25 05:02:58 -0700</bug_when>
    <thetext>Port SocketStream with BREW MP&apos;s ISocket interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230226</commentid>
    <comment_count>1</comment_count>
      <attachid>57010</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-25 05:10:44 -0700</bug_when>
    <thetext>Created attachment 57010
Patch

This patch followed the structure of Qt&apos;s SocketStream implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240368</commentid>
    <comment_count>2</comment_count>
      <attachid>57010</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-19 10:25:04 -0700</bug_when>
    <thetext>Comment on attachment 57010
Patch

Clearing flags on attachment: 57010

Committed r61496: &lt;http://trac.webkit.org/changeset/61496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240369</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-19 10:25:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57010</attachid>
            <date>2010-05-25 05:10:44 -0700</date>
            <delta_ts>2010-06-19 10:25:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>SocketStreamBrew.patch</filename>
            <type>text/plain</type>
            <size>17877</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDE1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDUtMjUgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbQlJFV01QXSBQb3J0IFNvY2tldFN0cmVhbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk2NzEKKworICAgICAgICBQb3J0IFNvY2tldFN0cmVhbSB3
aXRoIEJSRVcgTVAncyBJU29ja2V0IGludGVyZmFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvYnJldy9Tb2NrZXRTdHJlYW1FcnJvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNvY2tldFN0cmVhbUVycm9yOjpTb2NrZXRTdHJlYW1FcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9icmV3L1NvY2tldFN0cmVhbUhhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFtSGFuZGxlQnJldy5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6c29ja2V0U3RyZWFtQ29ubmVjdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OmdldEhvc3RCeU5hbWVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzb2NrZXRSZWFkYWJs
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtNYW5hZ2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OlNvY2tldFN0cmVhbUhhbmRsZVBy
aXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZTo6flNv
Y2tldFN0cmVhbUhhbmRsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFt
SGFuZGxlUHJpdmF0ZTo6c29ja2V0Q29ubmVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tl
dFN0cmVhbUhhbmRsZVByaXZhdGU6OnNvY2tldFJlYWR5UmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlOjpjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OnNlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U29j
a2V0U3RyZWFtSGFuZGxlUHJpdmF0ZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlUHJpdmF0ZTo6c29ja2V0Q2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNv
Y2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OnNvY2tldEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvY2tldFN0cmVhbUhhbmRsZTo6U29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6flNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU6OnBsYXRmb3JtU2VuZCk6CisgICAgICAgIChXZWJD
b3JlOjpTb2NrZXRTdHJlYW1IYW5kbGU6OnBsYXRmb3JtQ2xvc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpyZWNlaXZlZENyZWRlbnRp
YWwpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpyZWNlaXZlZFJlcXVl
c3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9icmV3L1NvY2tldFN0cmVhbUhhbmRsZVByaXZhdGUuaDogQWRkZWQuCisKIDIwMTAt
MDUtMjQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9icmV3L1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFtRXJyb3IuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9icmV3L1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvcl9oCisjZGVmaW5lIFNv
Y2tldFN0cmVhbUVycm9yX2gKKworI2luY2x1ZGUgIlNvY2tldFN0cmVhbUVycm9yQmFzZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNvY2tldFN0cmVhbUVycm9yIDogcHVibGlj
IFNvY2tldFN0cmVhbUVycm9yQmFzZSB7CitwdWJsaWM6CisgICAgU29ja2V0U3RyZWFtRXJyb3Io
KSB7IH0KKyAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQorICAg
ICAgICA6IFNvY2tldFN0cmVhbUVycm9yQmFzZShlcnJvckNvZGUpCisgICAgeworICAgIH0KKwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU29ja2V0U3RyZWFtRXJy
b3JfaApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFtSGFu
ZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JyZXcvU29ja2V0
U3RyZWFtSGFuZGxlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YnJldy9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTb2NrZXRTdHJlYW1IYW5kbGVfaAorI2RlZmluZSBTb2NrZXRTdHJlYW1IYW5kbGVfaAor
CisjaW5jbHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIgorCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOworY2xhc3MgQ3JlZGVudGlh
bDsKK2NsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKK2NsYXNzIFNvY2tldFN0cmVhbUhh
bmRsZVByaXZhdGU7CisKK2NsYXNzIFNvY2tldFN0cmVhbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNvY2tldFN0cmVhbUhhbmRsZT4sIHB1YmxpYyBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IGNyZWF0
ZShjb25zdCBLVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCogY2xpZW50KSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU29ja2V0U3RyZWFtSGFuZGxlKHVybCwgY2xpZW50KSk7IH0KKwor
ICAgIHZpcnR1YWwgflNvY2tldFN0cmVhbUhhbmRsZSgpOworCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCBpbnQgcGxhdGZvcm1TZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOworICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNsb3NlKCk7CisKK3ByaXZhdGU6CisgICAgU29ja2V0U3Ry
ZWFtSGFuZGxlKGNvbnN0IEtVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQqKTsKKworICAg
IC8vIE5vIGF1dGhlbnRpY2F0aW9uIGZvciBzdHJlYW1zIHBlciBzZSwgYnV0IHByb3h5IG1heSBh
c2sgZm9yIGNyZWRlbnRpYWxzLgorICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgdm9pZCByZWNlaXZl
ZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CisgICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRp
YWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2b2lkIHJlY2VpdmVkQ2Fu
Y2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisKKyAgICBTb2NrZXRT
dHJlYW1IYW5kbGVQcml2YXRlKiBtX3A7CisgICAgZnJpZW5kIGNsYXNzIFNvY2tldFN0cmVhbUhh
bmRsZVByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBT
b2NrZXRTdHJlYW1IYW5kbGVfaApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JyZXcv
U29ja2V0U3RyZWFtSGFuZGxlQnJldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFtSGFuZGxlQnJldy5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYnJldy9Tb2NrZXRTdHJlYW1IYW5kbGVCcmV3LmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlLmgiCisKKyNpbmNsdWRlICJLVVJMLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgiCisjaW5jbHVkZSAiU29ja2V0U3RyZWFtSGFu
ZGxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvYnJl
dy9TaGVsbEJyZXcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIHZvaWQgc29ja2V0U3RyZWFtQ29ubmVjdENhbGxiYWNrKHZv
aWQqIHVzZXIsIGludCBuRXJyb3IpCit7CisgICAgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZSog
cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZSo+KHVzZXIpOwor
CisgICAgaWYgKG5FcnJvciAhPSBBRUVfTkVUX1NVQ0NFU1MpIHsKKyAgICAgICAgcC0+c29ja2V0
RXJyb3IobkVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHAtPnNvY2tldENv
bm5lY3RlZCgpOworfQorCitzdGF0aWMgdm9pZCBnZXRIb3N0QnlOYW1lQ2FsbGJhY2sodm9pZCog
dXNlcikKK3sKKyAgICBTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlKiBwID0gcmVpbnRlcnByZXRf
Y2FzdDxTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlKj4odXNlcik7CisKKyAgICBpZiAocC0+bV9k
bnMublJlc3VsdCA8IDEgfHwgcC0+bV9kbnMublJlc3VsdCA+IEFFRUROU01BWEFERFJTKSB7Cisg
ICAgICAgIHAtPnNvY2tldEVycm9yKHAtPm1fZG5zLm5SZXN1bHQpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgcC0+Y29ubmVjdCgpOworfQorCitzdGF0aWMgdm9pZCBzb2NrZXRSZWFk
YWJsZUNhbGxiYWNrKHZvaWQqIHVzZXIpCit7CisgICAgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0
ZSogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZSo+KHVzZXIp
OworICAgIHAtPnNvY2tldFJlYWR5UmVhZCgpOworfQorCitzdGF0aWMgSU5ldE1nciogbmV0d29y
a01hbmFnZXIoKQoreworICAgIHN0YXRpYyBJTmV0TWdyKiBzX25ldE1ncjsKKworICAgIGlmICgh
c19uZXRNZ3IpIHsKKyAgICAgICAgSVNoZWxsKiBzaGVsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8QUVF
QXBwbGV0Kj4oR0VUQVBQSU5TVEFOQ0UoKSktPm1fcElTaGVsbDsKKyAgICAgICAgSVNIRUxMX0Ny
ZWF0ZUluc3RhbmNlKHNoZWxsLCBBRUVDTFNJRF9ORVQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoq
Pigmc19uZXRNZ3IpKTsKKyAgICAgICAgQVNTRVJUKHNfbmV0TWdyKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gc19uZXRNZ3I7Cit9CisKK1NvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OlNvY2tldFN0
cmVhbUhhbmRsZVByaXZhdGUoU29ja2V0U3RyZWFtSGFuZGxlKiBzdHJlYW1IYW5kbGUsIGNvbnN0
IEtVUkwmIHVybCkKK3sKKyAgICBtX3N0cmVhbUhhbmRsZSA9IHN0cmVhbUhhbmRsZTsKKyAgICBt
X2lzU2VjdXJlID0gdXJsLnByb3RvY29sSXMoIndzcyIpOworCisgICAgbV9zb2NrZXQuc2V0KElO
RVRNR1JfT3BlblNvY2tldChuZXR3b3JrTWFuYWdlcigpLCBBRUVfU09DS19TVFJFQU0pKTsKKyAg
ICBpZiAoIW1fc29ja2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9pc1NlY3VyZSkK
KyAgICAgICAgbV9zc2wgPSBjcmVhdGVJbnN0YW5jZTxJU1NMPihBRUVDTFNJRF9TU0wpOworCisg
ICAgbV9wb3J0ID0gdXJsLmhhc1BvcnQoKSA/IHVybC5wb3J0KCkgOiAobV9pc1NlY3VyZSA/IDQ0
MyA6IDgwKTsKKworICAgIENBTExCQUNLX0luaXQoJm1fZG5zQ2FsbGJhY2ssIGdldEhvc3RCeU5h
bWVDYWxsYmFjaywgdGhpcyk7CisgICAgbV9kbnNDYWxsYmFjay5wZm5DYW5jZWwgPSAwOworCisg
ICAgSU5FVE1HUl9HZXRIb3N0QnlOYW1lKG5ldHdvcmtNYW5hZ2VyKCksICZtX2RucywgdXJsLmhv
c3QoKS5sYXRpbjEoKS5kYXRhKCksICZtX2Ruc0NhbGxiYWNrKTsKK30KKworU29ja2V0U3RyZWFt
SGFuZGxlUHJpdmF0ZTo6flNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGUoKQoreworfQorCit2b2lk
IFNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6OnNvY2tldENvbm5lY3RlZCgpCit7CisgICAgaWYg
KG1fc3RyZWFtSGFuZGxlICYmIG1fc3RyZWFtSGFuZGxlLT5jbGllbnQoKSkgeworICAgICAgICBt
X3N0cmVhbUhhbmRsZS0+bV9zdGF0ZSA9IFNvY2tldFN0cmVhbUhhbmRsZUJhc2U6Ok9wZW47Cisg
ICAgICAgIG1fc3RyZWFtSGFuZGxlLT5jbGllbnQoKS0+ZGlkT3BlbihtX3N0cmVhbUhhbmRsZSk7
CisgICAgfQorCisgICAgSVNPQ0tFVF9SZWFkYWJsZShtX3NvY2tldC5nZXQoKSwgc29ja2V0UmVh
ZGFibGVDYWxsYmFjaywgdGhpcyk7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0
ZTo6c29ja2V0UmVhZHlSZWFkKCkKK3sKKyAgICBpZiAobV9zdHJlYW1IYW5kbGUgJiYgbV9zdHJl
YW1IYW5kbGUtPmNsaWVudCgpKSB7CisgICAgICAgIFZlY3RvcjxjaGFyPiBidWZmZXIoMTAyNCk7
CisKKyAgICAgICAgaW50IHJlYWRTaXplID0gSVNPQ0tFVF9SZWFkKG1fc29ja2V0LmdldCgpLCBi
dWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgaWYgKHJlYWRTaXplID09IEFF
RV9ORVRfRVJST1IpIHsKKyAgICAgICAgICAgIHNvY2tldEVycm9yKElTT0NLRVRfR2V0TGFzdEVy
cm9yKG1fc29ja2V0LmdldCgpKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBtX3N0cmVhbUhhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVEYXRhKG1fc3RyZWFt
SGFuZGxlLCBidWZmZXIuZGF0YSgpLCByZWFkU2l6ZSk7CisgICAgfQorCisgICAgSVNPQ0tFVF9S
ZWFkYWJsZShtX3NvY2tldC5nZXQoKSwgc29ja2V0UmVhZGFibGVDYWxsYmFjaywgdGhpcyk7Cit9
CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZTo6Y29ubmVjdCgpCit7CisgICAgSVNP
Q0tFVF9Db25uZWN0KG1fc29ja2V0LmdldCgpLCBtX2Rucy5hZGRyc1swXSwgSFRPTlMobV9wb3J0
KSwgc29ja2V0U3RyZWFtQ29ubmVjdENhbGxiYWNrLCB0aGlzKTsKK30KKworaW50IFNvY2tldFN0
cmVhbUhhbmRsZVByaXZhdGU6OnNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKK3sKKyAg
ICBpZiAoIW1fc29ja2V0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGludCBzZW50U2l6ZSA9
IElTT0NLRVRfV3JpdGUobV9zb2NrZXQuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KGNv
bnN0X2Nhc3Q8Y2hhcio+KGRhdGEpKSwgbGVuKTsKKyAgICBpZiAoc2VudFNpemUgPT0gQUVFX05F
VF9FUlJPUikgeworICAgICAgICBzb2NrZXRFcnJvcihJU09DS0VUX0dldExhc3RFcnJvcihtX3Nv
Y2tldC5nZXQoKSkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gc2Vu
dFNpemU7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZTo6Y2xvc2UoKQorewor
ICAgIG1fc29ja2V0LmNsZWFyKCk7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0
ZTo6c29ja2V0Q2xvc2VkKCkKK3sKKyAgICBpZiAobV9zdHJlYW1IYW5kbGUgJiYgbV9zdHJlYW1I
YW5kbGUtPmNsaWVudCgpKSB7CisgICAgICAgIFNvY2tldFN0cmVhbUhhbmRsZSogc3RyZWFtSGFu
ZGxlID0gbV9zdHJlYW1IYW5kbGU7CisgICAgICAgIG1fc3RyZWFtSGFuZGxlID0gMDsKKyAgICAg
ICAgLy8gVGhpcyBmb2xsb3dpbmcgY2FsbCBkZWxldGVzIF90aGlzXy4gTm90aGluZyBzaG91bGQg
YmUgYWZ0ZXIgaXQuCisgICAgICAgIHN0cmVhbUhhbmRsZS0+Y2xpZW50KCktPmRpZENsb3NlKHN0
cmVhbUhhbmRsZSk7CisgICAgfQorfQorCit2b2lkIFNvY2tldFN0cmVhbUhhbmRsZVByaXZhdGU6
OnNvY2tldEVycm9yKGludCBlcnJvcikKK3sKKyAgICAvLyBGSVhNRSAtIGluIHRoZSBmdXR1cmUs
IHdlIG1pZ2h0IG5vdCB3YW50IHRvIHRyZWF0IGFsbCBlcnJvcnMgYXMgZmF0YWwuCisgICAgaWYg
KG1fc3RyZWFtSGFuZGxlICYmIG1fc3RyZWFtSGFuZGxlLT5jbGllbnQoKSkgeworICAgICAgICBT
b2NrZXRTdHJlYW1IYW5kbGUqIHN0cmVhbUhhbmRsZSA9IG1fc3RyZWFtSGFuZGxlOworICAgICAg
ICBtX3N0cmVhbUhhbmRsZSA9IDA7CisgICAgICAgIC8vIFRoaXMgZm9sbG93aW5nIGNhbGwgZGVs
ZXRlcyBfdGhpc18uIE5vdGhpbmcgc2hvdWxkIGJlIGFmdGVyIGl0LgorICAgICAgICBzdHJlYW1I
YW5kbGUtPmNsaWVudCgpLT5kaWRDbG9zZShzdHJlYW1IYW5kbGUpOworICAgIH0KK30KKworU29j
a2V0U3RyZWFtSGFuZGxlOjpTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgS1VSTCYgdXJsLCBTb2Nr
ZXRTdHJlYW1IYW5kbGVDbGllbnQqIGNsaWVudCkKKyAgICA6IFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UodXJsLCBjbGllbnQpCit7CisgICAgTE9HKE5ldHdvcmssICJTb2NrZXRTdHJlYW1IYW5kbGUg
JXAgbmV3IGNsaWVudCAlcCIsIHRoaXMsIG1fY2xpZW50KTsKKyAgICBtX3AgPSBuZXcgU29ja2V0
U3RyZWFtSGFuZGxlUHJpdmF0ZSh0aGlzLCB1cmwpOworfQorCitTb2NrZXRTdHJlYW1IYW5kbGU6
On5Tb2NrZXRTdHJlYW1IYW5kbGUoKQoreworICAgIExPRyhOZXR3b3JrLCAiU29ja2V0U3RyZWFt
SGFuZGxlICVwIGRlbGV0ZSIsIHRoaXMpOworICAgIHNldENsaWVudCgwKTsKKyAgICBkZWxldGUg
bV9wOworfQorCitpbnQgU29ja2V0U3RyZWFtSGFuZGxlOjpwbGF0Zm9ybVNlbmQoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbikKK3sKKyAgICBMT0coTmV0d29yaywgIlNvY2tldFN0cmVhbUhhbmRs
ZSAlcCBwbGF0Zm9ybVNlbmQiLCB0aGlzKTsKKyAgICByZXR1cm4gbV9wLT5zZW5kKGRhdGEsIGxl
bik7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpwbGF0Zm9ybUNsb3NlKCkKK3sKKyAg
ICBMT0coTmV0d29yaywgIlNvY2tldFN0cmVhbUhhbmRsZSAlcCBwbGF0Zm9ybUNsb3NlIiwgdGhp
cyk7CisgICAgbV9wLT5jbG9zZSgpOworfQorCit2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFNvY2tldFN0cmVhbUhh
bmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
Y29uc3QgQ3JlZGVudGlhbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBT
b2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVu
dGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvYnJldy9Tb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JyZXcvU29ja2V0U3RyZWFt
SGFuZGxlUHJpdmF0ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIENvbXBhbnkgMTAwLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlX2gKKyNkZWZpbmUgU29ja2V0U3RyZWFtSGFuZGxl
UHJpdmF0ZV9oCisKKyNpbmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmgiCisKKyNpbmNs
dWRlIDxBRUVOZXQuaD4KKyNpbmNsdWRlIDxBRUVTU0wuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50OworCitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlIHsKK3B1YmxpYzoKKyAgICBT
b2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlKFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEtVUkwm
KTsKKyAgICB+U29ja2V0U3RyZWFtSGFuZGxlUHJpdmF0ZSgpOworCisgICAgdm9pZCBzb2NrZXRD
b25uZWN0ZWQoKTsKKyAgICB2b2lkIHNvY2tldFJlYWR5UmVhZCgpOworICAgIHZvaWQgc29ja2V0
Q2xvc2VkKCk7CisgICAgdm9pZCBzb2NrZXRFcnJvcihpbnQpOworCisgICAgdm9pZCBjb25uZWN0
KCk7CisgICAgaW50IHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbik7CisgICAgdm9pZCBj
bG9zZSgpOworCisgICAgQUVFRE5TUmVzdWx0IG1fZG5zOworICAgIEFFRUNhbGxiYWNrIG1fZG5z
Q2FsbGJhY2s7CisgICAgdW5zaWduZWQgaW50IG1fcG9ydDsKKyAgICBib29sIG1faXNTZWN1cmU7
CisKKyAgICBPd25QdHI8SVNvY2tldD4gbV9zb2NrZXQ7CisgICAgT3duUHRyPElTU0w+IG1fc3Ns
OworICAgIFNvY2tldFN0cmVhbUhhbmRsZSogbV9zdHJlYW1IYW5kbGU7Cit9OworCit9CisKKyNl
bmRpZiAvLyBTb2NrZXRTdHJlYW1IYW5kbGVQcml2YXRlX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>