<?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>103056</bug_id>
          
          <creation_ts>2012-11-22 04:51:24 -0800</creation_ts>
          <short_desc>[Qt] Guess mime-type by full filename</short_desc>
          <delta_ts>2014-02-03 03:23:41 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>102667</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hausmann</cc>
    
    <cc>japhet</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>peter+ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773838</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-22 04:51:24 -0800</bug_when>
    <thetext>To support common multipart unix extensions such as .tar.gz, we need to be able guess mimetypes for files on more than just the last suffix. To begin with this will only make a difference for the Qt port since the common implementation of getMIMETypeForPath only looks up the mimetype using the last extension anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773888</commentid>
    <comment_count>1</comment_count>
      <attachid>175657</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-22 06:13:37 -0800</bug_when>
    <thetext>Created attachment 175657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773890</commentid>
    <comment_count>2</comment_count>
      <attachid>175657</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-22 06:18:57 -0800</bug_when>
    <thetext>Comment on attachment 175657
Patch

Attachment 175657 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14965349</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773911</commentid>
    <comment_count>3</comment_count>
      <attachid>175663</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-22 06:37:12 -0800</bug_when>
    <thetext>Created attachment 175663
Patch

fix typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773996</commentid>
    <comment_count>4</comment_count>
      <attachid>175663</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-22 09:18:10 -0800</bug_when>
    <thetext>Comment on attachment 175663
Patch

Attachment 175663 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14960404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774013</commentid>
    <comment_count>5</comment_count>
      <attachid>175663</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-22 09:41:58 -0800</bug_when>
    <thetext>Comment on attachment 175663
Patch

Will not work for chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774074</commentid>
    <comment_count>6</comment_count>
      <attachid>175663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-22 12:26:27 -0800</bug_when>
    <thetext>Comment on attachment 175663
Patch

Attachment 175663 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14969477</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778916</commentid>
    <comment_count>7</comment_count>
      <attachid>176702</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-29 04:40:57 -0800</bug_when>
    <thetext>Created attachment 176702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935660</commentid>
    <comment_count>8</comment_count>
      <attachid>176702</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-02 21:17:54 -0700</bug_when>
    <thetext>Comment on attachment 176702
Patch

Qt has been removed, clearing review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975606</commentid>
    <comment_count>9</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2014-02-03 03:23:41 -0800</bug_when>
    <thetext>=== Bulk closing of Qt bugs ===

If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.

If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175657</attachid>
            <date>2012-11-22 06:13:37 -0800</date>
            <delta_ts>2012-11-22 06:37:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103056-20121122151055.patch</filename>
            <type>text/plain</type>
            <size>12220</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiMmI1MmMwZWM4MDlj
