<?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>125471</bug_id>
          
          <creation_ts>2013-12-09 15:50:42 -0800</creation_ts>
          <short_desc>Begin working on a UserData class intended to replace UserMessageCoders</short_desc>
          <delta_ts>2013-12-09 16:08:31 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>958121</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-09 15:50:42 -0800</bug_when>
    <thetext>Begin working on a UserData class intended to replace UserMessageCoders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958123</commentid>
    <comment_count>1</comment_count>
      <attachid>218809</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-09 15:56:55 -0800</bug_when>
    <thetext>Created attachment 218809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958125</commentid>
    <comment_count>2</comment_count>
      <attachid>218809</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-09 16:01:39 -0800</bug_when>
    <thetext>Comment on attachment 218809
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=218809&amp;action=review

&gt; Source/WebKit2/Shared/APIFrameHandle.h:36
&gt; +    static PassRefPtr&lt;FrameHandle&gt; create(uint64_t frameID);

You said that RefPtr would be fine here.

&gt; Source/WebKit2/Shared/APIPageHandle.h:36
&gt; +    static PassRefPtr&lt;PageHandle&gt; create(uint64_t pageID);

RefPtr here please.

&gt; Source/WebKit2/Shared/UserData.cpp:60
&gt; +        encoder.encodeEnum(API::Object::Type::Null);

You don&apos;t deal with decoding this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958126</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-09 16:08:31 -0800</bug_when>
    <thetext>Committed r160341: &lt;http://trac.webkit.org/changeset/160341&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218809</attachid>
            <date>2013-12-09 15:56:55 -0800</date>
            <delta_ts>2013-12-09 16:01:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125471-20131209155654.patch</filename>
            <type>text/plain</type>
            <size>26553</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmZhMDkyMzRjNjQ3ZjNj