ZGY5OGQ4MTIyZDQ2ZDI0YzJlMDdlNDU0OC4uYzk3OGQ0YzM5NGJkODlmMGNmZDI5MTU5ODUwZTk0
ZGNmNDFiNTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTExLTIyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gR3Vlc3MgbWltZS10eXBlIGJ5IGZ1bGwgZmlsZW5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvb2t1cCBtaW1ldHlwZSBieSBmdWxsIGZpbGVu
YW1lIGluc3RlYWQgb2YganVzdCBleHRlbnNpb24uIFRvIHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiAKKyAgICAgICAgc29tZSBzeXN0ZW0gcmV0dXJuaW5nIHRoZSBkZWZhdWx0TUlNRVR5cGUg
b24gcHVycG9zZSBmb3IgYmluYXJ5LWZpbGVzLCBhIGZsYWcgaGFzIGJlZW4gYWRkZWQKKyAgICAg
ICAgdG8gZ2V0TUlNRVR5cGVGb3JQYXRoLCBzbyBhY3R1YWxseSB1bmtub3duIHR5cGVzIGNhbiBy
ZXR1cm4gdGhlIGVtcHR5IHN0cmluZy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDb250ZW50VHlw
ZUZyb21GaWxlTmFtZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkZWZhdWx0T2JqZWN0Q29udGVudFR5cGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NSU1FVHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChNSU1FVHlwZVJlZ2lzdHJ5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9NSU1FVHlwZVJlZ2lzdHJ5UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKToKKwogMjAxMi0xMS0yMiAg
RGFuIENhcm5leSAgPGRjYXJuZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbVjhdIEFkZCBjb250
ZXh0IGNoZWNrcyB0byBXb3JsZENvbnRleHRIYW5kbGUgYW5kIFY4RE9NV2luZG93U2hlbGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKaW5kZXggZjA3OTFiZmMwMmY1ODJlM2M2NzgwYzI5ZWI4NzQxMjhmM2U1NzBlNi4u
OTIwNDY0N2IwMDU3M2Y5OTEwZmQzY2JmMzg1YTFhM2JmMmQ5YTEzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEd1ZXNzIG1pbWUtdHlwZSBieSBm
dWxsIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDMwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBMb29rdXAgbWltZXR5cGUgYnkgZmlsZW5hbWUgaW5zdGVhZCBvZiBqdXN0IGxhc3QgZXh0
ZW5zaW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpvYmplY3RDb250ZW50
VHlwZSk6CisKIDIwMTItMTEtMjEgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNl
bkBkaWdpYS5jb20+CiAKICAgICAgICAgUG9zaXRpb24gaW4gUVdlYkhpdFRlc3RSZXN1bHQgZG9l
cyBub3QgbWF0Y2ggZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFjOGQ4ODkzNjczNDkyZWI2
MjNlZjM2YzlmMDM0MWYyZTUxYzk0MjUuLjViYWIzMjhiZDE0MWUxYTkwNWIxOWY3ZjExYWVlNmM1
Y2UyOWNlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMiAgQWxsYW4g
U2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
IEd1ZXNzIG1pbWUtdHlwZSBieSBmdWxsIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb29rdXAgbWltZXR5cGUgYnkgZmlsZW5hbWUgaW5z
dGVhZCBvZiBqdXN0IGxhc3QgZXh0ZW5zaW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisKIDIwMTItMTEtMjIgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtXSzJdW0VGTF0gTm8gbmVlZCB0byByZW1vdmUgc3VyZmFjZSBiZWZvcmUgcmVwbGFjaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDk5YTA0NGJiM2FkNmMwOGNhYmNmMThmNjFmYWQwMjc3YzIw
NjkxYzQuLmQ4ZWZmZjA5MGNkODcyNmM2NmVkN2Q0MGI0YTAwYzNkMmRhYWJmMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC00NDcsNiArNDQ3LDcgQEAgX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJB
cmNoaXZlNmNyZWF0ZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZl
NmNyZWF0ZUVQTlNfNVJhbmdlRQogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlNmNyZWF0
ZUV2CiBfX1pON1dlYkNvcmUxNk1JTUVUeXBlUmVnaXN0cnkxNWNhblNob3dNSU1FVHlwZUVSS04z
V1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTE4Z2V0TUlNRVR5cGVG
b3JQYXRoRVJLTjNXVEY2U3RyaW5nRWIKIF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTIz
Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNk1J
TUVUeXBlUmVnaXN0cnkyNGlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTI2Z2V0U3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZXNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggNjkyYmRlMWFjYTBhZDdjMTYxYzRkM2Y0
OGVkMjEzNmEzYTUyYWRjMC4uMzA5NmY0ODY3MzdhNDM1YWNjMTdkYmQxNTZjNzU1Yjk3YjZhNGVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RhdGljIFN0cmluZyBnZXRDb250ZW50VHlwZUZyb21GaWxlTmFtZShjb25z
dCBTdHJpbmcmIG5hbWUsIEZpbGU6OkNvbnRlbnRUeXBlTG9va3VwUG9saWN5IHBvbGljeSkKIHsK
ICAgICBTdHJpbmcgdHlwZTsKLSAgICBpbnQgaW5kZXggPSBuYW1lLnJldmVyc2VGaW5kKCcuJyk7
Ci0gICAgaWYgKGluZGV4ICE9IC0xKSB7Ci0gICAgICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6V2Vs
bEtub3duQ29udGVudFR5cGVzKQorICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6V2VsbEtub3duQ29u
dGVudFR5cGVzKSB7CisgICAgICAgIGludCBpbmRleCA9IG5hbWUucmV2ZXJzZUZpbmQoJy4nKTsK
KyAgICAgICAgaWYgKGluZGV4ICE9IC0xKQogICAgICAgICAgICAgdHlwZSA9IE1JTUVUeXBlUmVn
aXN0cnk6OmdldFdlbGxLbm93bk1JTUVUeXBlRm9yRXh0ZW5zaW9uKG5hbWUuc3Vic3RyaW5nKGlu
ZGV4ICsgMSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChwb2xpY3kgPT0g
RmlsZTo6QWxsQ29udGVudFR5cGVzKTsKLSAgICAgICAgICAgIHR5cGUgPSBNSU1FVHlwZVJlZ2lz
dHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihuYW1lLnN1YnN0cmluZyhpbmRleCArIDEpKTsK
LSAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChwb2xpY3kgPT0gRmlsZTo6
QWxsQ29udGVudFR5cGVzKTsKKyAgICAgICAgdHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1J
TUVUeXBlRm9yUGF0aChuYW1lLCBmYWxzZSk7CiAgICAgfQogICAgIHJldHVybiB0eXBlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNDM3YTFmNjE2NDQ1NzdjZjkx
Yjk1NzNiZjBmOTNkNThjZWU2Yzg0Ni4uNWRiMjg0NjdmMjY2NmM1OWFkYTRlODhmYjA2N2Q2NGI3
MjlmMDc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC04ODQsOSAr
ODg0LDggQEAgT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXI6OmRlZmF1bHRPYmplY3RDb250
ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFMKICAgICBTdHJpbmcgZGVjb2RlZFBhdGgg
PSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnBhdGgoKSk7CiAgICAgU3RyaW5nIGV4dGVu
c2lvbiA9IGRlY29kZWRQYXRoLnN1YnN0cmluZyhkZWNvZGVkUGF0aC5yZXZlcnNlRmluZCgnLicp
ICsgMSk7CiAKLSAgICAvLyBXZSBkb24ndCB1c2UgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5
cGVGb3JQYXRoKCkgYmVjYXVzZSBpdCByZXR1cm5zICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
IHVwb24gZmFpbHVyZQogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIG1pbWVU
eXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9u
KTsKKyAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBh
dGgoZGVjb2RlZFBhdGgsIGZhbHNlKTsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShDSFJPTUlVTSkgJiYgIVBMQVRGT1JNKEVGTCkgLy8gTWFjIGhhcyBubyBQbHVnaW5EYXRhYmFz
ZSwgbm9yIGRvZXMgQ2hyb21pdW0gb3IgRUZMCiAgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggYzVm
MzE0MDdjMmQzMjJjZDliZTE4ZGVlYzVmM2I4ZTIxMzQ4MjZkZC4uY2E5NTRjYWJiYzNjNzFkOTg2
NmU4NjE0ZDI3NjQ3ZGJmZTQ0MTEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBTdHJpbmcgTUlNRVR5cGVSZWdp
c3RyeTo6Z2V0V2VsbEtub3duTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRl
bnNpbwogfQogCiAjaWYgIVBMQVRGT1JNKFFUKQotU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCitTdHJpbmcgTUlNRVR5cGVSZWdp
c3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCByZXR1cm5E
ZWZhdWx0TUlNRVR5cGVGb3JVbmtub3duKSkKIHsKICAgICBzaXplX3QgcG9zID0gcGF0aC5yZXZl
cnNlRmluZCgnLicpOwogICAgIGlmIChwb3MgIT0gbm90Rm91bmQpIHsKQEAgLTUwMSw3ICs1MDEs
OSBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCkKICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQotICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGUoKTsKKyAgICBp
ZiAocmV0dXJuRGVmYXVsdE1JTUVUeXBlRm9yVW5rbm93bikKKyAgICAgICAgcmV0dXJuIGRlZmF1
bHRNSU1FVHlwZSgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgKaW5kZXggNTYxMmI5MjIzYTIzNDFi
MTk3ZDUzOGRlYTQ3ZTQ5ODRlNGIzY2NhMS4uY2JjMGNmZTI3NjMwOGMxMTRkZTRkZDJlMTNjNTRl
YzM4YmZmODNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
aApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1J
TUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMg
VmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1FVHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBleHRlbnNpb24pOwogCi0gICAgc3RhdGljIFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29u
c3QgU3RyaW5nJiBwYXRoKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldE1JTUVUeXBlRm9yUGF0aChj
b25zdCBTdHJpbmcmIHBhdGgsIGJvb2wgcmV0dXJuRGVmYXVsdE1JTUVUeXBlRm9yVW5rbm93biA9
IHRydWUpOwogCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgbWltZSB0eXBlIGlzIHN1aXRhYmxl
IGZvciBiZWluZyBsb2FkZWQgaW5saW5lIGFzIGFuCiAgICAgLy8gaW1hZ2UgKGUuZy4sIDxpbWc+
IHRhZ3MpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTUlNRVR5cGVS
ZWdpc3RyeVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L01JTUVUeXBlUmVnaXN0
cnlRdC5jcHAKaW5kZXggNjY3MjkxYWJkYmNjNTNiZDk1MzQ1NzY3NTYwYzQwZDBmNzllODhmZC4u
NGU2MTMzYWM2OTdkNjE5MmZhMTZkMWM5OGUwY2FlOTA1YzY3OGIxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTUlNRVR5cGVSZWdpc3RyeVF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9NSU1FVHlwZVJlZ2lzdHJ5UXQuY3BwCkBAIC00NywxMyAr
NDcsMTUgQEAgU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyAmZXh0KQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIE1J
TUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCitT
dHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYg
cGF0aCwgYm9vbCByZXR1cm5EZWZhdWx0TUlNRVR5cGVGb3JVbmtub3duKQogewotICAgIFFNaW1l
VHlwZSB0eXBlID0gUU1pbWVEYXRhYmFzZSgpLm1pbWVUeXBlRm9yRmlsZShwYXRoLCBRTWltZURh
dGFiYXNlOjpNYXRjaEV4dGVuc2lvbik7Ci0gICAgaWYgKHR5cGUuaXNWYWxpZCgpKQotICAgICAg
ICByZXR1cm4gdHlwZS5uYW1lKCk7CisgICAgUU1pbWVUeXBlIG1pbWVUeXBlID0gUU1pbWVEYXRh
YmFzZSgpLm1pbWVUeXBlRm9yRmlsZShwYXRoLCBRTWltZURhdGFiYXNlOjpNYXRjaEV4dGVuc2lv
bik7CisgICAgaWYgKG1pbWVUeXBlLmlzVmFsaWQoKSAmJiAhbWltZVR5cGUuaXNEZWZhdWx0KCkp
CisgICAgICAgIHJldHVybiBtaW1lVHlwZS5uYW1lKCk7CiAKLSAgICByZXR1cm4gZGVmYXVsdE1J
TUVUeXBlKCk7CisgICAgaWYgKHJldHVybkRlZmF1bHRNSU1FVHlwZUZvclVua25vd24pCisgICAg
ICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGUoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
IFZlY3RvcjxTdHJpbmc+IE1JTUVUeXBlUmVnaXN0cnk6OmdldEV4dGVuc2lvbnNGb3JNSU1FVHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDA3MzFkOTMx
NThhMTZmOTczMGU4NDFlMjA4MTdhODgyMmI0ZTYxNDguLmQ3YzBiOGUxODY3NmFmNmI0ZjcyY2U0
ZThhN2ZlNGZlMzcyNGI3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTM1MCwyMiArMTM1MCwyMSBA
QCBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVGcmFtZShjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZwogT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXJD
bGllbnRRdDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlSW4sIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcykKIHsKICAgICAv
LyBxRGVidWcoKTw8IiArKysrKysrKysrKysrKysrIHVybCBpcyAiPDx1cmwuc3RyaW5nKCk8PCIs
IG1pbWUgPSAiPDxtaW1lVHlwZUluOwotICAgIFFGaWxlSW5mbyBmaSh1cmwucGF0aCgpKTsKLSAg
ICBTdHJpbmcgZXh0ZW5zaW9uID0gZmkuc3VmZml4KCk7Ci0gICAgaWYgKG1pbWVUeXBlSW4gPT0g
ImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1lVHlwZUluID09ICJhcHBsaWNhdGlvbi94
LXF0LXN0eWxlZC13aWRnZXQiKQorICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0
aW9uUGx1Z2luTUlNRVR5cGUobWltZVR5cGVJbikpCiAgICAgICAgIHJldHVybiBPYmplY3RDb250
ZW50T3RoZXJQbHVnaW47CiAKLSAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiAhbWltZVR5cGVJbi5s
ZW5ndGgoKSkKKyAgICBpZiAodXJsLmlzRW1wdHkoKSAmJiBtaW1lVHlwZUluLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROb25lOwogCiAgICAgU3RyaW5nIG1pbWVUeXBl
ID0gbWltZVR5cGVJbjsKLSAgICBpZiAoIW1pbWVUeXBlLmxlbmd0aCgpKQotICAgICAgICBtaW1l
VHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lv
bik7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgbWltZVR5cGUgPSBNSU1F
VHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgodXJsLnBhdGgoKSwgZmFsc2UpOwogCi0g
ICAgaWYgKCFtaW1lVHlwZS5sZW5ndGgoKSkKLSAgICAgICAgbWltZVR5cGUgPSBQbHVnaW5EYXRh
YmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5NSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24p
OworICAgIFFGaWxlSW5mbyBmaSh1cmwucGF0aCgpKTsKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0
eSgpKQorICAgICAgICBtaW1lVHlwZSA9IFBsdWdpbkRhdGFiYXNlOjppbnN0YWxsZWRQbHVnaW5z
KCktPk1JTUVUeXBlRm9yRXh0ZW5zaW9uKGZpLnN1ZmZpeCgpKTsKIAotICAgIGlmICghbWltZVR5
cGUubGVuZ3RoKCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IE9iamVjdENvbnRlbnRGcmFtZTsKIAogICAgIE9iamVjdENvbnRlbnRUeXBlIHBsdWdJblR5cGUg
PSBPYmplY3RDb250ZW50Tm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggYjNkZjNiNThmMTNlNzRkZGM1YmU0OTBmNDgzMTA5NmU2YzQzYzdjNC4uNTZiZDA1NzBmOWQ4
MWY0MGY0YjJhYjk1MWQ3OGVjOWI2YTVhNmJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTE0MjMsMTkgKzE0MjMsMTkgQEAgT2JqZWN0Q29udGVudFR5cGUgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QK
ICAgICAvLyBpcyBjb25zb2xpZGF0ZWQuCiAKICAgICBTdHJpbmcgbWltZVR5cGUgPSBtaW1lVHlw
ZUluOwotICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgU3RyaW5nIGV4dGVu
c2lvbiA9IHVybC5wYXRoKCkuc3Vic3RyaW5nKHVybC5wYXRoKCkucmV2ZXJzZUZpbmQoJy4nKSAr
IDEpLmxvd2VyKCk7CiAKLSAgICAgICAgLy8gVHJ5IHRvIGd1ZXNzIHRoZSBNSU1FIHR5cGUgZnJv
bSB0aGUgZXh0ZW5zaW9uLgotICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1w
dHkoKSkgeworICAgICAgICAvLyBUcnkgdG8gZ3Vlc3MgdGhlIE1JTUUgdHlwZSBmcm9tIHRoZSBm
aWxlIG5hbWUuCisgICAgICAgIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5
cGVGb3JQYXRoKHVybC5wYXRoKCksIGZhbHNlKTsKKyAgICB9CiAKLSAgICAgICAgaWYgKG1pbWVU
eXBlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHBsdWct
aW4gYXJvdW5kIHRoYXQgY2FuIGhhbmRsZSB0aGUgZXh0ZW5zaW9uLgotICAgICAgICAgICAgaWYg
KFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoUGx1Z2luRGF0YSogcGx1Z2luRGF0YSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPnBsdWdpbkRh
dGEoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocGx1Z2luU3VwcG9ydHNFeHRlbnNpb24o
cGx1Z2luRGF0YSwgZXh0ZW5zaW9uKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBP
YmplY3RDb250ZW50TmV0c2NhcGVQbHVnaW47Ci0gICAgICAgICAgICAgICAgfQorICAgIGlmICht
aW1lVHlwZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgU3RyaW5nIGV4dGVuc2lvbiA9IHVybC5wYXRo
KCkuc3Vic3RyaW5nKHVybC5wYXRoKCkucmV2ZXJzZUZpbmQoJy4nKSArIDEpLmxvd2VyKCk7Cisg
ICAgICAgIC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBwbHVnLWluIGFyb3VuZCB0aGF0IGNhbiBoYW5k
bGUgdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgaWYgKFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpIHsKKyAgICAgICAgICAgIGlmIChQbHVnaW5EYXRhKiBwbHVnaW5EYXRhID0gd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBs
dWdpblN1cHBvcnRzRXh0ZW5zaW9uKHBsdWdpbkRhdGEsIGV4dGVuc2lvbikpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50TmV0c2NhcGVQbHVnaW47CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175663</attachid>
            <date>2012-11-22 06:37:12 -0800</date>
            <delta_ts>2012-11-29 04:40:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103056-20121122153431.patch</filename>
            <type>text/plain</type>
            <size>12219</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJiMmI1MmMwZWM4MDlj
ZGY5OGQ4MTIyZDQ2ZDI0YzJlMDdlNDU0OC4uYzk3OGQ0YzM5NGJkODlmMGNmZDI5MTU5ODUwZTk0
ZGNmNDFiNTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTExLTIyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gR3Vlc3MgbWltZS10eXBlIGJ5IGZ1bGwgZmlsZW5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvb2t1cCBtaW1ldHlwZSBieSBmdWxsIGZpbGVu
YW1lIGluc3RlYWQgb2YganVzdCBleHRlbnNpb24uIFRvIHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiAKKyAgICAgICAgc29tZSBzeXN0ZW0gcmV0dXJuaW5nIHRoZSBkZWZhdWx0TUlNRVR5cGUg
b24gcHVycG9zZSBmb3IgYmluYXJ5LWZpbGVzLCBhIGZsYWcgaGFzIGJlZW4gYWRkZWQKKyAgICAg
ICAgdG8gZ2V0TUlNRVR5cGVGb3JQYXRoLCBzbyBhY3R1YWxseSB1bmtub3duIHR5cGVzIGNhbiBy
ZXR1cm4gdGhlIGVtcHR5IHN0cmluZy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIGZpbGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDb250ZW50VHlw
ZUZyb21GaWxlTmFtZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkZWZhdWx0T2JqZWN0Q29udGVudFR5cGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9NSU1FVHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgIChNSU1FVHlwZVJlZ2lzdHJ5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9NSU1FVHlwZVJlZ2lzdHJ5UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKToKKwogMjAxMi0xMS0yMiAg
RGFuIENhcm5leSAgPGRjYXJuZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbVjhdIEFkZCBjb250
ZXh0IGNoZWNrcyB0byBXb3JsZENvbnRleHRIYW5kbGUgYW5kIFY4RE9NV2luZG93U2hlbGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKaW5kZXggZjA3OTFiZmMwMmY1ODJlM2M2NzgwYzI5ZWI4NzQxMjhmM2U1NzBlNi4u
OTIwNDY0N2IwMDU3M2Y5OTEwZmQzY2JmMzg1YTFhM2JmMmQ5YTEzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdIEd1ZXNzIG1pbWUtdHlwZSBieSBm
dWxsIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDMwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBMb29rdXAgbWltZXR5cGUgYnkgZmlsZW5hbWUgaW5zdGVhZCBvZiBqdXN0IGxhc3QgZXh0
ZW5zaW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpvYmplY3RDb250ZW50
VHlwZSk6CisKIDIwMTItMTEtMjEgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNl
bkBkaWdpYS5jb20+CiAKICAgICAgICAgUG9zaXRpb24gaW4gUVdlYkhpdFRlc3RSZXN1bHQgZG9l
cyBub3QgbWF0Y2ggZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFjOGQ4ODkzNjczNDkyZWI2
MjNlZjM2YzlmMDM0MWYyZTUxYzk0MjUuLjViYWIzMjhiZDE0MWUxYTkwNWIxOWY3ZjExYWVlNmM1
Y2UyOWNlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0yMiAgQWxsYW4g
U2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRd
IEd1ZXNzIG1pbWUtdHlwZSBieSBmdWxsIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwNTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb29rdXAgbWltZXR5cGUgYnkgZmlsZW5hbWUgaW5z
dGVhZCBvZiBqdXN0IGxhc3QgZXh0ZW5zaW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisKIDIwMTItMTEtMjIgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtXSzJdW0VGTF0gTm8gbmVlZCB0byByZW1vdmUgc3VyZmFjZSBiZWZvcmUgcmVwbGFjaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDk5YTA0NGJiM2FkNmMwOGNhYmNmMThmNjFmYWQwMjc3YzIw
NjkxYzQuLmQ4ZWZmZjA5MGNkODcyNmM2NmVkN2Q0MGI0YTAwYzNkMmRhYWJmMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC00NDcsNiArNDQ3LDcgQEAgX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJB
cmNoaXZlNmNyZWF0ZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZl
NmNyZWF0ZUVQTlNfNVJhbmdlRQogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlNmNyZWF0
ZUV2CiBfX1pON1dlYkNvcmUxNk1JTUVUeXBlUmVnaXN0cnkxNWNhblNob3dNSU1FVHlwZUVSS04z
V1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTE4Z2V0TUlNRVR5cGVG
b3JQYXRoRVJLTjNXVEY2U3RyaW5nRWIKIF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTIz
Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNk1J
TUVUeXBlUmVnaXN0cnkyNGlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTI2Z2V0U3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZXNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggNjkyYmRlMWFjYTBhZDdjMTYxYzRkM2Y0
OGVkMjEzNmEzYTUyYWRjMC4uMzA5NmY0ODY3MzdhNDM1YWNjMTdkYmQxNTZjNzU1Yjk3YjZhNGVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RhdGljIFN0cmluZyBnZXRDb250ZW50VHlwZUZyb21GaWxlTmFtZShjb25z
dCBTdHJpbmcmIG5hbWUsIEZpbGU6OkNvbnRlbnRUeXBlTG9va3VwUG9saWN5IHBvbGljeSkKIHsK
ICAgICBTdHJpbmcgdHlwZTsKLSAgICBpbnQgaW5kZXggPSBuYW1lLnJldmVyc2VGaW5kKCcuJyk7
Ci0gICAgaWYgKGluZGV4ICE9IC0xKSB7Ci0gICAgICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6V2Vs
bEtub3duQ29udGVudFR5cGVzKQorICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6V2VsbEtub3duQ29u
dGVudFR5cGVzKSB7CisgICAgICAgIGludCBpbmRleCA9IG5hbWUucmV2ZXJzZUZpbmQoJy4nKTsK
KyAgICAgICAgaWYgKGluZGV4ICE9IC0xKQogICAgICAgICAgICAgdHlwZSA9IE1JTUVUeXBlUmVn
aXN0cnk6OmdldFdlbGxLbm93bk1JTUVUeXBlRm9yRXh0ZW5zaW9uKG5hbWUuc3Vic3RyaW5nKGlu
ZGV4ICsgMSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChwb2xpY3kgPT0g
RmlsZTo6QWxsQ29udGVudFR5cGVzKTsKLSAgICAgICAgICAgIHR5cGUgPSBNSU1FVHlwZVJlZ2lz
dHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihuYW1lLnN1YnN0cmluZyhpbmRleCArIDEpKTsK
LSAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChwb2xpY3kgPT0gRmlsZTo6
QWxsQ29udGVudFR5cGVzKTsKKyAgICAgICAgdHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1J
TUVUeXBlRm9yUGF0aChuYW1lLCBmYWxzZSk7CiAgICAgfQogICAgIHJldHVybiB0eXBlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNDM3YTFmNjE2NDQ1NzdjZjkx
Yjk1NzNiZjBmOTNkNThjZWU2Yzg0Ni4uNWRiMjg0NjdmMjY2NmM1OWFkYTRlODhmYjA2N2Q2NGI3
MjlmMDc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC04ODQsOSAr
ODg0LDggQEAgT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXI6OmRlZmF1bHRPYmplY3RDb250
ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFMKICAgICBTdHJpbmcgZGVjb2RlZFBhdGgg
PSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLnBhdGgoKSk7CiAgICAgU3RyaW5nIGV4dGVu
c2lvbiA9IGRlY29kZWRQYXRoLnN1YnN0cmluZyhkZWNvZGVkUGF0aC5yZXZlcnNlRmluZCgnLicp
ICsgMSk7CiAKLSAgICAvLyBXZSBkb24ndCB1c2UgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5
cGVGb3JQYXRoKCkgYmVjYXVzZSBpdCByZXR1cm5zICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
IHVwb24gZmFpbHVyZQogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgIG1pbWVU
eXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9u
KTsKKyAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBh
dGgoZGVjb2RlZFBhdGgsIGZhbHNlKTsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShDSFJPTUlVTSkgJiYgIVBMQVRGT1JNKEVGTCkgLy8gTWFjIGhhcyBubyBQbHVnaW5EYXRhYmFz
ZSwgbm9yIGRvZXMgQ2hyb21pdW0gb3IgRUZMCiAgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggYzVm
MzE0MDdjMmQzMjJjZDliZTE4ZGVlYzVmM2I4ZTIxMzQ4MjZkZC4uZmYwOGQ4MzA4ZDNkYzMyN2U1
MmI0ODFhMmIzZjdkMTc3Y2I0NDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBTdHJpbmcgTUlNRVR5cGVSZWdp
c3RyeTo6Z2V0V2VsbEtub3duTUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRl
bnNpbwogfQogCiAjaWYgIVBMQVRGT1JNKFFUKQotU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCitTdHJpbmcgTUlNRVR5cGVSZWdp
c3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgYm9vbCByZXR1cm5E
ZWZhdWx0TUlNRVR5cGVGb3JVbmtub3duKQogewogICAgIHNpemVfdCBwb3MgPSBwYXRoLnJldmVy
c2VGaW5kKCcuJyk7CiAgICAgaWYgKHBvcyAhPSBub3RGb3VuZCkgewpAQCAtNTAxLDcgKzUwMSw5
IEBAIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3Ry
aW5nJiBwYXRoKQogICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgcmV0dXJuIGRlZmF1bHRNSU1FVHlwZSgpOworICAgIGlm
IChyZXR1cm5EZWZhdWx0TUlNRVR5cGVGb3JVbmtub3duKQorICAgICAgICByZXR1cm4gZGVmYXVs
dE1JTUVUeXBlKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAppbmRleCA1NjEyYjkyMjNhMjM0MWIx
OTdkNTM4ZGVhNDdlNDk4NGU0YjNjY2ExLi5jYmMwY2ZlMjc2MzA4YzExNGRlNGRkMmUxM2M1NGVj
MzhiZmY4M2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJl
Z2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5o
CkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIGdldE1lZGlhTUlN
RVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogICAgIHN0YXRpYyBW
ZWN0b3I8U3RyaW5nPiBnZXRNZWRpYU1JTUVUeXBlc0ZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbik7CiAKLSAgICBzdGF0aWMgU3RyaW5nIGdldE1JTUVUeXBlRm9yUGF0aChjb25z
dCBTdHJpbmcmIHBhdGgpOworICAgIHN0YXRpYyBTdHJpbmcgZ2V0TUlNRVR5cGVGb3JQYXRoKGNv
bnN0IFN0cmluZyYgcGF0aCwgYm9vbCByZXR1cm5EZWZhdWx0TUlNRVR5cGVGb3JVbmtub3duID0g
dHJ1ZSk7CiAKICAgICAvLyBDaGVjayB0byBzZWUgaWYgYSBtaW1lIHR5cGUgaXMgc3VpdGFibGUg
Zm9yIGJlaW5nIGxvYWRlZCBpbmxpbmUgYXMgYW4KICAgICAvLyBpbWFnZSAoZS5nLiwgPGltZz4g
dGFncykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9NSU1FVHlwZVJl
Z2lzdHJ5UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTUlNRVR5cGVSZWdpc3Ry
eVF0LmNwcAppbmRleCA2NjcyOTFhYmRiY2M1M2JkOTUzNDU3Njc1NjBjNDBkMGY3OWU4OGZkLi40
ZTYxMzNhYzY5N2Q2MTkyZmExNmQxYzk4ZTBjYWU5MDVjNjc4YjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9NSU1FVHlwZVJlZ2lzdHJ5UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L01JTUVUeXBlUmVnaXN0cnlRdC5jcHAKQEAgLTQ3LDEzICs0
NywxNSBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24o
Y29uc3QgU3RyaW5nICZleHQpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgTUlN
RVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKK1N0
cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBw
YXRoLCBib29sIHJldHVybkRlZmF1bHRNSU1FVHlwZUZvclVua25vd24pCiB7Ci0gICAgUU1pbWVU
eXBlIHR5cGUgPSBRTWltZURhdGFiYXNlKCkubWltZVR5cGVGb3JGaWxlKHBhdGgsIFFNaW1lRGF0
YWJhc2U6Ok1hdGNoRXh0ZW5zaW9uKTsKLSAgICBpZiAodHlwZS5pc1ZhbGlkKCkpCi0gICAgICAg
IHJldHVybiB0eXBlLm5hbWUoKTsKKyAgICBRTWltZVR5cGUgbWltZVR5cGUgPSBRTWltZURhdGFi
YXNlKCkubWltZVR5cGVGb3JGaWxlKHBhdGgsIFFNaW1lRGF0YWJhc2U6Ok1hdGNoRXh0ZW5zaW9u
KTsKKyAgICBpZiAobWltZVR5cGUuaXNWYWxpZCgpICYmICFtaW1lVHlwZS5pc0RlZmF1bHQoKSkK
KyAgICAgICAgcmV0dXJuIG1pbWVUeXBlLm5hbWUoKTsKIAotICAgIHJldHVybiBkZWZhdWx0TUlN
RVR5cGUoKTsKKyAgICBpZiAocmV0dXJuRGVmYXVsdE1JTUVUeXBlRm9yVW5rbm93bikKKyAgICAg
ICAgcmV0dXJuIGRlZmF1bHRNSU1FVHlwZSgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAog
VmVjdG9yPFN0cmluZz4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgbWltZVR5cGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMDczMWQ5MzE1
OGExNmY5NzMwZTg0MWUyMDgxN2E4ODIyYjRlNjE0OC4uZDdjMGI4ZTE4Njc2YWY2YjRmNzJjZTRl
OGE3ZmU0ZmUzNzI0YjcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0xMzUwLDIyICsxMzUwLDIxIEBA
IFBhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZUZyYW1lKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nCiBPYmplY3RDb250ZW50VHlwZSBGcmFtZUxvYWRlckNs
aWVudFF0OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGVJbiwgYm9vbCBzaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKQogewogICAgIC8v
IHFEZWJ1ZygpPDwiICsrKysrKysrKysrKysrKysgdXJsIGlzICI8PHVybC5zdHJpbmcoKTw8Iiwg
bWltZSA9ICI8PG1pbWVUeXBlSW47Ci0gICAgUUZpbGVJbmZvIGZpKHVybC5wYXRoKCkpOwotICAg
IFN0cmluZyBleHRlbnNpb24gPSBmaS5zdWZmaXgoKTsKLSAgICBpZiAobWltZVR5cGVJbiA9PSAi
YXBwbGljYXRpb24veC1xdC1wbHVnaW4iIHx8IG1pbWVUeXBlSW4gPT0gImFwcGxpY2F0aW9uL3gt
cXQtc3R5bGVkLXdpZGdldCIpCisgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRp
b25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZUluKSkKICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRl
bnRPdGhlclBsdWdpbjsKIAotICAgIGlmICh1cmwuaXNFbXB0eSgpICYmICFtaW1lVHlwZUluLmxl
bmd0aCgpKQorICAgIGlmICh1cmwuaXNFbXB0eSgpICYmIG1pbWVUeXBlSW4uaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudE5vbmU7CiAKICAgICBTdHJpbmcgbWltZVR5cGUg
PSBtaW1lVHlwZUluOwotICAgIGlmICghbWltZVR5cGUubGVuZ3RoKCkpCi0gICAgICAgIG1pbWVU
eXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9u
KTsKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICBtaW1lVHlwZSA9IE1JTUVU
eXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCh1cmwucGF0aCgpLCBmYWxzZSk7CiAKLSAg
ICBpZiAoIW1pbWVUeXBlLmxlbmd0aCgpKQotICAgICAgICBtaW1lVHlwZSA9IFBsdWdpbkRhdGFi
YXNlOjppbnN0YWxsZWRQbHVnaW5zKCktPk1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7
CisgICAgUUZpbGVJbmZvIGZpKHVybC5wYXRoKCkpOworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5
KCkpCisgICAgICAgIG1pbWVUeXBlID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMo
KS0+TUlNRVR5cGVGb3JFeHRlbnNpb24oZmkuc3VmZml4KCkpOwogCi0gICAgaWYgKCFtaW1lVHlw
ZS5sZW5ndGgoKSkKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
T2JqZWN0Q29udGVudEZyYW1lOwogCiAgICAgT2JqZWN0Q29udGVudFR5cGUgcGx1Z0luVHlwZSA9
IE9iamVjdENvbnRlbnROb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCBiM2RmM2I1OGYxM2U3NGRkYzViZTQ5MGY0ODMxMDk2ZTZjNDNjN2M0Li41NmJkMDU3MGY5ZDgx
ZjQwZjRiMmFiOTUxZDc4ZWM5YjZhNWE2YmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtMTQyMywxOSArMTQyMywxOSBAQCBPYmplY3RDb250ZW50VHlwZSBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdAog
ICAgIC8vIGlzIGNvbnNvbGlkYXRlZC4KIAogICAgIFN0cmluZyBtaW1lVHlwZSA9IG1pbWVUeXBl
SW47Ci0gICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkgewotICAgICAgICBTdHJpbmcgZXh0ZW5z
aW9uID0gdXJsLnBhdGgoKS5zdWJzdHJpbmcodXJsLnBhdGgoKS5yZXZlcnNlRmluZCgnLicpICsg
MSkubG93ZXIoKTsKIAotICAgICAgICAvLyBUcnkgdG8gZ3Vlc3MgdGhlIE1JTUUgdHlwZSBmcm9t
IHRoZSBleHRlbnNpb24uCi0gICAgICAgIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKTsKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0
eSgpKSB7CisgICAgICAgIC8vIFRyeSB0byBndWVzcyB0aGUgTUlNRSB0eXBlIGZyb20gdGhlIGZp
bGUgbmFtZS4KKyAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlw
ZUZvclBhdGgodXJsLnBhdGgoKSwgZmFsc2UpOworICAgIH0KIAotICAgICAgICBpZiAobWltZVR5
cGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGEgcGx1Zy1p
biBhcm91bmQgdGhhdCBjYW4gaGFuZGxlIHRoZSBleHRlbnNpb24uCi0gICAgICAgICAgICBpZiAo
V2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICAgICAgICAgIGlm
IChQbHVnaW5EYXRhKiBwbHVnaW5EYXRhID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0
YSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwbHVnaW5TdXBwb3J0c0V4dGVuc2lvbihw
bHVnaW5EYXRhLCBleHRlbnNpb24pKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9i
amVjdENvbnRlbnROZXRzY2FwZVBsdWdpbjsKLSAgICAgICAgICAgICAgICB9CisgICAgaWYgKG1p
bWVUeXBlLmlzRW1wdHkoKSkgeworICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uID0gdXJsLnBhdGgo
KS5zdWJzdHJpbmcodXJsLnBhdGgoKS5yZXZlcnNlRmluZCgnLicpICsgMSkubG93ZXIoKTsKKyAg
ICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHBsdWctaW4gYXJvdW5kIHRoYXQgY2FuIGhhbmRs
ZSB0aGUgZXh0ZW5zaW9uLgorICAgICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKSkgeworICAgICAgICAgICAgaWYgKFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEgPSB3ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5wbHVnaW5EYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocGx1
Z2luU3VwcG9ydHNFeHRlbnNpb24ocGx1Z2luRGF0YSwgZXh0ZW5zaW9uKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROZXRzY2FwZVBsdWdpbjsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176702</attachid>
            <date>2012-11-29 04:40:57 -0800</date>
            <delta_ts>2013-10-02 21:17:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103056-20121129133803.patch</filename>
            <type>text/plain</type>
            <size>14265</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM4MDNlNDVkZTJkZWJj