ZjdjODY5NDllMTg2OWNjOTFiYmNhYWZjZC4uNWY4ZjM0NThiMDQ1ZGIyNmY4MmY2NWIzMzQxZmMw
YTVmOWZkZWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTEyLTA5ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQmVnaW4gd29ya2lu
ZyBvbiBhIFVzZXJEYXRhIGNsYXNzIGludGVuZGVkIHRvIHJlcGxhY2UgVXNlck1lc3NhZ2VDb2Rl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTQ3
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL0FQSUZyYW1lSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSUZyYW1l
SGFuZGxlLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgQVBJOjpGcmFtZUhhbmRsZSBjbGFz
cyB0aGF0IHJlcHJlc2VudHMgYSBmcmFtZS4KKworICAgICAgICAqIFNoYXJlZC9BUElPYmplY3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvQVBJUGFnZUhhbmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAq
IFNoYXJlZC9BUElQYWdlSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICBBZGQgYSBuZXcgQVBJOjpQ
YWdlSGFuZGxlIGNsYXNzIHRoYXQgcmVwcmVzZW50cyBhIHBhZ2UuCisKKyAgICAgICAgKiBTaGFy
ZWQvVXNlckRhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlckRhdGE6OlVzZXJE
YXRhKToKKyAgICAgICAgKFdlYktpdDo6VXNlckRhdGE6On5Vc2VyRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEuaDogQWRkZWQuCisgICAgICAgIEFkZCBh
IFVzZXJEYXRhIGNsYXNzIHRoYXQgY2FuIGJlIGVuY29kZWQgYW5kIGRlY29kZWQuIFRoaXMgd2ls
bCBiZSB1c2VkIGZvciBzZW5kaW5nIGRhdGEKKyAgICAgICAgIGJldHdlZW4gdGhlIHdlYiBwcm9j
ZXNzIGFuZCBVSSBwcm9jZXNzIHdpdGhvdXQgZG9pbmcgYW55IG9mIHRoZSBQYWdlIC0+IEJ1bmRs
ZVBhZ2UgZXRjIGNvbnZlcnNpb25zLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAxMy0xMi0wOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBMYXlvdXRUZXN0cyBhcmUgYnJva2VuIGFmdGVy
IHIxNjAzMDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElGcmFtZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRnJhbWVIYW5kbGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIwNGIzMjgzZWM2ZWUwYWNjY2YwM2UxYjZiYzMwYzU0ZmU4M2UyMmEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRnJhbWVIYW5kbGUuY3BwCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVBJ
RnJhbWVIYW5kbGUuaCIKKworbmFtZXNwYWNlIEFQSSB7CisKK1Bhc3NSZWZQdHI8RnJhbWVIYW5k
bGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUodWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQpKTsKK30KKworRnJhbWVIYW5kbGU6OkZy
YW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKK3sK
K30KKworRnJhbWVIYW5kbGU6On5GcmFtZUhhbmRsZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUZyYW1lSGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRnJhbWVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDRm
NzQ0ZDllM2FhZDg0MjVjMjk1ZDY0OWM4ZjU0ODQ0YjRhYTE0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUZyYW1lSGFuZGxlLmgKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQVBJRnJhbWVIYW5kbGVfaAorI2RlZmluZSBBUElGcmFtZUhh
bmRsZV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorCituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgRnJhbWVIYW5kbGUgOiBwdWJsaWMgVHlw
ZWRPYmplY3Q8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZyYW1lSGFuZGxlPiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCk7CisgICAg
dmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKKworICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYW1lSUQ7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBGcmFtZUhhbmRs
ZSh1aW50NjRfdCBmcmFtZUlEKTsKKworICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYgLy8gQVBJRnJhbWVIYW5kbGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCmluZGV4IDM4Mzg1NzNhMjk2YjhjYWI3YTIxZDFlNzYyMWNmMDYzOTll
OWJiYWUuLjkzZjRhZjY2OTYzNDc5ODFlYWFhZDY3NmFlMjY0MTk3YWFjZmVhOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAgICAgICBE
YXRhLAogICAgICAgICBEaWN0aW9uYXJ5LAogICAgICAgICBFcnJvciwKKyAgICAgICAgRnJhbWVI
YW5kbGUsCiAgICAgICAgIEltYWdlLAorICAgICAgICBQYWdlSGFuZGxlLAogICAgICAgICBQcm90
ZWN0aW9uU3BhY2UsCiAgICAgICAgIFJlbmRlckxheWVyLAogICAgICAgICBSZW5kZXJPYmplY3Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJUGFnZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJUGFnZUhhbmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzViYTI1
N2U0MWQyNGVhNDQyNDA5ZWEyNmFkM2Y3ZjA5ZTAzMmRlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElQYWdlSGFuZGxlLmNwcApAQCAtMCwwICsxLDQ1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSVBhZ2VIYW5kbGUu
aCIKKworbmFtZXNwYWNlIEFQSSB7CisKK1Bhc3NSZWZQdHI8UGFnZUhhbmRsZT4gUGFnZUhhbmRs
ZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBh
Z2VIYW5kbGUocGFnZUlEKSk7Cit9CisKK1BhZ2VIYW5kbGU6OlBhZ2VIYW5kbGUodWludDY0X3Qg
cGFnZUlEKQorICAgIDogbV9wYWdlSUQocGFnZUlEKQoreworfQorCitQYWdlSGFuZGxlOjp+UGFn
ZUhhbmRsZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSVBhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElQYWdlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk3ZGQwZGY0OTg1ZDI0NTk3YjIyYzA2Y2MxZDE4
OTkyMDcyMWIwNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElQ
YWdlSGFuZGxlLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQVBJUGFn
ZUhhbmRsZV9oCisjZGVmaW5lIEFQSVBhZ2VIYW5kbGVfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIEFQSSB7CisKK2Ns
YXNzIFBhZ2VIYW5kbGUgOiBwdWJsaWMgVHlwZWRPYmplY3Q8T2JqZWN0OjpUeXBlOjpQYWdlSGFu
ZGxlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGFnZUhhbmRsZT4gY3JlYXRl
KHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgdmlydHVhbCB+UGFnZUhhbmRsZSgpOworCisgICAgdWlu
dDY0X3QgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KKworcHJpdmF0ZToKKyAg
ICBleHBsaWNpdCBQYWdlSGFuZGxlKHVpbnQ2NF90IHBhZ2VJRCk7CisKKyAgICB1aW50NjRfdCBt
X3BhZ2VJRDsKK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisKKyNlbmRpZiAvLyBBUElQYWdl
SGFuZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ZWYzNjZm
M2ViZWUwNDdjMWMzYTc5ZmY2ODY1YzlhMGUzZGQ2NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVXNlckRhdGEuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVzZXJEYXRhLmgiCisKKyNpbmNs
dWRlICJBUElBcnJheS5oIgorI2luY2x1ZGUgIkFQSUZyYW1lSGFuZGxlLmgiCisjaW5jbHVkZSAi
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRl
ICJXZWJOdW1iZXIuaCIKKyNpbmNsdWRlICJXZWJVUkwuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1VzZXJEYXRhOjpVc2VyRGF0YShBUEk6Ok9iamVjdCogb2JqZWN0KQorICAgIDogbV9vYmpl
Y3Qob2JqZWN0KQoreworfQorCitVc2VyRGF0YTo6flVzZXJEYXRhKCkKK3sKK30KKwordm9pZCBV
c2VyRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGUoZW5jb2RlciwgbV9vYmplY3QuZ2V0KCkpOworfQorCitib29sIFVzZXJE
YXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBVc2VyRGF0YSYg
dXNlckRhdGEpCit7CisgICAgcmV0dXJuIGRlY29kZShkZWNvZGVyLCB1c2VyRGF0YS5tX29iamVj
dCk7Cit9CisKK3ZvaWQgVXNlckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IEFQSTo6T2JqZWN0KiBvYmplY3QpIGNvbnN0Cit7CisgICAgaWYgKCFv
YmplY3QpIHsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKEFQSTo6T2JqZWN0OjpUeXBlOjpO
dWxsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29kZShlbmNvZGVyLCAqb2Jq
ZWN0KTsKK30KKwordm9pZCBVc2VyRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgQVBJOjpPYmplY3QmIG9iamVjdCkgY29uc3QKK3sKKyAgICBBUEk6
Ok9iamVjdDo6VHlwZSB0eXBlID0gb2JqZWN0LnR5cGUoKTsKKyAgICBlbmNvZGVyLmVuY29kZUVu
dW0odHlwZSk7CisKKyAgICBzd2l0Y2ggKG9iamVjdC50eXBlKCkpIHsKKyAgICBjYXNlIEFQSTo6
T2JqZWN0OjpUeXBlOjpBcnJheTogeworICAgICAgICBhdXRvJiBhcnJheSA9IHN0YXRpY19jYXN0
PGNvbnN0IEFQSTo6QXJyYXkmPihvYmplY3QpOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PHVpbnQ2NF90PihhcnJheS5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGFycmF5LnNpemUoKTsgKytpKQorICAgICAgICAgICAgZW5jb2RlKGVuY29kZXIsIGFycmF5
LmF0KGkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6
VHlwZTo6Qm9vbGVhbjogeworICAgICAgICBhdXRvJiBib29sZWFuID0gc3RhdGljX2Nhc3Q8Y29u
c3QgV2ViQm9vbGVhbiY+KG9iamVjdCk7CisgICAgICAgIGVuY29kZXIgPDwgYm9vbGVhbi52YWx1
ZSgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBl
OjpGcmFtZUhhbmRsZTogeworICAgICAgICBhdXRvJiBmcmFtZUhhbmRsZSA9IHN0YXRpY19jYXN0
PGNvbnN0IEFQSTo6RnJhbWVIYW5kbGUmPihvYmplY3QpOworICAgICAgICBlbmNvZGVyIDw8IGZy
YW1lSGFuZGxlLmZyYW1lSUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBB
UEk6Ok9iamVjdDo6VHlwZTo6VVJMOiB7CisgICAgICAgIGF1dG8mIHVybCA9IHN0YXRpY19jYXN0
PGNvbnN0IFdlYlVSTCY+KG9iamVjdCk7CisgICAgICAgIGVuY29kZXIgPDwgdXJsLnN0cmluZygp
OworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpV
SW50NjQ6IHsKKyAgICAgICAgYXV0byYgdWludDY0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViVUlu
dDY0Jj4ob2JqZWN0KTsKKyAgICAgICAgZW5jb2RlciA8PCB1aW50NjQudmFsdWUoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorfQorCitib29sIFVzZXJEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCit7CisgICAg
QVBJOjpPYmplY3Q6OlR5cGUgdHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QXJyYXk6IHsKKyAgICAgICAgdWludDY0X3Qgc2l6ZTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gZWxlbWVudHM7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZWZQ
dHI8QVBJOjpPYmplY3Q+IGVsZW1lbnQ7CisgICAgICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVy
LCBlbGVtZW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAg
IGVsZW1lbnRzLmFwcGVuZChzdGQ6Om1vdmUoZWxlbWVudCkpOworICAgICAgICB9CisKKyAgICAg
ICAgcmVzdWx0ID0gQVBJOjpBcnJheTo6Y3JlYXRlKHN0ZDo6bW92ZShlbGVtZW50cykpOworICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpCb29sZWFu
OiB7CisgICAgICAgIGJvb2wgdmFsdWU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFs
dWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJlc3VsdCA9IFdlYkJv
b2xlYW46OmNyZWF0ZSh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2Ug
QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxlOiB7CisgICAgICAgIHVpbnQ2NF90IGZyYW1l
SUQ7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmVzdWx0ID0gQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRl
KGZyYW1lSUQpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpVUkw6IHsKKyAgICAgICAgU3RyaW5nIHN0cmluZzsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdHJpbmcpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXN1bHQgPSBXZWJVUkw6OmNyZWF0ZShzdHJpbmcpOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpVSW50NjQ6IHsKKyAgICAgICAgdWludDY0X3Qg
dmFsdWU7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQgPSBXZWJVSW50NjQ6OmNyZWF0ZSh2YWx1ZSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJEYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI4NDM1NDk0
N2E2MTZlNjE3YTAwNWQ4ZDg1MWZmMDIwYjc2OWJlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Vc2VyRGF0YS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFVzZXJEYXRhX2gKKyNkZWZpbmUgVXNlckRhdGFfaAorCisjaW5jbHVkZSA8ZnVu
Y3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBBUEkgeworY2xh
c3MgT2JqZWN0OworfQorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudEVuY29k
ZXI7CitjbGFzcyBBcmd1bWVudERlY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBVc2VyRGF0YSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVXNlckRhdGEoQVBJOjpPYmpl
Y3QqID0gbnVsbHB0cik7CisgICAgflVzZXJEYXRhKCk7CisKKyAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgVXNlckRhdGEmKTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImLCBjb25zdCBBUEk6Ok9iamVjdCopIGNv
bnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IEFQ
STo6T2JqZWN0JikgY29uc3Q7CisKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSTo6T2JqZWN0PiYpOworCisgICAgUmVmUHRyPEFQSTo6
T2JqZWN0PiBtX29iamVjdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gVXNlckRhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGM5ZTAxNzRlZWQ2YmZlOWQxNjE4NjI3ODA5NmNhN2JhMzg3NWRk
NDUuLmU3MzM0ZWRjMWFkODA4MjQ3YTU5YzhkYzc1MzhmY2ViNDI0ZWIwNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2Myw2
ICsyNjMsMTIgQEAKIAkJMUFCOEExRjQxODQwMEI4RjAwRTlBRTY5IC8qIFdLUGFnZUZpbmRDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQjhB
MUYzMTg0MDBCOEYwMEU5QUU2OSAvKiBXS1BhZ2VGaW5kQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFCOEExRjYxODQwMEI5RDAwRTlB
RTY5IC8qIFdLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUI4QTFGNTE4NDAwQjlEMDBFOUFFNjkgLyogV0tQYWdl
RmluZE1hdGNoZXNDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxQUI4QTFGODE4NDAwQkI4MDBFOUFFNjkgLyogV0tQYWdlQ29udGV4dE1l
bnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQjhBMUY3MTg0MDBCQjgwMEU5QUU2OSAvKiBXS1BhZ2VDb250ZXh0TWVudUNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBQzEzMzY3
MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUMxMzM2NTE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRh
dGEuY3BwICovOyB9OworCQkxQUMxMzM2ODE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzEzMzY2MTg1
NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oICovOyB9OworCQkxQUMxMzM2QzE4NTY1QzdBMDBG
M0VDMDUgLyogQVBJUGFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFDMTMzNkIxODU2NUM3QTAwRjNFQzA1IC8qIEFQSVBhZ2VIYW5kbGUu
aCAqLzsgfTsKKwkJMUFDMTMzNkUxODU2NUQyQjAwRjNFQzA1IC8qIEFQSVBhZ2VIYW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMTMzNkQx
ODU2NUQyQjAwRjNFQzA1IC8qIEFQSVBhZ2VIYW5kbGUuY3BwICovOyB9OworCQkxQUMxMzM3MTE4
NTY2QzdDMDBGM0VDMDUgLyogQVBJRnJhbWVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMTMzNkYxODU2NkM3QzAwRjNFQzA1IC8qIEFQ
SUZyYW1lSGFuZGxlLmNwcCAqLzsgfTsKKwkJMUFDMTMzNzIxODU2NkM3QzAwRjNFQzA1IC8qIEFQ
SUZyYW1lSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUMxMzM3MDE4NTY2QzdDMDBGM0VDMDUgLyogQVBJRnJhbWVIYW5kbGUuaCAqLzsgfTsK
IAkJMUFDMjVGQzIxMkE0OEY2MDAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjVGOEExMkE0OEUw
MzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLm1tICovOyB9OwogCQkxQUM0QzgyOTE2Qjg3
NkE5MDA2OURDQ0QgLyogTWVzc2FnZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUM0QzgyODE2Qjg3NkE5MDA2OURDQ0QgLyogTWVzc2FnZUZs
YWdzLmggKi87IH07CiAJCTFBQzVGRkMyMTc0QkZEMUIwMDAxNDgzRCAvKiBQbHVnaW5Qcm9jZXNz
QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFDNUZGQzExNzRCRkQxQjAwMDE0ODNEIC8qIFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgg
Ki87IH07CkBAIC0xNzg4LDYgKzE3OTQsMTIgQEAKIAkJMUFCOEExRjMxODQwMEI4RjAwRTlBRTY5
IC8qIFdLUGFnZUZpbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tQYWdlRmluZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI4QTFG
NTE4NDAwQjlEMDBFOUFFNjkgLyogV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCOEExRjcxODQwMEJCODAwRTlBRTY5IC8qIFdLUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFB
QzEzMzY1MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFBQzEzMzY2MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQUMxMzM2QjE4NTY1QzdBMDBGM0VDMDUgLyogQVBJUGFnZUhhbmRsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElQYWdlSGFuZGxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFBQzEzMzZEMTg1NjVEMkIwMEYzRUMwNSAvKiBBUElQYWdlSGFu
ZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSVBhZ2VIYW5k
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQUMxMzM2RjE4NTY2QzdDMDBG
M0VDMDUgLyogQVBJRnJhbWVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQVBJRnJhbWVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQUMxMzM3MDE4NTY2QzdDMDBGM0VDMDUgLyogQVBJRnJhbWVIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRnJhbWVIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDMjVGODkxMkE0OEUwMzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NT
aGltLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblByb2Nlc3NTaGlt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzI1RjhBMTJBNDhFMDMwMEJEMjY3
MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFBsdWdpblByb2Nlc3NTaGltLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQUMyNUZCMDEyQTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBQbHVnaW5Qcm9jZXNz
U2hpbS5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM0MTMs
OCArMzQyNSwxMiBAQAogCQkJCUJDNjQ2OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBBUElBcnJheS5j
cHAgKi8sCiAJCQkJQkM2NDY5NkUxMURCRTYwMzAwNjQ1NUIwIC8qIEFQSUFycmF5LmggKi8sCiAJ
CQkJMUEzREQyMDUxMjVFNUEyRjAwNDUxNUU2IC8qIEFQSUNsaWVudC5oICovLAorCQkJCTFBQzEz
MzZGMTg1NjZDN0MwMEYzRUMwNSAvKiBBUElGcmFtZUhhbmRsZS5jcHAgKi8sCisJCQkJMUFDMTMz
NzAxODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmggKi8sCiAJCQkJQjYzNDAzRjgx
NDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgKi8sCiAJCQkJQkNGMDRDOEMxMUZGOUI3
RDAwRjg2QTU4IC8qIEFQSU9iamVjdC5oICovLAorCQkJCTFBQzEzMzZEMTg1NjVEMkIwMEYzRUMw
NSAvKiBBUElQYWdlSGFuZGxlLmNwcCAqLywKKwkJCQkxQUMxMzM2QjE4NTY1QzdBMDBGM0VDMDUg
LyogQVBJUGFnZUhhbmRsZS5oICovLAogCQkJCUE3RDc5MkQ1MTc2N0NCNkUwMDg4MUNCRSAvKiBB
Y3Rpdml0eUFzc2VydGlvbi5jcHAgKi8sCiAJCQkJQTdENzkyRDQxNzY3Q0IwOTAwODgxQ0JFIC8q
IEFjdGl2aXR5QXNzZXJ0aW9uLmggKi8sCiAJCQkJNTE1RTc3MjUxODNERDZGNjAwMDcyMDNGIC8q
IEFzeW5jUmVxdWVzdC5jcHAgKi8sCkBAIC0zNDc0LDYgKzM0OTAsOCBAQAogCQkJCTFBNUU0REEz
MTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8sCiAJCQkJMUE2NDI0NUQx
MkRFMjlBMTAwQ0FBRTJDIC8qIFVwZGF0ZUluZm8uY3BwICovLAogCQkJCTFBNjQyNDVDMTJERTI5
QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmggKi8sCisJCQkJMUFDMTMzNjUxODU2NUI1NzAwRjNF
QzA1IC8qIFVzZXJEYXRhLmNwcCAqLywKKwkJCQkxQUMxMzM2NjE4NTY1QjU3MDBGM0VDMDUgLyog
VXNlckRhdGEuaCAqLywKIAkJCQlCQ0IwQjBERjEyMzA1QUIxMDBCMTM0MUUgLyogVXNlck1lc3Nh
Z2VDb2RlcnMuaCAqLywKIAkJCQk4NjVFMDQ4NDE4MUEwOTBEMDAxRjcyRjIgLyogVmlld1N0YXRl
LmggKi8sCiAJCQkJMUEwRjI5QzkxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUu
Y3BwICovLApAQCAtNTcyNSw2ICs1NzQzLDcgQEAKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1
MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNzk1NTcxMTYyODc3RDIwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5RTMyOUYxODIyRkVERDAwRjVEMDRDIC8q
IFdLUmVtb3RlT2JqZWN0Q29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBQzEzMzY4MTg1NjVC
NTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MzE5OTUxNjI4
OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3Ry
YXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkUxNjI4NzdCMzAwRkE0M0I2IC8q
IE5ldHdvcmtQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtNTk5OCw2ICs2MDE3LDcg
QEAKIAkJCQlCQ0VFN0FEMTEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2QSAvKiBXZWJQ
cm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAw
NjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFDMTMz
NzIxODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzk0ODQwNDE1MEMzNTA2MDBFNTJDRTkgLyogV2ViUmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JFOSAvKiBXZWJJREJGYWN0b3J5QmFja2Vu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc2MDg4MUYxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJl
bmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC02MDE0LDYgKzYwMzQsNyBAQAogCQkJCUJD
QzU3MTVCMTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNTk0QUJCMTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNBMEVGN0YxMjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVwLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxQUMxMzM2QzE4NTY1QzdBMDBGM0VDMDUgLyogQVBJUGFnZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCNDc0RTgxODRENDREMDAwNTFCNjIyIC8qIFdL
QnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUM3NTM3QzE4M0E5RkRCMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNEQjg2QzExMjAwRkI5NzAwNzI1NEJFIC8qIFdlYlVSTC5oIGluIEhlYWRlcnMgKi8s
CkBAIC03MTI5LDYgKzcxNTAsNyBAQAogCQkJCTFBMkQ5MEJCMTI4MUM5MzEwMDFFQjk2MiAvKiBQ
bHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTA0M0I1RDEyNEQ1
RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBMDQzREMyMTI0RkY4NzUwMEZGQkZCNSAvKiBQbHVnaW5Qcm94eS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUMxMzM2NzE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRDkyMjExMjgxREMxQjAwMUVCOTYyIC8qIFBs
dWdpblByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU1NDIyQzQxODA2MkJGOTAwNDZG
NkE4IC8qIFdlYk9yaWdpbkRhdGFNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE4RUZBNzAxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtNzEzOCw2ICs3MTYwLDcgQEAKIAkJCQkxQTZGQjdBRTExRTY0
QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThDOTJG
NDEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
Q0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAqLywK
KwkJCQkxQUMxMzM2RTE4NTY1RDJCMDBGM0VDMDUgLyogQVBJUGFnZUhhbmRsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJvY2Vzc0xhdW5jaGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMzN0JBQiAvKiBQcm9j
ZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUIxNkFFOTE2NEIzQTg4MDAy
OTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLApAQCAtNzQ3
NSw2ICs3NDk4LDcgQEAKIAkJCQkzMzM2NzYzQTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjM0NDQ1QzEyQTg4NUU5MDAw
NjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYw
MzEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUFDMTMzNzExODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NjA1MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYxOTEyNEZGMDM3MDA2OEYyMEEgLyogV0tT
dHJpbmdDRi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5QUE5MTJCN0U3OTYwMDhGRTk4NCAv
KiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="242338"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>