OWRmNjY3ZWU5MTkyZDYxMDlkYWJlMzdiZS4uNmJkM2EwMzA4NjI3ZjgzYzQ0ZmJmMTAyNWZiYmE4
NjMwOGFhMzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTExLTI5ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtR
dF0gR3Vlc3MgbWltZS10eXBlIGJ5IGZ1bGwgZmlsZW5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExvb2t1cCBtaW1ldHlwZSBieSBmdWxsIGZpbGVu
YW1lIGluc3RlYWQgb2YganVzdCBleHRlbnNpb24uIFRvIHRlbGwgcmVwbGFjZSBnZXRNSU1FVHlw
ZUZvckV4dGVuc2lvbiB3aXRoCisgICAgICAgIGdldE1JTUVUeXBlRm9yUGF0aCwgYSBmbGFnIGhh
cyBiZWVuIGFkZGVkIHRvIGdldE1JTUVUeXBlRm9yUGF0aCB0byBpbmRpY2F0ZSBpdCBpcyB1c2Vk
IGluIGEgcHJlbG9hZCAKKyAgICAgICAgc2l0dWF0aW9uIGFuZCBzaG91bGQgYWN0IGxpa2UgZ2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24uCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29udGVudFR5cGVG
cm9tRmlsZU5hbWUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGVmYXVsdE9iamVjdENvbnRlbnRUeXBlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1J
TUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCk6CisgICAgICAgICogcGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5oOgorICAgICAgICAoTUlNRVR5cGVSZWdpc3RyeSk6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3RyeUNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCk6CisgICAg
ICAgICogcGxhdGZvcm0vcXQvTUlNRVR5cGVSZWdpc3RyeVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCk6CisKIDIwMTItMTEtMjgg
IFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXaW5dIEVu
YWJsZSB1c2FnZSBvZiBRVFdFQktJVF9QTFVHSU5fUEFUSC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggN2Vj
OGZiYzNlYmMzOGIwNzFmMTY2N2ZhNTk2YzM4OWNlZmViNzQxYi4uNWVlYzc1NTZjZDNiMjJiYzM2
MjRhODY1MDU4MDBkNjBhYTYxMDA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0xMS0yOSAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNv
bT4KKworICAgICAgICBbUXRdIEd1ZXNzIG1pbWUtdHlwZSBieSBmdWxsIGZpbGVuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwNTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb29rdXAgbWltZXR5
cGUgYnkgZmlsZW5hbWUgaW5zdGVhZCBvZiBqdXN0IGxhc3QgZXh0ZW5zaW9uLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpvYmplY3RDb250ZW50VHlwZSk6CisKIDIwMTItMTEt
MjggIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAg
W1RleG1hcF0gUkVHUkVTU0lPTihyMTM1NjIwKSBRdFRlc3RCcm93c2VyIGNyYXNoZXMgb24gR29v
Z2xlLWdyYXZpdHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDYzNjM4YzU4ZWI1NTNiNWVmNTA4MGE2ZjQwYWFk
ZGI0OGFmZjUxNy4uYzRlZTVmZjdiOGVjY2U0NTA3ZWVmNTBjMTNmNDkyZWMxNmVjOWFiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTI5ICBBbGxhbiBTYW5kZmVsZCBKZW5z
ZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFtRdF0gR3Vlc3MgbWltZS10
eXBlIGJ5IGZ1bGwgZmlsZW5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIExvb2t1cCBtaW1ldHlwZSBieSBmaWxlbmFtZSBpbnN0ZWFkIG9mIGp1c3Qg
bGFzdCBleHRlbnNpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKKwogMjAxMi0xMS0yOCAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjEz
NTk2Mik6IG1fcGVuZGluZ1N5bmNCYWNraW5nU3RvcmVzIG5lZWRzIHRvIGJlIGNsZWFyZWQgaW4g
TGF5ZXJUcmVlUmVuZGVyZXI6OnB1cmdlR0xSZXNvdXJjZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpp
bmRleCBiOWIyMTlhODM0MWMyOTYxOTk4MGZiMjc2NTc2OTI0ZjJkN2M0NTU1Li4yYmRkZWYxZTk4
ZjkyZWU5OGUzNzlmNmZhNmZkZDZjNDI1ZGYyZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
NDQ2LDYgKzQ0Niw3IEBAIF9fWk43V2ViQ29yZTE2TGVnYWN5V2ViQXJjaGl2ZTZjcmVhdGVFUE5T
XzVGcmFtZUUKIF9fWk43V2ViQ29yZTE2TGVnYWN5V2ViQXJjaGl2ZTZjcmVhdGVFUE5TXzVSYW5n
ZUUKIF9fWk43V2ViQ29yZTE2TGVnYWN5V2ViQXJjaGl2ZTZjcmVhdGVFdgogX19aTjdXZWJDb3Jl
MTZNSU1FVHlwZVJlZ2lzdHJ5MTVjYW5TaG93TUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCitfX1pO
N1dlYkNvcmUxNk1JTUVUeXBlUmVnaXN0cnkxOGdldE1JTUVUeXBlRm9yUGF0aEVSS04zV1RGNlN0
cmluZ0VOU18xNUdldE1JTUVUeXBlRmxhZ0UKIF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3Ry
eTIzZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb25FUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUx
Nk1JTUVUeXBlUmVnaXN0cnkyNGlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUVSS04zV1RGNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZTE2TUlNRVR5cGVSZWdpc3RyeTI2Z2V0U3VwcG9ydGVkSW1hZ2VNSU1F
VHlwZXNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggNjkyYmRlMWFjYTBhZDdjMTYxYzRk
M2Y0OGVkMjEzNmEzYTUyYWRjMC4uZDkzNDQyOTBiZjAyZGEwYmU3NmE5ZmQ5OGNjNThlYzdmZGE5
OTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC0zNywxNCArMzcsMTMgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogc3RhdGljIFN0cmluZyBnZXRDb250ZW50VHlwZUZyb21GaWxlTmFtZShj
b25zdCBTdHJpbmcmIG5hbWUsIEZpbGU6OkNvbnRlbnRUeXBlTG9va3VwUG9saWN5IHBvbGljeSkK
IHsKICAgICBTdHJpbmcgdHlwZTsKLSAgICBpbnQgaW5kZXggPSBuYW1lLnJldmVyc2VGaW5kKCcu
Jyk7Ci0gICAgaWYgKGluZGV4ICE9IC0xKSB7Ci0gICAgICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6
V2VsbEtub3duQ29udGVudFR5cGVzKQorICAgIGlmIChwb2xpY3kgPT0gRmlsZTo6V2VsbEtub3du
Q29udGVudFR5cGVzKSB7CisgICAgICAgIGludCBpbmRleCA9IG5hbWUucmV2ZXJzZUZpbmQoJy4n
KTsKKyAgICAgICAgaWYgKGluZGV4ICE9IC0xKQogICAgICAgICAgICAgdHlwZSA9IE1JTUVUeXBl
UmVnaXN0cnk6OmdldFdlbGxLbm93bk1JTUVUeXBlRm9yRXh0ZW5zaW9uKG5hbWUuc3Vic3RyaW5n
KGluZGV4ICsgMSkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChwb2xpY3kg
PT0gRmlsZTo6QWxsQ29udGVudFR5cGVzKTsKLSAgICAgICAgICAgIHR5cGUgPSBNSU1FVHlwZVJl
Z2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihuYW1lLnN1YnN0cmluZyhpbmRleCArIDEp
KTsKLSAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChwb2xpY3kgPT0gRmls
ZTo6QWxsQ29udGVudFR5cGVzKTsKKyAgICAgICAgdHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yUGF0aChuYW1lLCBHZXRNSU1FVHlwZVByZUxvYWQpOwogICAgIH0KICAgICBy
ZXR1cm4gdHlwZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDFk
ZDhkMTQzZjdlN2M4NjFiYmQ1NzUyZjJiNDY5YTU4ZGY0ODA2OWMuLmQ5YTA0ZGIwZDEzZGVmNDVi
ZGI2ZjYzNTlhYmUzMzI5MTUyOTJlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtODg0LDkgKzg4NCw4IEBAIE9iamVjdENvbnRlbnRUeXBlIEZyYW1lTG9hZGVyOjpk
ZWZhdWx0T2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTCiAgICAgU3Ry
aW5nIGRlY29kZWRQYXRoID0gZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkpOwog
ICAgIFN0cmluZyBleHRlbnNpb24gPSBkZWNvZGVkUGF0aC5zdWJzdHJpbmcoZGVjb2RlZFBhdGgu
cmV2ZXJzZUZpbmQoJy4nKSArIDEpOwogCi0gICAgLy8gV2UgZG9uJ3QgdXNlIE1JTUVUeXBlUmVn
aXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCgpIGJlY2F1c2UgaXQgcmV0dXJucyAiYXBwbGljYXRp
b24vb2N0ZXQtc3RyZWFtIiB1cG9uIGZhaWx1cmUKICAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgp
KQotICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0
ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgICAgIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6
Z2V0TUlNRVR5cGVGb3JQYXRoKGRlY29kZWRQYXRoLCBHZXRNSU1FVHlwZVByZUxvYWQpOwogCiAj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKSAmJiAhUExBVEZPUk0oRUZM
KSAvLyBNYWMgaGFzIG5vIFBsdWdpbkRhdGFiYXNlLCBub3IgZG9lcyBDaHJvbWl1bSBvciBFRkwK
ICAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
SU1FVHlwZVJlZ2lzdHJ5LmNwcAppbmRleCBjNWYzMTQwN2MyZDMyMmNkOWJlMThkZWVjNWYzYjhl
MjEzNDgyNmRkLi42Njc0ZTlmNTAwM2MyYTI3NGU0NTIyMGUwYjAwYzgzNmFlMjVhN2ViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtNDkyLDcg
KzQ5Miw3IEBAIFN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRXZWxsS25vd25NSU1FVHlwZUZv
ckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvCiB9CiAKICNpZiAhUExBVEZPUk0oUVQp
Ci1TdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKK1N0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoY29u
c3QgU3RyaW5nJiBwYXRoLCBHZXRNSU1FVHlwZUZsYWcgZmxhZykKIHsKICAgICBzaXplX3QgcG9z
ID0gcGF0aC5yZXZlcnNlRmluZCgnLicpOwogICAgIGlmIChwb3MgIT0gbm90Rm91bmQpIHsKQEAg
LTUwMSw3ICs1MDEsOSBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQ
YXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAgIHJldHVybiBkZWZhdWx0TUlNRVR5
cGUoKTsKKyAgICBpZiAoZmxhZyA9PSBHZXRNSU1FVHlwZUZ1bGwpCisgICAgICAgIHJldHVybiBk
ZWZhdWx0TUlNRVR5cGUoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oCmluZGV4IDU2MTJiOTIyM2Ey
MzQxYjE5N2Q1MzhkZWE0N2U0OTg0ZTRiM2NjYTEuLjNhZjNiNDQ1ZGFkMzc3ZmZhNDk2ZDkyNWFk
YmJkNDI4MzAxZDQ3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIEdl
dE1JTUVUeXBlRmxhZyB7IEdldE1JTUVUeXBlUHJlTG9hZCwgR2V0TUlNRVR5cGVGdWxsIH07CisK
IGNsYXNzIE1JTUVUeXBlUmVnaXN0cnkgewogcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgZ2V0
TUlNRVR5cGVGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwpAQCAtNDMsNyAr
NDUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0
ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmlu
Zz4gZ2V0TWVkaWFNSU1FVHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24p
OwogCi0gICAgc3RhdGljIFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBw
YXRoKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcm
IHBhdGgsIEdldE1JTUVUeXBlRmxhZyA9IEdldE1JTUVUeXBlRnVsbCk7CiAKICAgICAvLyBDaGVj
ayB0byBzZWUgaWYgYSBtaW1lIHR5cGUgaXMgc3VpdGFibGUgZm9yIGJlaW5nIGxvYWRlZCBpbmxp
bmUgYXMgYW4KICAgICAvLyBpbWFnZSAoZS5nLiwgPGltZz4gdGFncykuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJlZ2lzdHJ5Q2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3RyeUNo
cm9taXVtLmNwcAppbmRleCBmNzY0YzNkYjk5Mzc4NGEyMGIxMGY0YTdmNDllZWIwN2RjMGIxYjY1
Li4wYWIzNjdlZjllM2IyZGFmNTkzNzA3YzJiNzc4YzRjMDNlM2Y3M2MwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJlZ2lzdHJ5Q2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0
cnlDaHJvbWl1bS5jcHAKQEAgLTcyLDExICs3MiwxMSBAQCBTdHJpbmcgTUlNRVR5cGVSZWdpc3Ry
eTo6Z2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQog
ICAgIHJldHVybiBleHQ7CiB9CiAKLVN0cmluZyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlw
ZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQorU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIEdldE1JTUVUeXBlRmxhZyBmbGFn
KQogewogICAgIGludCBwb3MgPSBwYXRoLnJldmVyc2VGaW5kKCcuJyk7CiAgICAgaWYgKHBvcyA8
IDApCi0gICAgICAgIHJldHVybiAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIjsKKyAgICAgICAg
cmV0dXJuIChmbGFnID09IEdldE1JTUVUeXBlRnVsbCkgPyAiYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtIiA6IFN0cmluZygpOwogICAgIFN0cmluZyBleHRlbnNpb24gPSBwYXRoLnN1YnN0cmluZyhw
b3MgKyAxKTsKICAgICBTdHJpbmcgbWltZVR5cGUgPSBnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihl
eHRlbnNpb24pOwogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKQEAgLTg0LDcgKzg0LDcg
QEAgU3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJp
bmcmIHBhdGgpCiAgICAgICAgIC8vIGlmIGEgcGx1Z2luIGNhbiBoYW5kbGUgdGhlIGV4dGVuc2lv
bi4KICAgICAgICAgbWltZVR5cGUgPSBnZXRQbHVnaW5NaW1lVHlwZUZyb21FeHRlbnNpb24oZXh0
ZW5zaW9uKTsKICAgICB9Ci0gICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICBpZiAoZmxh
ZyA9PSBHZXRNSU1FVHlwZUZ1bGwgJiYgbWltZVR5cGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7CiAgICAgcmV0dXJuIG1pbWVUeXBlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvTUlNRVR5cGVSZWdpc3RyeVF0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L01JTUVUeXBlUmVnaXN0cnlRdC5jcHAK
aW5kZXggZTQ1Mjc1ZTA5ZGUyMmVlYzA0N2EwNjQ4MmVhM2E1ZTIxYmU3ODc3Mi4uNGQzZWYwOWU2
YjMwMDY2MDZlMzBlZTM5YWExMDdiN2JkMmVjYjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvTUlNRVR5cGVSZWdpc3RyeVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9NSU1FVHlwZVJlZ2lzdHJ5UXQuY3BwCkBAIC03NSwxMSArNzUsMTQgQEAg
U3RyaW5nIE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyAmZXh0KQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotU3RyaW5nIE1JTUVUeXBlUmVn
aXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCitTdHJpbmcgTUlN
RVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgR2V0
TUlNRVR5cGVGbGFnIGZsYWcpCiB7Ci0gICAgUU1pbWVUeXBlIHR5cGUgPSBRTWltZURhdGFiYXNl
KCkubWltZVR5cGVGb3JGaWxlKHBhdGgsIFFNaW1lRGF0YWJhc2U6Ok1hdGNoRXh0ZW5zaW9uKTsK
LSAgICBpZiAodHlwZS5pc1ZhbGlkKCkgJiYgIXR5cGUuaXNEZWZhdWx0KCkpCi0gICAgICAgIHJl
dHVybiB0eXBlLm5hbWUoKTsKKyAgICBRTWltZVR5cGUgbWltZVR5cGUgPSBRTWltZURhdGFiYXNl
KCkubWltZVR5cGVGb3JGaWxlKHBhdGgsIFFNaW1lRGF0YWJhc2U6Ok1hdGNoRXh0ZW5zaW9uKTsK
KyAgICBpZiAobWltZVR5cGUuaXNWYWxpZCgpICYmICFtaW1lVHlwZS5pc0RlZmF1bHQoKSkgewor
ICAgICAgICBpZiAoZmxhZyA9PSBHZXRNSU1FVHlwZVByZUxvYWQgJiYgbWltZVR5cGUuaW5oZXJp
dHMoUVN0cmluZ0xpdGVyYWwoImFwcGxpY2F0aW9uL3gtZXhlY3V0YWJsZSIpKSkKKyAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIG1pbWVUeXBlLm5hbWUoKTsKKyAg
ICB9CiAKICAgICBjb25zdCBFeHRlbnNpb25NYXAgKmUgPSBleHRlbnNpb25NYXA7CiAgICAgd2hp
bGUgKGUtPmV4dGVuc2lvbikgewpAQCAtODgsNyArOTEsOSBAQCBTdHJpbmcgTUlNRVR5cGVSZWdp
c3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICAgICAgKytl
OwogICAgIH0KIAotICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGUoKTsKKyAgICBpZiAoZmxhZyA9
PSBHZXRNSU1FVHlwZUZ1bGwpCisgICAgICAgIHJldHVybiBkZWZhdWx0TUlNRVR5cGUoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKIFZlY3RvcjxTdHJpbmc+IE1JTUVUeXBlUmVnaXN0cnk6
OmdldEV4dGVuc2lvbnNGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCmluZGV4IDgwMjhiZjkxZTBhNGI0ZWRmNDc3MzBjMTU4NGE4MTI5M2UzYWI0MWMu
LjdlZmI3ZTgwZDI5OThjN2ExOGZmYWQwNmZjNDQ5NzI4OThhMTU4ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNw
cApAQCAtMTMzNywyMiArMTMzNywyMSBAQCBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNs
aWVudFF0OjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZwogT2JqZWN0
Q29udGVudFR5cGUgRnJhbWVMb2FkZXJDbGllbnRRdDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlSW4sIGJvb2wgc2hvdWxkUHJlZmVyUGx1
Z0luc0ZvckltYWdlcykKIHsKICAgICAvLyBxRGVidWcoKTw8IiArKysrKysrKysrKysrKysrIHVy
bCBpcyAiPDx1cmwuc3RyaW5nKCk8PCIsIG1pbWUgPSAiPDxtaW1lVHlwZUluOwotICAgIFFGaWxl
SW5mbyBmaSh1cmwucGF0aCgpKTsKLSAgICBTdHJpbmcgZXh0ZW5zaW9uID0gZmkuc3VmZml4KCk7
Ci0gICAgaWYgKG1pbWVUeXBlSW4gPT0gImFwcGxpY2F0aW9uL3gtcXQtcGx1Z2luIiB8fCBtaW1l
VHlwZUluID09ICJhcHBsaWNhdGlvbi94LXF0LXN0eWxlZC13aWRnZXQiKQorICAgIGlmIChNSU1F
VHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUobWltZVR5cGVJbikpCiAg
ICAgICAgIHJldHVybiBPYmplY3RDb250ZW50T3RoZXJQbHVnaW47CiAKLSAgICBpZiAodXJsLmlz
RW1wdHkoKSAmJiAhbWltZVR5cGVJbi5sZW5ndGgoKSkKKyAgICBpZiAodXJsLmlzRW1wdHkoKSAm
JiBtaW1lVHlwZUluLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnROb25l
OwogCiAgICAgU3RyaW5nIG1pbWVUeXBlID0gbWltZVR5cGVJbjsKLSAgICBpZiAoIW1pbWVUeXBl
Lmxlbmd0aCgpKQotICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVU
eXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkK
KyAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgo
dXJsLnBhdGgoKSwgR2V0TUlNRVR5cGVQcmVMb2FkKTsKIAotICAgIGlmICghbWltZVR5cGUubGVu
Z3RoKCkpCi0gICAgICAgIG1pbWVUeXBlID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdp
bnMoKS0+TUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKTsKKyAgICBRRmlsZUluZm8gZmko
dXJsLnBhdGgoKSk7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgbWltZVR5
cGUgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5NSU1FVHlwZUZvckV4dGVu
c2lvbihmaS5zdWZmaXgoKSk7CiAKLSAgICBpZiAoIW1pbWVUeXBlLmxlbmd0aCgpKQorICAgIGlm
IChtaW1lVHlwZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50RnJhbWU7
CiAKICAgICBPYmplY3RDb250ZW50VHlwZSBwbHVnSW5UeXBlID0gT2JqZWN0Q29udGVudE5vbmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGIzZGYzYjU4ZjEzZTc0ZGRj
NWJlNDkwZjQ4MzEwOTZlNmM0M2M3YzQuLjgzY2NjMTk0ZmRiMmIzYmZiMDBiODlmYmU5MTE4MzA5
YTUyNDRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNDIzLDE5
ICsxNDIzLDE5IEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmpl
Y3RDb250ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0CiAgICAgLy8gaXMgY29uc29saWRh
dGVkLgogCiAgICAgU3RyaW5nIG1pbWVUeXBlID0gbWltZVR5cGVJbjsKLSAgICBpZiAobWltZVR5
cGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFN0cmluZyBleHRlbnNpb24gPSB1cmwucGF0aCgpLnN1
YnN0cmluZyh1cmwucGF0aCgpLnJldmVyc2VGaW5kKCcuJykgKyAxKS5sb3dlcigpOwogCi0gICAg
ICAgIC8vIFRyeSB0byBndWVzcyB0aGUgTUlNRSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4KLSAg
ICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lv
bihleHRlbnNpb24pOworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8g
VHJ5IHRvIGd1ZXNzIHRoZSBNSU1FIHR5cGUgZnJvbSB0aGUgZmlsZSBuYW1lLgorICAgICAgICBt
aW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yUGF0aCh1cmwucGF0aCgp
LCBHZXRNSU1FVHlwZVByZUxvYWQpOworICAgIH0KIAotICAgICAgICBpZiAobWltZVR5cGUuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGEgcGx1Zy1pbiBhcm91
bmQgdGhhdCBjYW4gaGFuZGxlIHRoZSBleHRlbnNpb24uCi0gICAgICAgICAgICBpZiAoV2ViUGFn
ZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICAgICAgICAgIGlmIChQbHVn
aW5EYXRhKiBwbHVnaW5EYXRhID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwbHVnaW5TdXBwb3J0c0V4dGVuc2lvbihwbHVnaW5E
YXRhLCBleHRlbnNpb24pKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdENv
bnRlbnROZXRzY2FwZVBsdWdpbjsKLSAgICAgICAgICAgICAgICB9CisgICAgaWYgKG1pbWVUeXBl
LmlzRW1wdHkoKSkgeworICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uID0gdXJsLnBhdGgoKS5zdWJz
dHJpbmcodXJsLnBhdGgoKS5yZXZlcnNlRmluZCgnLicpICsgMSkubG93ZXIoKTsKKyAgICAgICAg
Ly8gQ2hlY2sgaWYgdGhlcmUncyBhIHBsdWctaW4gYXJvdW5kIHRoYXQgY2FuIGhhbmRsZSB0aGUg
ZXh0ZW5zaW9uLgorICAgICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KSkgeworICAgICAgICAgICAgaWYgKFBsdWdpbkRhdGEqIHBsdWdpbkRhdGEgPSB3ZWJQYWdlLT5j
b3JlUGFnZSgpLT5wbHVnaW5EYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocGx1Z2luU3Vw
cG9ydHNFeHRlbnNpb24ocGx1Z2luRGF0YSwgZXh0ZW5zaW9uKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIE9iamVjdENvbnRlbnROZXRzY2FwZVBsdWdpbjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>