<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://pkp.sfu.ca/bugzilla/bugzilla.dtd">

<bugzilla version="4.2.5+"
          urlbase="http://pkp.sfu.ca/bugzilla/"
          
          maintainer="pkp-hosted@sfu.ca"
>

    <bug>
          <bug_id>4934</bug_id>
          
          <creation_ts>2009-12-08 21:10:00 -0800</creation_ts>
          <short_desc>Convert legacy Request calls to new router architecture</short_desc>
          <delta_ts>2010-01-04 13:16:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>PKP-LIB</product>
          <component>Application Refactoring</component>
          <version>Undetermined</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="jerico">jerico.dev</reporter>
          <assigned_to name="PKP Support">pkp-support</assigned_to>
          <cc>alec</cc>
    
    <cc>jerico.dev</cc>
    
    <cc>juan</cc>
          
          

      

      

      

          <long_desc isprivate="0">
            <commentid>17635</commentid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-08 21:10:30 -0800</bug_when>
            <thetext>Todo: add an example patch for a typical handler refactoring.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17684</commentid>
              <attachid>2726</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-10 14:24:20 -0800</bug_when>
            <thetext>Created attachment 2726
sample refactoring for a page</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17685</commentid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-10 14:26:24 -0800</bug_when>
            <thetext>Please have a look at the attached patch for an example of how the new router/request objects are passed along to pages and how they are used. If you have a more complex case or need to pass the request along to another class then you can always ask me of course.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17700</commentid>
            <who name="Alec Smecher">alec</who>
            <bug_when>2009-12-11 10:42:43 -0800</bug_when>
            <thetext>Florian, looks good -- but it would be nice to have a couple of convenience methods, i.e. Router::getRequestedJournalPath, which would invoke Router::getRequestedContextPath($request, CONTEXT_JOURNAL, false);</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17707</commentid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-11 13:09:22 -0800</bug_when>
            <thetext>Hi Alec,

you are right. It makes sense to simplify the code here for convenience.

I propose something slightly different, though. I&apos;ve seen that much application specific code in the classes folder is just due to the old app-specific request convenience methods and can be re-factored to the library if we avoid putting in new app-specific methods. Even in app-specific pages/classes any kind of future re-factoring/modularization/clustering, etc. will be easier if we avoid app-specific method calls.

As we don&apos;t need to be backwards compatible in the new router I&apos;d change the semantics and defaults of the method to something more useful, i.e. getRequestedContextPath(&amp;$request, $requestedContextLevel = 1) {...} which always returns a scalar and getRequestedContextPaths(&amp;$request) {...} which always returns an array. (And similarly for other context-methods.)

Backwards compatibility is not a problem as we can maintain the old method behavior in the Request&apos;s compatibility method.

For applications with context depth 0 or 1 (all except OCS) this allows us to simply use $router-&gt;getRequestedContextPath($request) in all cases which I believe should be equally convenient. Only OCS would require to set the second argument and only if a scheduled conference is called.

It&apos;s true that your proposal has better readability but I think that discouraging application specific code weighs more as it considerably reduces maintenance cost.

Kind regards,
Florian</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17708</commentid>
            <who name="Alec Smecher">alec</who>
            <bug_when>2009-12-11 13:17:13 -0800</bug_when>
            <thetext>Florian, sounds good to me.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17710</commentid>
              <attachid>2732</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-11 14:20:11 -0800</bug_when>
            <thetext>Created attachment 2732
simplify request path access: patch against omp pre-release cvs</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17711</commentid>
              <attachid>2733</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-11 14:22:11 -0800</bug_when>
            <thetext>Created attachment 2733
simplify request path access: patch against ojs pre-2.3.1 cvs</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17712</commentid>
              <attachid>2734</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-11 14:28:59 -0800</bug_when>
            <thetext>Created attachment 2734
simplify request path access: patch against pkp-lib pre-release cvs (pre OJS 2.3.1)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17713</commentid>
              <attachid>2735</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2009-12-11 14:31:12 -0800</bug_when>
            <thetext>Created attachment 2735
sample refactoring for a page class (against OJS pre 2.3.1 cvs)

@Alec: That&apos;s now the simplified code. Is that ok?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17748</commentid>
            <who name="Alec Smecher">alec</who>
            <bug_when>2009-12-12 21:09:02 -0800</bug_when>
            <thetext>Looks good!</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17755</commentid>
            <who name="Juan Pablo Alperin">juan</who>
            <bug_when>2009-12-13 18:39:46 -0800</bug_when>
            <thetext>worth noting that the PKPHandler class should be given special attention.  There is a call there to Request::getContext() that may need to be fixed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17884</commentid>
              <attachid>2787</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2010-01-04 11:13:43 -0800</bug_when>
            <thetext>Created attachment 2787
sample refactoring for an infrastructure class in pkp lib (some callers are not yet refactored)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>17885</commentid>
              <attachid>2788</attachid>
            <who name="jerico">jerico.dev</who>
            <bug_when>2010-01-04 11:14:54 -0800</bug_when>
            <thetext>Created attachment 2788
a more complex refactoring example</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2726</attachid>
            <date>2009-12-10 14:24:00 -0800</date>
            <delta_ts>2009-12-11 14:23:27 -0800</delta_ts>
            <desc>sample refactoring for a page</desc>
            <filename>patch-ojs.diff</filename>
            <type>text/plain</type>
            <size>2428</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb2pzLWN2cwpJbmRleDogcGFn
ZXMvaW5kZXgvSW5kZXhIYW5kbGVyLmluYy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9v
anMyL3BhZ2VzL2luZGV4L0luZGV4SGFuZGxlci5pbmMucGhwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjQwCmRpZmYgLXUgLXIxLjQwIEluZGV4SGFuZGxlci5pbmMucGhwCi0tLSBwYWdlcy9pbmRl
eC9JbmRleEhhbmRsZXIuaW5jLnBocAkxIFNlcCAyMDA5IDAyOjAwOjE2IC0wMDAwCTEuNDAKKysr
IHBhZ2VzL2luZGV4L0luZGV4SGFuZGxlci5pbmMucGhwCTEwIERlYyAyMDA5IDIyOjIyOjIxIC0w
MDAwCkBAIC0yOCwxOCArMjgsMjEgQEAKIAkvKioKIAkgKiBJZiBubyBqb3VybmFsIGlzIHNlbGVj
dGVkLCBkaXNwbGF5IGxpc3Qgb2Ygam91cm5hbHMuCiAJICogT3RoZXJ3aXNlLCBkaXNwbGF5IHRo
ZSBpbmRleCBwYWdlIGZvciB0aGUgc2VsZWN0ZWQgam91cm5hbC4KKwkgKiBAcGFyYW0gJGFyZ3Mg
YXJyYXkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAogCSAqLwotCWZ1bmN0aW9uIGluZGV4
KCRhcmdzKSB7CisJZnVuY3Rpb24gaW5kZXgoJGFyZ3MsICYkcmVxdWVzdCkgewogCQkkdGhpcy0+
dmFsaWRhdGUoKTsKIAkJJHRoaXMtPnNldHVwVGVtcGxhdGUoKTsKIAorCQkkcm91dGVyID0mICRy
ZXF1ZXN0LT5nZXRSb3V0ZXIoKTsKIAkJJHRlbXBsYXRlTWdyID0mIFRlbXBsYXRlTWFuYWdlcjo6
Z2V0TWFuYWdlcigpOwogCQkkam91cm5hbERhbyA9JiBEQU9SZWdpc3RyeTo6Z2V0REFPKCdKb3Vy
bmFsREFPJyk7Ci0JCSRqb3VybmFsUGF0aCA9IFJlcXVlc3Q6OmdldFJlcXVlc3RlZEpvdXJuYWxQ
YXRoKCk7CisJCSRqb3VybmFsUGF0aCA9ICRyb3V0ZXItPmdldFJlcXVlc3RlZENvbnRleHRQYXRo
KCRyZXF1ZXN0LCBDT05URVhUX0pPVVJOQUwsIGZhbHNlKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3Np
Z24oJ2hlbHBUb3BpY0lkJywgJ3VzZXIuaG9tZScpOwogCiAJCWlmICgkam91cm5hbFBhdGggIT0g
J2luZGV4JyAmJiAkam91cm5hbERhby0+am91cm5hbEV4aXN0c0J5UGF0aCgkam91cm5hbFBhdGgp
KSB7Ci0JCQkkam91cm5hbCA9JiBSZXF1ZXN0OjpnZXRKb3VybmFsKCk7CisJCQkkam91cm5hbCA9
JiAkcm91dGVyLT5nZXRDb250ZXh0KCRyZXF1ZXN0LCBDT05URVhUX0pPVVJOQUwpOwogCiAJCQkv
LyBBc3NpZ24gaGVhZGVyIGFuZCBjb250ZW50IGZvciBob21lIHBhZ2UKIAkJCSR0ZW1wbGF0ZU1n
ci0+YXNzaWduKCdkaXNwbGF5UGFnZUhlYWRlclRpdGxlJywgJGpvdXJuYWwtPmdldExvY2FsaXpl
ZFBhZ2VIZWFkZXJUaXRsZSh0cnVlKSk7CkBAIC03MywxOCArNzYsMTggQEAKIAkJCQkJJHRlbXBs
YXRlTWdyLT5hc3NpZ24oJ2Fubm91bmNlbWVudHMnLCAkYW5ub3VuY2VtZW50cyk7CiAJCQkJCSR0
ZW1wbGF0ZU1nci0+YXNzaWduKCdlbmFibGVBbm5vdW5jZW1lbnRzSG9tZXBhZ2UnLCAkZW5hYmxl
QW5ub3VuY2VtZW50c0hvbWVwYWdlKTsKIAkJCQl9Ci0JCQl9IAorCQkJfQogCQkJJHRlbXBsYXRl
TWdyLT5kaXNwbGF5KCdpbmRleC9qb3VybmFsLnRwbCcpOwogCQl9IGVsc2UgewogCQkJJHNpdGVE
YW8gPSYgREFPUmVnaXN0cnk6OmdldERBTygnU2l0ZURBTycpOwogCQkJJHNpdGUgPSYgJHNpdGVE
YW8tPmdldFNpdGUoKTsKIAogCQkJaWYgKCRzaXRlLT5nZXRSZWRpcmVjdCgpICYmICgkam91cm5h
bCA9ICRqb3VybmFsRGFvLT5nZXRKb3VybmFsKCRzaXRlLT5nZXRSZWRpcmVjdCgpKSkgIT0gbnVs
bCkgewotCQkJCVJlcXVlc3Q6OnJlZGlyZWN0KCRqb3VybmFsLT5nZXRQYXRoKCkpOworCQkJCSRy
ZXF1ZXN0LT5yZWRpcmVjdCgkam91cm5hbC0+Z2V0UGF0aCgpKTsKIAkJCX0KIAogCQkJJHRlbXBs
YXRlTWdyLT5hc3NpZ24oJ2ludHJvJywgJHNpdGUtPmdldExvY2FsaXplZEludHJvKCkpOwotCQkJ
JHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2pvdXJuYWxGaWxlc1BhdGgnLCBSZXF1ZXN0OjpnZXRCYXNl
VXJsKCkgLiAnLycgLiBDb25maWc6OmdldFZhcignZmlsZXMnLCAncHVibGljX2ZpbGVzX2Rpcicp
IC4gJy9qb3VybmFscy8nKTsKKwkJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdqb3VybmFsRmlsZXNQ
YXRoJywgJHJlcXVlc3QtPmdldEJhc2VVcmwoKSAuICcvJyAuIENvbmZpZzo6Z2V0VmFyKCdmaWxl
cycsICdwdWJsaWNfZmlsZXNfZGlyJykgLiAnL2pvdXJuYWxzLycpOwogCQkJJGpvdXJuYWxzID0m
ICRqb3VybmFsRGFvLT5nZXRFbmFibGVkSm91cm5hbHMoKTsKIAkJCSR0ZW1wbGF0ZU1nci0+YXNz
aWduX2J5X3JlZignam91cm5hbHMnLCAkam91cm5hbHMpOwogCQkJJHRlbXBsYXRlTWdyLT5zZXRD
YWNoZWFiaWxpdHkoQ0FDSEVBQklMSVRZX1BVQkxJQyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2732</attachid>
            <date>2009-12-11 14:20:00 -0800</date>
            <delta_ts>2009-12-11 14:20:11 -0800</delta_ts>
            <desc>simplify request path access: patch against omp pre-release cvs</desc>
            <filename>patch-omp.diff</filename>
            <type>text/plain</type>
            <size>1259</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb21wLWN2cwpJbmRleDogY2xh
c3Nlcy9jb3JlL1JlcXVlc3QuaW5jLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL29tcC9j
bGFzc2VzL2NvcmUvUmVxdWVzdC5pbmMucGhwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRp
ZmYgLXUgLXIxLjExIFJlcXVlc3QuaW5jLnBocAotLS0gY2xhc3Nlcy9jb3JlL1JlcXVlc3QuaW5j
LnBocAkyIERlYyAyMDA5IDA2OjIyOjQyIC0wMDAwCTEuMTEKKysrIGNsYXNzZXMvY29yZS9SZXF1
ZXN0LmluYy5waHAJMTEgRGVjIDIwMDkgMjI6MTc6MjMgLTAwMDAKQEAgLTQzLDEwICs0Myw3IEBA
CiAJCSRfdGhpcyA9JiBQS1BSZXF1ZXN0OjpfY2hlY2tUaGlzKCk7CiAKIAkJaWYgKCFpc3NldCgk
cHJlc3MpKSB7Ci0JCQkkcHJlc3NBcnJheSA9ICRfdGhpcy0+X2RlbGVnYXRlVG9Sb3V0ZXIoJ2dl
dFJlcXVlc3RlZENvbnRleHRQYXRoJywgMSk7Ci0JCQkkcHJlc3MgPSAkcHJlc3NBcnJheVswXTsK
LQotCQkJLy8gY2FsbCBsZWdhY3kgaG9vaworCQkJJHByZXNzID0gJF90aGlzLT5fZGVsZWdhdGVU
b1JvdXRlcignZ2V0UmVxdWVzdGVkQ29udGV4dFBhdGgnLCAxKTsKIAkJCUhvb2tSZWdpc3RyeTo6
Y2FsbCgnUmVxdWVzdDo6Z2V0UmVxdWVzdGVkUHJlc3NQYXRoJywgYXJyYXkoJiRwcmVzcykpOwog
CQl9CiAKQEAgLTY4LDcgKzY1LDE0IEBACiAJICovCiAJZnVuY3Rpb24gZ2V0UmVxdWVzdGVkQ29u
dGV4dFBhdGgoJGNvbnRleHRMZXZlbCA9IG51bGwpIHsKIAkJJF90aGlzID0mIFBLUFJlcXVlc3Q6
Ol9jaGVja1RoaXMoKTsKLQkJcmV0dXJuICRfdGhpcy0+X2RlbGVnYXRlVG9Sb3V0ZXIoJ2dldFJl
cXVlc3RlZENvbnRleHRQYXRoJywgJGNvbnRleHRMZXZlbCk7CisKKwkJLy8gRW11bGF0ZSB0aGUg
b2xkIGJlaGF2aW9yIG9mIGdldFJlcXVlc3RlZENvbnRleHRQYXRoIGZvcgorCQkvLyBiYWNrd2Fy
ZHMgY29tcGF0aWJpbGl0eS4KKwkJaWYgKGlzX251bGwoJGNvbnRleHRMZXZlbCkpIHsKKwkJCXJl
dHVybiAkX3RoaXMtPl9kZWxlZ2F0ZVRvUm91dGVyKCdnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aHMn
KTsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiBhcnJheSgkX3RoaXMtPl9kZWxlZ2F0ZVRvUm91dGVy
KCdnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCcsICRjb250ZXh0TGV2ZWwpKTsKKwkJfQogCX0KIAog
CS8qKgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2733</attachid>
            <date>2009-12-11 14:22:00 -0800</date>
            <delta_ts>2009-12-11 14:22:11 -0800</delta_ts>
            <desc>simplify request path access: patch against ojs pre-2.3.1 cvs</desc>
            <filename>patch-ojs.diff</filename>
            <type>text/plain</type>
            <size>1274</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb2pzLWN2cwpJbmRleDogY2xh
c3Nlcy9jb3JlL1JlcXVlc3QuaW5jLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL29qczIv
Y2xhc3Nlcy9jb3JlL1JlcXVlc3QuaW5jLnBocCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43MQpk
aWZmIC11IC1yMS43MSBSZXF1ZXN0LmluYy5waHAKLS0tIGNsYXNzZXMvY29yZS9SZXF1ZXN0Lmlu
Yy5waHAJMiBEZWMgMjAwOSAwNjozODoyOSAtMDAwMAkxLjcxCisrKyBjbGFzc2VzL2NvcmUvUmVx
dWVzdC5pbmMucGhwCTExIERlYyAyMDA5IDIyOjIxOjI3IC0wMDAwCkBAIC00MywxMCArNDMsNyBA
QAogCQkkX3RoaXMgPSYgUEtQUmVxdWVzdDo6X2NoZWNrVGhpcygpOwogCiAJCWlmICghaXNzZXQo
JGpvdXJuYWwpKSB7Ci0JCQkkam91cm5hbEFycmF5ID0gJF90aGlzLT5fZGVsZWdhdGVUb1JvdXRl
cignZ2V0UmVxdWVzdGVkQ29udGV4dFBhdGgnLCAxKTsKLQkJCSRqb3VybmFsID0gJGpvdXJuYWxB
cnJheVswXTsKLQotCQkJLy8gY2FsbCBsZWdhY3kgaG9vaworCQkJJGpvdXJuYWwgPSAkX3RoaXMt
Pl9kZWxlZ2F0ZVRvUm91dGVyKCdnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCcsIDEpOwogCQkJSG9v
a1JlZ2lzdHJ5OjpjYWxsKCdSZXF1ZXN0OjpnZXRSZXF1ZXN0ZWRKb3VybmFsUGF0aCcsIGFycmF5
KCYkam91cm5hbCkpOwogCQl9CiAKQEAgLTY4LDcgKzY1LDE0IEBACiAJICovCiAJZnVuY3Rpb24g
Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgoJGNvbnRleHRMZXZlbCA9IG51bGwpIHsKIAkJJF90aGlz
ID0mIFBLUFJlcXVlc3Q6Ol9jaGVja1RoaXMoKTsKLQkJcmV0dXJuICRfdGhpcy0+X2RlbGVnYXRl
VG9Sb3V0ZXIoJ2dldFJlcXVlc3RlZENvbnRleHRQYXRoJywgJGNvbnRleHRMZXZlbCk7CisKKwkJ
Ly8gRW11bGF0ZSB0aGUgb2xkIGJlaGF2aW9yIG9mIGdldFJlcXVlc3RlZENvbnRleHRQYXRoIGZv
cgorCQkvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KKwkJaWYgKGlzX251bGwoJGNvbnRleHRM
ZXZlbCkpIHsKKwkJCXJldHVybiAkX3RoaXMtPl9kZWxlZ2F0ZVRvUm91dGVyKCdnZXRSZXF1ZXN0
ZWRDb250ZXh0UGF0aHMnKTsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiBhcnJheSgkX3RoaXMtPl9k
ZWxlZ2F0ZVRvUm91dGVyKCdnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCcsICRjb250ZXh0TGV2ZWwp
KTsKKwkJfQogCX0KIAogCS8qKgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2734</attachid>
            <date>2009-12-11 14:28:00 -0800</date>
            <delta_ts>2009-12-11 14:28:59 -0800</delta_ts>
            <desc>simplify request path access: patch against pkp-lib pre-release cvs (pre OJS 2.3.1)</desc>
            <filename>patch-pkp-lib.diff</filename>
            <type>text/plain</type>
            <size>9436</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3AtaGFydmVzdGVyMgpJbmRleDog
bGliL3BrcC9jbGFzc2VzL2NvcmUvUEtQUmVxdWVzdC5pbmMucGhwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcGtwL2NsYXNzZXMvY29yZS9QS1BSZXF1ZXN0LmluYy5waHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjAKZGlmZiAtdSAtcjEuMjAgUEtQUmVxdWVzdC5pbmMucGhwCi0tLSBsaWIv
cGtwL2NsYXNzZXMvY29yZS9QS1BSZXF1ZXN0LmluYy5waHAJMiBEZWMgMjAwOSAwNjoyMjo0MSAt
MDAwMAkxLjIwCisrKyBsaWIvcGtwL2NsYXNzZXMvY29yZS9QS1BSZXF1ZXN0LmluYy5waHAJMTEg
RGVjIDIwMDkgMjI6Mjc6NTUgLTAwMDAKQEAgLTY0MCw3ICs2NDAsMTQgQEAKIAkgKi8KIAlmdW5j
dGlvbiBnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCgkY29udGV4dExldmVsID0gbnVsbCkgewogCQkk
X3RoaXMgPSYgUEtQUmVxdWVzdDo6X2NoZWNrVGhpcygpOwotCQlyZXR1cm4gJF90aGlzLT5fZGVs
ZWdhdGVUb1JvdXRlcignZ2V0UmVxdWVzdGVkQ29udGV4dFBhdGgnLCAkY29udGV4dExldmVsKTsK
KworCQkvLyBFbXVsYXRlIHRoZSBvbGQgYmVoYXZpb3Igb2YgZ2V0UmVxdWVzdGVkQ29udGV4dFBh
dGggZm9yCisJCS8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorCQlpZiAoaXNfbnVsbCgkY29u
dGV4dExldmVsKSkgeworCQkJcmV0dXJuICRfdGhpcy0+X2RlbGVnYXRlVG9Sb3V0ZXIoJ2dldFJl
cXVlc3RlZENvbnRleHRQYXRocycpOworCQl9IGVsc2UgeworCQkJcmV0dXJuIGFycmF5KCRfdGhp
cy0+X2RlbGVnYXRlVG9Sb3V0ZXIoJ2dldFJlcXVlc3RlZENvbnRleHRQYXRoJywgJGNvbnRleHRM
ZXZlbCkpOworCQl9CiAJfQogCiAJLyoqCkluZGV4OiBsaWIvcGtwL2NsYXNzZXMvY29yZS9QS1BS
b3V0ZXIuaW5jLnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3BrcC9jbGFzc2VzL2NvcmUv
UEtQUm91dGVyLmluYy5waHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNApkaWZmIC11IC1yMS40
IFBLUFJvdXRlci5pbmMucGhwCi0tLSBsaWIvcGtwL2NsYXNzZXMvY29yZS9QS1BSb3V0ZXIuaW5j
LnBocAkxMSBEZWMgMjAwOSAwMjoyMzozNiAtMDAwMAkxLjQKKysrIGxpYi9wa3AvY2xhc3Nlcy9j
b3JlL1BLUFJvdXRlci5pbmMucGhwCTExIERlYyAyMDA5IDIyOjI3OjU1IC0wMDAwCkBAIC0xMzUs
MjQgKzEzNSwxNyBAQAogCX0KIAogCS8qKgotCSAqIEEgR2VuZXJpYyBjYWxsIHRvIGEgY29udGV4
dC1kZWZpbmVkIHBhdGggKGUuZy4gYSBQcmVzcyBvciBhIENvbmZlcmVuY2UncyBwYXRoKQorCSAq
IEEgZ2VuZXJpYyBtZXRob2QgdG8gcmV0dXJuIGFuIGFycmF5IG9mIGNvbnRleHQgcGF0aHMgKGUu
Zy4gYSBQcmVzcyBvciBhIENvbmZlcmVuY2UvU2NoZWRDb25mIHBhdGhzKQogCSAqIEBwYXJhbSAk
cmVxdWVzdCBQS1BSZXF1ZXN0IHRoZSByZXF1ZXN0IHRvIGJlIHJvdXRlZAotCSAqIEBwYXJhbSAk
cmVxdWVzdGVkQ29udGV4dExldmVsIGludCAob3B0aW9uYWwpIHRoZSBudW1iZXIgb2YgbGV2ZWxz
IG9mIGNvbnRleHQgdG8gcmV0dXJuIGluIHRoZSBwYXRoCi0JICogQHBhcmFtICRhc0FycmF5IGJv
b2xlYW4gZmFsc2UgdG8gcmV0dXJuIGEgc2NhbGFyIGZvciB0aGUgZ2l2ZW4gY29udGV4dCBsZXZl
bAotCSAqIEByZXR1cm4gYXJyYXkgb2YgU3RyaW5nIChlYWNoIGVsZW1lbnQgdGhlIHBhdGggdG8g
b25lIGNvbnRleHQgZWxlbWVudCkKKwkgKiBAcGFyYW0gJHJlcXVlc3RlZENvbnRleHRMZXZlbCBp
bnQgKG9wdGlvbmFsKSB0aGUgY29udGV4dCBsZXZlbCB0byByZXR1cm4gaW4gdGhlIHBhdGgKKwkg
KiBAcmV0dXJuIGFycmF5IG9mIHN0cmluZyAoZWFjaCBlbGVtZW50IHRoZSBwYXRoIHRvIG9uZSBj
b250ZXh0IGVsZW1lbnQpCiAJICovCi0JZnVuY3Rpb24gZ2V0UmVxdWVzdGVkQ29udGV4dFBhdGgo
JiRyZXF1ZXN0LCAkcmVxdWVzdGVkQ29udGV4dExldmVsID0gbnVsbCwgJGFzQXJyYXkgPSB0cnVl
KSB7Ci0JCWFzc2VydChpc3NldCgkdGhpcy0+X2NvbnRleHREZXB0aCkgJiYgaXNzZXQoJHRoaXMt
Pl9jb250ZXh0TGlzdCkpOwotCisJZnVuY3Rpb24gZ2V0UmVxdWVzdGVkQ29udGV4dFBhdGhzKCYk
cmVxdWVzdCkgewogCQkvLyBIYW5kbGUgY29udGV4dCBkZXB0aCAwCi0JCWlmICghJHRoaXMtPl9j
b250ZXh0RGVwdGgpIHsKLQkJCWlmICgkYXNBcnJheSkgcmV0dXJuIGFycmF5KCk7Ci0JCQllbHNl
IHJldHVybiBudWxsOwotCQl9CisJCWlmICghJHRoaXMtPl9jb250ZXh0RGVwdGgpIHJldHVybiBh
cnJheSgpOwogCi0JCS8vIFZhbGlkYXRlIHRoZSBjb250ZXh0IGxldmVsCi0JCWFzc2VydChpc19u
dWxsKCRyZXF1ZXN0ZWRDb250ZXh0TGV2ZWwpIHx8Ci0JCQkJKCRyZXF1ZXN0ZWRDb250ZXh0TGV2
ZWwgPiAwICYmICRyZXF1ZXN0ZWRDb250ZXh0TGV2ZWwgPD0gJHRoaXMtPl9jb250ZXh0RGVwdGgp
KTsKKwkJLy8gVmFsaWRhdGUgY29udGV4dCBwYXJhbWV0ZXJzCisJCWFzc2VydChpc3NldCgkdGhp
cy0+X2NvbnRleHREZXB0aCkgJiYgaXNzZXQoJHRoaXMtPl9jb250ZXh0TGlzdCkpOwogCiAJCS8v
IERldGVybWluZSB0aGUgY29udGV4dCBwYXRoCiAJCWlmIChlbXB0eSgkdGhpcy0+X2NvbnRleHRQ
YXRocykpIHsKQEAgLTE4MiwxOCArMTc1LDMwIEBACiAJCQkJJHRoaXMtPl9jb250ZXh0UGF0aHNb
JGtleV0gPSBDb3JlOjpjbGVhbkZpbGVWYXIoJHRoaXMtPl9jb250ZXh0UGF0aHNbJGtleV0pOwog
CQkJfQogCi0JCQlIb29rUmVnaXN0cnk6OmNhbGwoJ1JvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4
dFBhdGgnLCBhcnJheSgmJHRoaXMtPl9jb250ZXh0UGF0aHMpKTsKKwkJCUhvb2tSZWdpc3RyeTo6
Y2FsbCgnUm91dGVyOjpnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aHMnLCBhcnJheSgmJHRoaXMtPl9j
b250ZXh0UGF0aHMpKTsKIAkJfQogCi0JCWlmIChpc19udWxsKCRyZXF1ZXN0ZWRDb250ZXh0TGV2
ZWwpKSB7Ci0JCQlyZXR1cm4gJHRoaXMtPl9jb250ZXh0UGF0aHM7Ci0JCX0gZWxzZSB7Ci0JCQlp
ZiAoJGFzQXJyYXkpIHsKLQkJCQlyZXR1cm4gYXJyYXkoJHRoaXMtPl9jb250ZXh0UGF0aHNbJHJl
cXVlc3RlZENvbnRleHRMZXZlbCAtIDFdKTsKLQkJCX0gZWxzZSB7Ci0JCQkJcmV0dXJuICR0aGlz
LT5fY29udGV4dFBhdGhzWyRyZXF1ZXN0ZWRDb250ZXh0TGV2ZWwgLSAxXTsKLQkJCX0KLQkJfQor
CQlyZXR1cm4gJHRoaXMtPl9jb250ZXh0UGF0aHM7CisJfQorCisJLyoqCisJICogQSBnZW5lcmlj
IG1ldGhvZCB0byByZXR1cm4gYSBzaW5nbGUgY29udGV4dCBwYXRoIChlLmcuIGEgUHJlc3Mgb3Ig
YSBTY2hlZENvbmYgcGF0aCkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUEtQUmVxdWVzdCB0aGUgcmVx
dWVzdCB0byBiZSByb3V0ZWQKKwkgKiBAcGFyYW0gJHJlcXVlc3RlZENvbnRleHRMZXZlbCBpbnQg
KG9wdGlvbmFsKSB0aGUgY29udGV4dCBsZXZlbCB0byByZXR1cm4KKwkgKiBAcmV0dXJuIHN0cmlu
ZworCSAqLworCWZ1bmN0aW9uIGdldFJlcXVlc3RlZENvbnRleHRQYXRoKCYkcmVxdWVzdCwgJHJl
cXVlc3RlZENvbnRleHRMZXZlbCA9IDEpIHsKKwkJLy8gSGFuZGxlIGNvbnRleHQgZGVwdGggMAor
CQlpZiAoISR0aGlzLT5fY29udGV4dERlcHRoKSByZXR1cm4gbnVsbDsKKworCQkvLyBWYWxpZGF0
ZSB0aGUgY29udGV4dCBsZXZlbAorCQlhc3NlcnQoaXNzZXQoJHRoaXMtPl9jb250ZXh0RGVwdGgp
ICYmIGlzc2V0KCR0aGlzLT5fY29udGV4dExpc3QpKTsKKwkJYXNzZXJ0KCRyZXF1ZXN0ZWRDb250
ZXh0TGV2ZWwgPiAwICYmICRyZXF1ZXN0ZWRDb250ZXh0TGV2ZWwgPD0gJHRoaXMtPl9jb250ZXh0
RGVwdGgpOworCisJCS8vIFJldHVybiB0aGUgZnVsbCBjb250ZXh0LCB0aGVuIHJldHJpZXZlIHRo
ZSByZXF1ZXN0ZWQgY29udGV4dCBwYXRoCisJCSRjb250ZXh0UGF0aHMgPSAkdGhpcy0+Z2V0UmVx
dWVzdGVkQ29udGV4dFBhdGhzKCRyZXF1ZXN0KTsKKwkJYXNzZXJ0KGlzc2V0KCR0aGlzLT5fY29u
dGV4dFBhdGhzWyRyZXF1ZXN0ZWRDb250ZXh0TGV2ZWwgLSAxXSkpOworCQlyZXR1cm4gJHRoaXMt
Pl9jb250ZXh0UGF0aHNbJHJlcXVlc3RlZENvbnRleHRMZXZlbCAtIDFdOwogCX0KIAogCS8qKgpJ
bmRleDogbGliL3BrcC90ZXN0cy9jbGFzc2VzL2NvcmUvUEtQUm91dGVyVGVzdC5pbmMucGhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcGtwL3Rlc3RzL2NsYXNzZXMvY29yZS9QS1BSb3V0ZXJU
ZXN0LmluYy5waHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11IC1yMS4yIFBLUFJv
dXRlclRlc3QuaW5jLnBocAotLS0gbGliL3BrcC90ZXN0cy9jbGFzc2VzL2NvcmUvUEtQUm91dGVy
VGVzdC5pbmMucGhwCTEwIERlYyAyMDA5IDIyOjEzOjU0IC0wMDAwCTEuMgorKysgbGliL3BrcC90
ZXN0cy9jbGFzc2VzL2NvcmUvUEtQUm91dGVyVGVzdC5pbmMucGhwCTExIERlYyAyMDA5IDIyOjI3
OjU1IC0wMDAwCkBAIC03OSw2ICs3OSw3IEBACiAKIAkvKioKIAkgKiBAY292ZXJzIFBLUFJvdXRl
cjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgKKwkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVx
dWVzdGVkQ29udGV4dFBhdGhzCiAJICogQGV4cGVjdGVkRXhjZXB0aW9uIFBIUFVuaXRfRnJhbWV3
b3JrX0Vycm9yCiAJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXF1ZXN0ZWRDb250ZXh0
UGF0aFdpdGhJbnZhbGlkTGV2ZWwoKSB7CkBAIC04OCwxNiArODksMTcgQEAKIAl9CiAKIAkvKioK
LQkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgKKwkgKiBAY292
ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhzCiAJICovCiAJcHVibGljIGZ1
bmN0aW9uIHRlc3RHZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aFdpdGhFbXB0eVBhdGhJbmZvKCkgewog
CQkkdGhpcy0+X3NldFVwTW9ja0Vudmlyb25tZW50KHNlbGY6OlBBVEhJTkZPX0VOQUJMRUQpOwog
CQkkX1NFUlZFUlsnUEFUSF9JTkZPJ10gPSBudWxsOwogCQlzZWxmOjphc3NlcnRFcXVhbHMoYXJy
YXkoJ2luZGV4JywgJ2luZGV4JyksCi0JCQkJJHRoaXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29u
dGV4dFBhdGgoJHRoaXMtPnJlcXVlc3QpKTsKKwkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1ZXN0
ZWRDb250ZXh0UGF0aHMoJHRoaXMtPnJlcXVlc3QpKTsKIAl9CiAKIAkvKioKKwkgKiBAY292ZXJz
IFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhzCiAJICogQGNvdmVycyBQS1BSb3V0
ZXI6OmdldFJlcXVlc3RlZENvbnRleHRQYXRoCiAJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RH
ZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aFdpdGhGdWxsUGF0aEluZm8oKSB7CkBAIC0xMDUsNTQgKzEw
Nyw1MSBAQAogCQlIb29rUmVnaXN0cnk6OnJlc2V0Q2FsbGVkSG9va3MoKTsKIAkJJF9TRVJWRVJb
J1BBVEhfSU5GTyddID0gJy9jb250ZXh0MS9jb250ZXh0Mi9vdGhlci9wYXRoL3ZhcnMnOwogCQlz
ZWxmOjphc3NlcnRFcXVhbHMoYXJyYXkoJ2NvbnRleHQxJywgJ2NvbnRleHQyJyksCi0JCQkJJHRo
aXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgoJHRoaXMtPnJlcXVlc3QpKTsKLQkJ
c2VsZjo6YXNzZXJ0RXF1YWxzKGFycmF5KCdjb250ZXh0MScpLAotCQkJCSR0aGlzLT5yb3V0ZXIt
PmdldFJlcXVlc3RlZENvbnRleHRQYXRoKCR0aGlzLT5yZXF1ZXN0LCAxKSk7Ci0JCXNlbGY6OmFz
c2VydEVxdWFscyhhcnJheSgnY29udGV4dDInKSwKLQkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1
ZXN0ZWRDb250ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMikpOworCQkJCSR0aGlzLT5yb3V0ZXIt
PmdldFJlcXVlc3RlZENvbnRleHRQYXRocygkdGhpcy0+cmVxdWVzdCkpOwogCQlzZWxmOjphc3Nl
cnRFcXVhbHMoJ2NvbnRleHQxJywKLQkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1ZXN0ZWRDb250
ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMSwgZmFsc2UpKTsKKwkJCQkkdGhpcy0+cm91dGVyLT5n
ZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMSkpOwogCQlzZWxmOjphc3Nl
cnRFcXVhbHMoJ2NvbnRleHQyJywKLQkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1ZXN0ZWRDb250
ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMiwgZmFsc2UpKTsKKwkJCQkkdGhpcy0+cm91dGVyLT5n
ZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMikpOwogCQlzZWxmOjphc3Nl
cnRFcXVhbHMoCi0JCQlhcnJheShhcnJheSgnUm91dGVyOjpnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0
aCcsIGFycmF5KGFycmF5KCdjb250ZXh0MScsICdjb250ZXh0MicpKSkpLAorCQkJYXJyYXkoYXJy
YXkoJ1JvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhzJywgYXJyYXkoYXJyYXkoJ2NvbnRl
eHQxJywgJ2NvbnRleHQyJykpKSksCiAJCQlIb29rUmVnaXN0cnk6OmdldENhbGxlZEhvb2tzKCkK
IAkJKTsKIAl9CiAKIAkvKioKLQkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29u
dGV4dFBhdGgKKwkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhz
CiAJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aFdpdGhQ
YXJ0aWFsUGF0aEluZm8oKSB7CiAJCSR0aGlzLT5fc2V0VXBNb2NrRW52aXJvbm1lbnQoc2VsZjo6
UEFUSElORk9fRU5BQkxFRCk7CiAJCSRfU0VSVkVSWydQQVRIX0lORk8nXSA9ICcvY29udGV4dCc7
CiAJCXNlbGY6OmFzc2VydEVxdWFscyhhcnJheSgnY29udGV4dCcsICdpbmRleCcpLAotCQkJCSR0
aGlzLT5yb3V0ZXItPmdldFJlcXVlc3RlZENvbnRleHRQYXRoKCR0aGlzLT5yZXF1ZXN0KSk7CisJ
CQkJJHRoaXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhzKCR0aGlzLT5yZXF1ZXN0
KSk7CiAJfQogCiAJLyoqCi0JICogQGNvdmVycyBQS1BSb3V0ZXI6OmdldFJlcXVlc3RlZENvbnRl
eHRQYXRoCisJICogQGNvdmVycyBQS1BSb3V0ZXI6OmdldFJlcXVlc3RlZENvbnRleHRQYXRocwog
CSAqLwogCXB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0UmVxdWVzdGVkQ29udGV4dFBhdGhXaXRoSW52
YWxpZFBhdGhJbmZvKCkgewogCQkkdGhpcy0+X3NldFVwTW9ja0Vudmlyb25tZW50KHNlbGY6OlBB
VEhJTkZPX0VOQUJMRUQpOwogCQkkX1NFUlZFUlsnUEFUSF9JTkZPJ10gPSAnL2NvbnRleHQ6PyMv
JzsKIAkJc2VsZjo6YXNzZXJ0RXF1YWxzKGFycmF5KCdjb250ZXh0JywgJ2luZGV4JyksCi0JCQkJ
JHRoaXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgoJHRoaXMtPnJlcXVlc3QpKTsK
KwkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aHMoJHRoaXMtPnJlcXVl
c3QpKTsKIAl9CiAKIAkvKioKLQkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29u
dGV4dFBhdGgKKwkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhz
CiAJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aFdpdGhF
bXB0eUNvbnRleHRQYXJhbWV0ZXJzKCkgewogCQkkdGhpcy0+X3NldFVwTW9ja0Vudmlyb25tZW50
KHNlbGY6OlBBVEhJTkZPX0RJU0FCTEVEKTsKIAkJJF9HRVRbJ2ZpcnN0Q29udGV4dCddID0gbnVs
bDsKIAkJJF9HRVRbJ3NlY29uZENvbnRleHQnXSA9IG51bGw7CiAJCXNlbGY6OmFzc2VydEVxdWFs
cyhhcnJheSgnaW5kZXgnLCAnaW5kZXgnKSwKLQkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1ZXN0
ZWRDb250ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCkpOworCQkJCSR0aGlzLT5yb3V0ZXItPmdldFJl
cXVlc3RlZENvbnRleHRQYXRocygkdGhpcy0+cmVxdWVzdCkpOwogCX0KIAogCS8qKgogCSAqIEBj
b3ZlcnMgUEtQUm91dGVyOjpnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aAorCSAqIEBjb3ZlcnMgUEtQ
Um91dGVyOjpnZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aHMKIAkgKi8KIAlwdWJsaWMgZnVuY3Rpb24g
dGVzdEdldFJlcXVlc3RlZENvbnRleHRQYXRoV2l0aEZ1bGxDb250ZXh0UGFyYW1ldGVycygpIHsK
IAkJJHRoaXMtPl9zZXRVcE1vY2tFbnZpcm9ubWVudChzZWxmOjpQQVRISU5GT19ESVNBQkxFRCk7
CkBAIC0xNjAsMTAgKzE1OSwxMCBAQAogCQkkX0dFVFsnZmlyc3RDb250ZXh0J10gPSAnY29udGV4
dDEnOwogCQkkX0dFVFsnc2Vjb25kQ29udGV4dCddID0gJ2NvbnRleHQyJzsKIAkJc2VsZjo6YXNz
ZXJ0RXF1YWxzKGFycmF5KCdjb250ZXh0MScsICdjb250ZXh0MicpLAotCQkJCSR0aGlzLT5yb3V0
ZXItPmdldFJlcXVlc3RlZENvbnRleHRQYXRoKCR0aGlzLT5yZXF1ZXN0KSk7Ci0JCXNlbGY6OmFz
c2VydEVxdWFscyhhcnJheSgnY29udGV4dDEnKSwKKwkJCQkkdGhpcy0+cm91dGVyLT5nZXRSZXF1
ZXN0ZWRDb250ZXh0UGF0aHMoJHRoaXMtPnJlcXVlc3QpKTsKKwkJc2VsZjo6YXNzZXJ0RXF1YWxz
KCdjb250ZXh0MScsCiAJCQkJJHRoaXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgo
JHRoaXMtPnJlcXVlc3QsIDEpKTsKLQkJc2VsZjo6YXNzZXJ0RXF1YWxzKGFycmF5KCdjb250ZXh0
MicpLAorCQlzZWxmOjphc3NlcnRFcXVhbHMoJ2NvbnRleHQyJywKIAkJCQkkdGhpcy0+cm91dGVy
LT5nZXRSZXF1ZXN0ZWRDb250ZXh0UGF0aCgkdGhpcy0+cmVxdWVzdCwgMikpOwogCQlzZWxmOjph
c3NlcnRFcXVhbHMoCiAJCQlhcnJheShhcnJheSgnUm91dGVyOjpnZXRSZXF1ZXN0ZWRDb250ZXh0
UGF0aCcsIGFycmF5KGFycmF5KCdjb250ZXh0MScsICdjb250ZXh0MicpKSkpLApAQCAtMTcyLDEz
ICsxNzEsMTMgQEAKIAl9CiAKIAkvKioKLQkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVz
dGVkQ29udGV4dFBhdGgKKwkgKiBAY292ZXJzIFBLUFJvdXRlcjo6Z2V0UmVxdWVzdGVkQ29udGV4
dFBhdGhzCiAJICovCiAJcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXF1ZXN0ZWRDb250ZXh0UGF0
aFdpdGhQYXJ0aWFsQ29udGV4dFBhcmFtZXRlcnMoKSB7CiAJCSR0aGlzLT5fc2V0VXBNb2NrRW52
aXJvbm1lbnQoc2VsZjo6UEFUSElORk9fRElTQUJMRUQpOwogCQkkX0dFVFsnZmlyc3RDb250ZXh0
J10gPSAnY29udGV4dCc7CiAJCXNlbGY6OmFzc2VydEVxdWFscyhhcnJheSgnY29udGV4dCcsICdp
bmRleCcpLAotCQkJCSR0aGlzLT5yb3V0ZXItPmdldFJlcXVlc3RlZENvbnRleHRQYXRoKCR0aGlz
LT5yZXF1ZXN0KSk7CisJCQkJJHRoaXMtPnJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGhz
KCR0aGlzLT5yZXF1ZXN0KSk7CiAJfQogCiAJLyoqCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2735</attachid>
            <date>2009-12-11 14:31:00 -0800</date>
            <delta_ts>2009-12-11 14:31:12 -0800</delta_ts>
            <desc>sample refactoring for a page class (against OJS pre 2.3.1 cvs)</desc>
            <filename>sample-patch-ojs.diff</filename>
            <type>text/plain</type>
            <size>1108</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb2pzLWN2cwpJbmRleDogcGFn
ZXMvaW5kZXgvSW5kZXhIYW5kbGVyLmluYy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9v
anMyL3BhZ2VzL2luZGV4L0luZGV4SGFuZGxlci5pbmMucGhwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjQxCmRpZmYgLXUgLXIxLjQxIEluZGV4SGFuZGxlci5pbmMucGhwCi0tLSBwYWdlcy9pbmRl
eC9JbmRleEhhbmRsZXIuaW5jLnBocAkxMCBEZWMgMjAwOSAyMjoyMzo0NCAtMDAwMAkxLjQxCisr
KyBwYWdlcy9pbmRleC9JbmRleEhhbmRsZXIuaW5jLnBocAkxMSBEZWMgMjAwOSAyMjoyMzoxMCAt
MDAwMApAQCAtMzgsMTEgKzM4LDExIEBACiAJCSRyb3V0ZXIgPSYgJHJlcXVlc3QtPmdldFJvdXRl
cigpOwogCQkkdGVtcGxhdGVNZ3IgPSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CiAJ
CSRqb3VybmFsRGFvID0mIERBT1JlZ2lzdHJ5OjpnZXREQU8oJ0pvdXJuYWxEQU8nKTsKLQkJJGpv
dXJuYWxQYXRoID0gJHJvdXRlci0+Z2V0UmVxdWVzdGVkQ29udGV4dFBhdGgoJHJlcXVlc3QsIENP
TlRFWFRfSk9VUk5BTCwgZmFsc2UpOworCQkkam91cm5hbFBhdGggPSAkcm91dGVyLT5nZXRSZXF1
ZXN0ZWRDb250ZXh0UGF0aCgkcmVxdWVzdCk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdoZWxw
VG9waWNJZCcsICd1c2VyLmhvbWUnKTsKIAogCQlpZiAoJGpvdXJuYWxQYXRoICE9ICdpbmRleCcg
JiYgJGpvdXJuYWxEYW8tPmpvdXJuYWxFeGlzdHNCeVBhdGgoJGpvdXJuYWxQYXRoKSkgewotCQkJ
JGpvdXJuYWwgPSYgJHJvdXRlci0+Z2V0Q29udGV4dCgkcmVxdWVzdCwgQ09OVEVYVF9KT1VSTkFM
KTsKKwkJCSRqb3VybmFsID0mICRyb3V0ZXItPmdldENvbnRleHQoJHJlcXVlc3QpOwogCiAJCQkv
LyBBc3NpZ24gaGVhZGVyIGFuZCBjb250ZW50IGZvciBob21lIHBhZ2UKIAkJCSR0ZW1wbGF0ZU1n
ci0+YXNzaWduKCdkaXNwbGF5UGFnZUhlYWRlclRpdGxlJywgJGpvdXJuYWwtPmdldExvY2FsaXpl
ZFBhZ2VIZWFkZXJUaXRsZSh0cnVlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2787</attachid>
            <date>2010-01-04 11:13:00 -0800</date>
            <delta_ts>2010-01-04 11:13:43 -0800</delta_ts>
            <desc>sample refactoring for an infrastructure class in pkp lib (some callers are not yet refactored)</desc>
            <filename>patch-pkp-lib.diff</filename>
            <type>text/plain</type>
            <size>1345</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb2pzLWN2cwpJbmRleDogbGli
L3BrcC9jbGFzc2VzL2hhbmRsZXIvUEtQSGFuZGxlci5pbmMucGhwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcGtwL2NsYXNzZXMvaGFuZGxlci9QS1BIYW5kbGVyLmluYy5waHAsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMTAKZGlmZiAtdSAtcjEuMTAgUEtQSGFuZGxlci5pbmMucGhwCi0tLSBs
aWIvcGtwL2NsYXNzZXMvaGFuZGxlci9QS1BIYW5kbGVyLmluYy5waHAJMTAgRGVjIDIwMDkgMjE6
MDk6MzIgLTAwMDAJMS4xMAorKysgbGliL3BrcC9jbGFzc2VzL2hhbmRsZXIvUEtQSGFuZGxlci5p
bmMucGhwCTQgSmFuIDIwMTAgMTk6MTI6MjAgLTAwMDAKQEAgLTcxLDggKzcxLDE1IEBACiAJLyoq
CiAJICogUGVyZm9ybSByZXF1ZXN0IGFjY2VzcyB2YWxpZGF0aW9uIGJhc2VkIG9uIHNlY3VyaXR5
IHNldHRpbmdzLgogCSAqIEBwYXJhbSAkcmVxdWlyZWRDb250ZXh0cyBhcnJheQorCSAqIEBwYXJh
bSAkcmVxdWVzdCBSZXF1ZXN0CiAJICovCi0JZnVuY3Rpb24gdmFsaWRhdGUoJHJlcXVpcmVkQ29u
dGV4dHMgPSBudWxsKSB7CisJZnVuY3Rpb24gdmFsaWRhdGUoJHJlcXVpcmVkQ29udGV4dHMgPSBu
dWxsLCAkcmVxdWVzdCA9IG51bGwpIHsKKwkJLy8gRklYTUU6IGZvciBiYWNrd2FyZHMgY29tcGF0
aWJpbGl0eSBvbmx5IC0gcmVtb3ZlIHdoZW4gcmVxdWVzdC9yb3V0ZXIgcmVmYWN0b3JpbmcgY29t
cGxldGUKKwkJaWYgKCFpc3NldCgkcmVxdWVzdCkpIHsKKwkJCWlmIChDb25maWc6OmdldFZhcign
ZGVidWcnLCAnZGVwcmVjYXRpb25fd2FybmluZ3MnKSkgdHJpZ2dlcl9lcnJvcignRGVwcmVjYXRl
ZCBmdW5jdGlvbiBjYWxsLicpOworCQkJJHJlcXVlc3QgPSYgUmVnaXN0cnk6OmdldCgncmVxdWVz
dCcpOworCQl9CisKIAkJZm9yZWFjaCAoJHRoaXMtPl9jaGVja3MgYXMgJGNoZWNrKSB7CiAJCQkv
LyBXQVJOSU5HOiBUaGlzIGxpbmUgaXMgZm9yIFBIUDQgY29tcGF0aWJpbGl0eSB3aGVuCiAJCQkv
LyBpbnN0YW50aWF0aW5nIGhhbmRsZXJzIHdpdGhvdXQgcmVmZXJlbmNlLiBTaG91bGQgbm90CkBA
IC04NSw3ICs5Miw3IEBACiAJCQkJaWYgKCAkY2hlY2stPnJlZGlyZWN0VG9Mb2dpbiApIHsKIAkJ
CQkJVmFsaWRhdGlvbjo6cmVkaXJlY3RMb2dpbigpOwogCQkJCX0gZWxzZSB7Ci0JCQkJCVBLUFJl
cXVlc3Q6OnJlZGlyZWN0KG51bGwsICdpbmRleCcpOworCQkJCQkkcmVxdWVzdC0+cmVkaXJlY3Qo
bnVsbCwgJ2luZGV4Jyk7CiAJCQkJfQogCQkJfQogCQl9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2788</attachid>
            <date>2010-01-04 11:14:00 -0800</date>
            <delta_ts>2010-01-04 11:14:54 -0800</delta_ts>
            <desc>a more complex refactoring example</desc>
            <filename>patch-ojs.diff</filename>
            <type>text/plain</type>
            <size>12431</size>
            <attacher>jerico.dev</attacher>
            
              <data encoding="base64">IyMjIEVjbGlwc2UgV29ya3NwYWNlIFBhdGNoIDEuMAojUCBwa3Atb2pzLWN2cwpJbmRleDogcGFn
ZXMvYXJ0aWNsZS9BcnRpY2xlSGFuZGxlci5pbmMucGhwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvb2pzMi9wYWdlcy9hcnRpY2xlL0FydGljbGVIYW5kbGVyLmluYy5waHAsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMTA2CmRpZmYgLXUgLXIxLjEwNiBBcnRpY2xlSGFuZGxlci5pbmMucGhwCi0t
LSBwYWdlcy9hcnRpY2xlL0FydGljbGVIYW5kbGVyLmluYy5waHAJMzEgRGVjIDIwMDkgMjM6MTg6
MjIgLTAwMDAJMS4xMDYKKysrIHBhZ2VzL2FydGljbGUvQXJ0aWNsZUhhbmRsZXIuaW5jLnBocAk0
IEphbiAyMDEwIDE5OjA0OjQ4IC0wMDAwCkBAIC0yNCwzMiArMjQsMzggQEAKIGNsYXNzIEFydGlj
bGVIYW5kbGVyIGV4dGVuZHMgSGFuZGxlciB7CiAJLyoqIGpvdXJuYWwgYXNzb2NpYXRlZCB3aXRo
IHRoZSByZXF1ZXN0ICoqLwogCXZhciAkam91cm5hbDsKLQkKKwogCS8qKiBpc3N1ZSBhc3NvY2lh
dGVkIHdpdGggdGhlIHJlcXVlc3QgKiovCiAJdmFyICRpc3N1ZTsKLQkKKwogCS8qKiBhcnRpY2xl
IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVxdWVzdCAqKi8KIAl2YXIgJGFydGljbGU7CiAKIAkvKioK
IAkgKiBDb25zdHJ1Y3RvcgotCSAqKi8KLQlmdW5jdGlvbiBBcnRpY2xlSGFuZGxlcigpIHsKLQkJ
cGFyZW50OjpIYW5kbGVyKCk7Ci0JCQorCSAqIEBwYXJhbSAkcmVxdWVzdCBSZXF1ZXN0CisJICov
CisJZnVuY3Rpb24gQXJ0aWNsZUhhbmRsZXIoJiRyZXF1ZXN0KSB7CisJCXBhcmVudDo6SGFuZGxl
cigkcmVxdWVzdCk7CisJCSRyb3V0ZXIgPSYgJHJlcXVlc3QtPmdldFJvdXRlcigpOworCiAJCSR0
aGlzLT5hZGRDaGVjayhuZXcgSGFuZGxlclZhbGlkYXRvckpvdXJuYWwoJHRoaXMpKTsKLQkJJHRo
aXMtPmFkZENoZWNrKG5ldyBIYW5kbGVyVmFsaWRhdG9yQ3VzdG9tKCR0aGlzLCBmYWxzZSwgbnVs
bCwgbnVsbCwgY3JlYXRlX2Z1bmN0aW9uKCckam91cm5hbCcsICdyZXR1cm4gJGpvdXJuYWwtPmdl
dFNldHRpbmcoXCdwdWJsaXNoaW5nTW9kZVwnKSAhPSBQVUJMSVNISU5HX01PREVfTk9ORTsnKSwg
YXJyYXkoUmVxdWVzdDo6Z2V0Sm91cm5hbCgpKSkpOworCQkkdGhpcy0+YWRkQ2hlY2sobmV3IEhh
bmRsZXJWYWxpZGF0b3JDdXN0b20oJHRoaXMsIGZhbHNlLCBudWxsLCBudWxsLCBjcmVhdGVfZnVu
Y3Rpb24oJyRqb3VybmFsJywgJ3JldHVybiAkam91cm5hbC0+Z2V0U2V0dGluZyhcJ3B1Ymxpc2hp
bmdNb2RlXCcpICE9IFBVQkxJU0hJTkdfTU9ERV9OT05FOycpLCBhcnJheSgkcm91dGVyLT5nZXRD
b250ZXh0KCRyZXF1ZXN0KSkpKTsKIAl9CiAKIAkvKioKIAkgKiBWaWV3IEFydGljbGUuCisJICog
QHBhcmFtICRhcmdzIGFycmF5CisJICogQHBhcmFtICRyZXF1ZXN0IFJlcXVlc3QKIAkgKi8KLQlm
dW5jdGlvbiB2aWV3KCRhcmdzKSB7CisJZnVuY3Rpb24gdmlldygkYXJncywgJiRyZXF1ZXN0KSB7
CisJCSRyb3V0ZXIgPSYgJHJlcXVlc3QtPmdldFJvdXRlcigpOworCiAJCSRhcnRpY2xlSWQgPSBp
c3NldCgkYXJnc1swXSkgPyAkYXJnc1swXSA6IDA7CiAJCSRnYWxsZXlJZCA9IGlzc2V0KCRhcmdz
WzFdKSA/ICRhcmdzWzFdIDogMDsKIAogCQkkdGhpcy0+c2V0dXBUZW1wbGF0ZSgpOwotCQkkdGhp
cy0+dmFsaWRhdGUoJGFydGljbGVJZCwgJGdhbGxleUlkKTsKKwkJJHRoaXMtPnZhbGlkYXRlKCRy
ZXF1ZXN0LCAkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQpOwogCiAJCSRqb3VybmFsID0mICR0aGlzLT5q
b3VybmFsOwogCQkkaXNzdWUgPSYgJHRoaXMtPmlzc3VlOwpAQCAtNjYsMTcgKzcyLDE3IEBACiAJ
CX0KIAogCQlpZiAoISRqb3VybmFsUnQtPmdldEVuYWJsZWQoKSkgewotCQkJaWYgKCEkZ2FsbGV5
IHx8ICRnYWxsZXktPmlzSHRtbEdhbGxleSgpKSByZXR1cm4gJHRoaXMtPnZpZXdBcnRpY2xlKCRh
cmdzKTsKLQkJCWVsc2UgaWYgKCRnYWxsZXktPmlzUGRmR2FsbGV5KCkpIHJldHVybiAkdGhpcy0+
dmlld1BERkludGVyc3RpdGlhbCgkYXJncywgJGdhbGxleSk7CisJCQlpZiAoISRnYWxsZXkgfHwg
JGdhbGxleS0+aXNIdG1sR2FsbGV5KCkpIHJldHVybiAkdGhpcy0+dmlld0FydGljbGUoJGFyZ3Ms
ICRyZXF1ZXN0KTsKKwkJCWVsc2UgaWYgKCRnYWxsZXktPmlzUGRmR2FsbGV5KCkpIHJldHVybiAk
dGhpcy0+dmlld1BERkludGVyc3RpdGlhbCgkYXJncywgJHJlcXVlc3QsICRnYWxsZXkpOwogCQkJ
ZWxzZSBpZiAoJGdhbGxleS0+aXNJbmxpbmVhYmxlKCkpIHsKIAkJCQlpbXBvcnQoJ2ZpbGUuQXJ0
aWNsZUZpbGVNYW5hZ2VyJyk7CiAJCQkJJGFydGljbGVGaWxlTWFuYWdlciA9IG5ldyBBcnRpY2xl
RmlsZU1hbmFnZXIoJGFydGljbGUtPmdldEFydGljbGVJZCgpKTsKIAkJCQlyZXR1cm4gJGFydGlj
bGVGaWxlTWFuYWdlci0+dmlld0ZpbGUoJGdhbGxleS0+Z2V0RmlsZUlkKCkpOwotCQkJfSBlbHNl
IHJldHVybiAkdGhpcy0+dmlld0Rvd25sb2FkSW50ZXJzdGl0aWFsKCRhcmdzLCAkZ2FsbGV5KTsK
KwkJCX0gZWxzZSByZXR1cm4gJHRoaXMtPnZpZXdEb3dubG9hZEludGVyc3RpdGlhbCgkYXJncywg
JHJlcXVlc3QsICRnYWxsZXkpOwogCQl9CiAKIAkJaWYgKCEkYXJ0aWNsZSkgewotCQkJUmVxdWVz
dDo6cmVkaXJlY3QobnVsbCwgUmVxdWVzdDo6Z2V0UmVxdWVzdGVkUGFnZSgpKTsKKwkJCSRyZXF1
ZXN0LT5yZWRpcmVjdChudWxsLCAkcm91dGVyLT5nZXRSZXF1ZXN0ZWRQYWdlKCRyZXF1ZXN0KSk7
CiAJCQlyZXR1cm47CiAJCX0KIApAQCAtOTEsMTggKzk3LDIwIEBACiAKIAkvKioKIAkgKiBBcnRp
Y2xlIGludGVyc3RpdGlhbCBwYWdlIGJlZm9yZSBQREYgaXMgc2hvd24KKwkgKiBAcGFyYW0gJGFy
Z3MgYXJyYXkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAorCSAqIEBwYXJhbSAkZ2FsbGV5
IEFydGljbGVHYWxsZXkKIAkgKi8KLQlmdW5jdGlvbiB2aWV3UERGSW50ZXJzdGl0aWFsKCRhcmdz
LCAkZ2FsbGV5ID0gbnVsbCkgeworCWZ1bmN0aW9uIHZpZXdQREZJbnRlcnN0aXRpYWwoJGFyZ3Ms
ICYkcmVxdWVzdCwgJGdhbGxleSA9IG51bGwpIHsKIAkJJGFydGljbGVJZCA9IGlzc2V0KCRhcmdz
WzBdKSA/ICRhcmdzWzBdIDogMDsKIAkJJGdhbGxleUlkID0gaXNzZXQoJGFyZ3NbMV0pID8gJGFy
Z3NbMV0gOiAwOwotCQkkdGhpcy0+dmFsaWRhdGUoJGFydGljbGVJZCwgJGdhbGxleUlkKTsKKwkJ
JHRoaXMtPnZhbGlkYXRlKCRyZXF1ZXN0LCAkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQpOwogCQkkam91
cm5hbCA9JiAkdGhpcy0+am91cm5hbDsKIAkJJGlzc3VlID0mICR0aGlzLT5pc3N1ZTsKLQkJJGFy
dGljbGUgPSYgJHRoaXMtPmFydGljbGU7CQkKKwkJJGFydGljbGUgPSYgJHRoaXMtPmFydGljbGU7
CiAJCSR0aGlzLT5zZXR1cFRlbXBsYXRlKCk7CiAKLQkJaWYgKCEkZ2FsbGV5IHx8ICFpc19hKCRn
YWxsZXksICdBcnRpY2xlR2FsbGV5JykpIHsKLQkJCXVuc2V0KCRnYWxsZXkpOworCQlpZiAoISRn
YWxsZXkpIHsKIAkJCSRnYWxsZXlEYW8gPSYgREFPUmVnaXN0cnk6OmdldERBTygnQXJ0aWNsZUdh
bGxleURBTycpOwogCQkJaWYgKCRqb3VybmFsLT5nZXRTZXR0aW5nKCdlbmFibGVQdWJsaWNHYWxs
ZXlJZCcpKSB7CiAJCQkJJGdhbGxleSA9JiAkZ2FsbGV5RGFvLT5nZXRHYWxsZXlCeUJlc3RHYWxs
ZXlJZCgkZ2FsbGV5SWQsICRhcnRpY2xlLT5nZXRBcnRpY2xlSWQoKSk7CkBAIC0xMTEsNyArMTE5
LDcgQEAKIAkJCX0KIAkJfQogCi0JCWlmICghJGdhbGxleSkgUmVxdWVzdDo6cmVkaXJlY3QobnVs
bCwgbnVsbCwgJ3ZpZXcnLCAkYXJ0aWNsZUlkKTsKKwkJaWYgKCEkZ2FsbGV5KSAkcmVxdWVzdC0+
cmVkaXJlY3QobnVsbCwgbnVsbCwgJ3ZpZXcnLCAkYXJ0aWNsZUlkKTsKIAogCQkkdGVtcGxhdGVN
Z3IgPSYgVGVtcGxhdGVNYW5hZ2VyOjpnZXRNYW5hZ2VyKCk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNz
aWduKCdhcnRpY2xlSWQnLCAkYXJ0aWNsZUlkKTsKQEAgLTEyNSwxOCArMTMzLDIwIEBACiAJLyoq
CiAJICogQXJ0aWNsZSBpbnRlcnN0aXRpYWwgcGFnZSBiZWZvcmUgYSBub24tUERGLCBub24tSFRN
TCBnYWxsZXkgaXMKIAkgKiBkb3dubG9hZGVkCisJICogQHBhcmFtICRhcmdzIGFycmF5CisJICog
QHBhcmFtICRyZXF1ZXN0IFJlcXVlc3QKKwkgKiBAcGFyYW0gJGdhbGxleSBBcnRpY2xlR2FsbGV5
CiAJICovCi0JZnVuY3Rpb24gdmlld0Rvd25sb2FkSW50ZXJzdGl0aWFsKCRhcmdzLCAkZ2FsbGV5
ID0gbnVsbCkgeworCWZ1bmN0aW9uIHZpZXdEb3dubG9hZEludGVyc3RpdGlhbCgkYXJncywgJiRy
ZXF1ZXN0LCAkZ2FsbGV5ID0gbnVsbCkgewogCQkkYXJ0aWNsZUlkID0gaXNzZXQoJGFyZ3NbMF0p
ID8gJGFyZ3NbMF0gOiAwOwogCQkkZ2FsbGV5SWQgPSBpc3NldCgkYXJnc1sxXSkgPyAkYXJnc1sx
XSA6IDA7Ci0JCSR0aGlzLT52YWxpZGF0ZSgkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQpOworCQkkdGhp
cy0+dmFsaWRhdGUoJHJlcXVlc3QsICRhcnRpY2xlSWQsICRnYWxsZXlJZCk7CiAJCSRqb3VybmFs
ID0mICR0aGlzLT5qb3VybmFsOwogCQkkaXNzdWUgPSYgJHRoaXMtPmlzc3VlOwotCQkkYXJ0aWNs
ZSA9JiAkdGhpcy0+YXJ0aWNsZTsJCQorCQkkYXJ0aWNsZSA9JiAkdGhpcy0+YXJ0aWNsZTsKIAkJ
JHRoaXMtPnNldHVwVGVtcGxhdGUoKTsKIAotCQlpZiAoISRnYWxsZXkgfHwgIWlzX2EoJGdhbGxl
eSwgJ0FydGljbGVHYWxsZXknKSkgewotCQkJdW5zZXQoJGdhbGxleSk7CisJCWlmICghJGdhbGxl
eSkgewogCQkJJGdhbGxleURhbyA9JiBEQU9SZWdpc3RyeTo6Z2V0REFPKCdBcnRpY2xlR2FsbGV5
REFPJyk7CiAJCQlpZiAoJGpvdXJuYWwtPmdldFNldHRpbmcoJ2VuYWJsZVB1YmxpY0dhbGxleUlk
JykpIHsKIAkJCQkkZ2FsbGV5ID0mICRnYWxsZXlEYW8tPmdldEdhbGxleUJ5QmVzdEdhbGxleUlk
KCRnYWxsZXlJZCwgJGFydGljbGUtPmdldEFydGljbGVJZCgpKTsKQEAgLTE0NSw3ICsxNTUsNyBA
QAogCQkJfQogCQl9CiAKLQkJaWYgKCEkZ2FsbGV5KSBSZXF1ZXN0OjpyZWRpcmVjdChudWxsLCBu
dWxsLCAndmlldycsICRhcnRpY2xlSWQpOworCQlpZiAoISRnYWxsZXkpICRyZXF1ZXN0LT5yZWRp
cmVjdChudWxsLCBudWxsLCAndmlldycsICRhcnRpY2xlSWQpOwogCiAJCSR0ZW1wbGF0ZU1nciA9
JiBUZW1wbGF0ZU1hbmFnZXI6OmdldE1hbmFnZXIoKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24o
J2FydGljbGVJZCcsICRhcnRpY2xlSWQpOwpAQCAtMTU4LDE1ICsxNjgsMTggQEAKIAogCS8qKgog
CSAqIEFydGljbGUgdmlldworCSAqIEBwYXJhbSAkYXJncyBhcnJheQorCSAqIEBwYXJhbSAkcmVx
dWVzdCBSZXF1ZXN0CiAJICovCi0JZnVuY3Rpb24gdmlld0FydGljbGUoJGFyZ3MpIHsKKwlmdW5j
dGlvbiB2aWV3QXJ0aWNsZSgkYXJncywgJiRyZXF1ZXN0KSB7CisJCSRyb3V0ZXIgPSYgJHJlcXVl
c3QtPmdldFJvdXRlcigpOwogCQkkYXJ0aWNsZUlkID0gaXNzZXQoJGFyZ3NbMF0pID8gJGFyZ3Nb
MF0gOiAwOwogCQkkZ2FsbGV5SWQgPSBpc3NldCgkYXJnc1sxXSkgPyAkYXJnc1sxXSA6IDA7CiAK
LQkJJHRoaXMtPnZhbGlkYXRlKCRhcnRpY2xlSWQsICRnYWxsZXlJZCk7CisJCSR0aGlzLT52YWxp
ZGF0ZSgkcmVxdWVzdCwgJGFydGljbGVJZCwgJGdhbGxleUlkKTsKIAkJJGpvdXJuYWwgPSYgJHRo
aXMtPmpvdXJuYWw7CiAJCSRpc3N1ZSA9JiAkdGhpcy0+aXNzdWU7Ci0JCSRhcnRpY2xlID0mICR0
aGlzLT5hcnRpY2xlOwkJCisJCSRhcnRpY2xlID0mICR0aGlzLT5hcnRpY2xlOwogCQkkdGhpcy0+
c2V0dXBUZW1wbGF0ZSgpOwogCiAJCSRydERhbyA9JiBEQU9SZWdpc3RyeTo6Z2V0REFPKCdSVERB
TycpOwpAQCAtMjMyLDcgKzI0NSw3IEBACiAJCQlpZiAoaXNzZXQoJGFydGljbGUpICYmICRhcnRp
Y2xlLT5nZXRMb2NhbGl6ZWRGaWxlTmFtZSgpICYmICRhcnRpY2xlLT5nZXRMb2NhbGl6ZWRTaG93
Q292ZXJQYWdlKCkgJiYgISRhcnRpY2xlLT5nZXRMb2NhbGl6ZWRIaWRlQ292ZXJQYWdlQWJzdHJh
Y3QoJGxvY2FsZSkpIHsKIAkJCQlpbXBvcnQoJ2ZpbGUuUHVibGljRmlsZU1hbmFnZXInKTsKIAkJ
CQkkcHVibGljRmlsZU1hbmFnZXIgPSBuZXcgUHVibGljRmlsZU1hbmFnZXIoKTsKLQkJCQkkY292
ZXJQYWdlUGF0aCA9IFJlcXVlc3Q6OmdldEJhc2VVcmwoKSAuICcvJzsKKwkJCQkkY292ZXJQYWdl
UGF0aCA9ICRyZXF1ZXN0LT5nZXRCYXNlVXJsKCkgLiAnLyc7CiAJCQkJJGNvdmVyUGFnZVBhdGgg
Lj0gJHB1YmxpY0ZpbGVNYW5hZ2VyLT5nZXRKb3VybmFsRmlsZXNQYXRoKCRqb3VybmFsLT5nZXRK
b3VybmFsSWQoKSkgLiAnLyc7CiAJCQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2NvdmVyUGFnZVBh
dGgnLCAkY292ZXJQYWdlUGF0aCk7CiAJCQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2NvdmVyUGFn
ZUZpbGVOYW1lJywgJGFydGljbGUtPmdldExvY2FsaXplZEZpbGVOYW1lKCkpOwpAQCAtMjQyLDE5
ICsyNTUsMTkgQEAKIAkJCX0KIAogCQkJLy8gSW5jcmVtZW50IHRoZSBwdWJsaXNoZWQgYXJ0aWNs
ZSdzIGFic3RyYWN0IHZpZXdzIGNvdW50Ci0JCQlpZiAoIVJlcXVlc3Q6OmlzQm90KCkpIHsKKwkJ
CWlmICghJHJlcXVlc3QtPmlzQm90KCkpIHsKIAkJCQkkcHVibGlzaGVkQXJ0aWNsZURhbyA9JiBE
QU9SZWdpc3RyeTo6Z2V0REFPKCdQdWJsaXNoZWRBcnRpY2xlREFPJyk7CiAJCQkJJHB1Ymxpc2hl
ZEFydGljbGVEYW8tPmluY3JlbWVudFZpZXdzQnlBcnRpY2xlSWQoJGFydGljbGUtPmdldEFydGlj
bGVJZCgpKTsKIAkJCX0KIAkJfSBlbHNlIHsKLQkJCWlmICghUmVxdWVzdDo6aXNCb3QoKSkgewor
CQkJaWYgKCEkcmVxdWVzdC0+aXNCb3QoKSkgewogCQkJCS8vIEluY3JlbWVudCB0aGUgZ2FsbGV5
J3Mgdmlld3MgY291bnQKIAkJCQkkZ2FsbGV5RGFvLT5pbmNyZW1lbnRWaWV3cygkZ2FsbGV5LT5n
ZXRHYWxsZXlJZCgpKTsKIAkJCX0KIAogCQkJLy8gVXNlIHRoZSBhcnRpY2xlJ3MgQ1NTIGZpbGUs
IGlmIHNldC4KIAkJCWlmICgkZ2FsbGV5LT5pc0hUTUxHYWxsZXkoKSAmJiAkc3R5bGVGaWxlID0m
ICRnYWxsZXktPmdldFN0eWxlRmlsZSgpKSB7Ci0JCQkJJHRlbXBsYXRlTWdyLT5hZGRTdHlsZVNo
ZWV0KFJlcXVlc3Q6OnVybChudWxsLCAnYXJ0aWNsZScsICd2aWV3RmlsZScsIGFycmF5KAorCQkJ
CSR0ZW1wbGF0ZU1nci0+YWRkU3R5bGVTaGVldCgkcm91dGVyLT51cmwobnVsbCwgJ2FydGljbGUn
LCAndmlld0ZpbGUnLCBhcnJheSgKIAkJCQkJJGFydGljbGUtPmdldEFydGljbGVJZCgpLAogCQkJ
CQkkZ2FsbGV5LT5nZXRCZXN0R2FsbGV5SWQoJGpvdXJuYWwpLAogCQkJCQkkc3R5bGVGaWxlLT5n
ZXRGaWxlSWQoKQpAQCAtMjg0LDExICsyOTcsMTEgQEAKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24o
J2dhbGxleUlkJywgJGdhbGxleUlkKTsKIAkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ2RlZmluZVRl
cm1zQ29udGV4dElkJywgaXNzZXQoJGRlZmluZVRlcm1zQ29udGV4dElkKT8kZGVmaW5lVGVybXND
b250ZXh0SWQ6bnVsbCk7CiAJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdjb21tZW50cycsIGlzc2V0
KCRjb21tZW50cyk/JGNvbW1lbnRzOm51bGwpOwotCQkKKwogCQkkdGVtcGxhdGVNZ3ItPmFzc2ln
bignc2hhcmluZ0VuYWJsZWQnLCAkam91cm5hbFJ0LT5nZXRTaGFyaW5nRW5hYmxlZCgpKTsKLQkJ
CisKIAkJaWYoJGpvdXJuYWxSdC0+Z2V0U2hhcmluZ0VuYWJsZWQoKSkgewotCQkJJHRlbXBsYXRl
TWdyLT5hc3NpZ24oJ3NoYXJpbmdSZXF1ZXN0VVJMJywgUmVxdWVzdDo6Z2V0UmVxdWVzdFVSTCgp
KTsKKwkJCSR0ZW1wbGF0ZU1nci0+YXNzaWduKCdzaGFyaW5nUmVxdWVzdFVSTCcsICRyZXF1ZXN0
LT5nZXRSZXF1ZXN0VVJMKCkpOwogCQkJJHRlbXBsYXRlTWdyLT5hc3NpZ24oJ3NoYXJpbmdBcnRp
Y2xlVGl0bGUnLCAkYXJ0aWNsZS0+Z2V0QXJ0aWNsZVRpdGxlKCkpOwogCQkJJHRlbXBsYXRlTWdy
LT5hc3NpZ25fYnlfcmVmKCdzaGFyaW5nVXNlck5hbWUnLCAkam91cm5hbFJ0LT5nZXRTaGFyaW5n
VXNlck5hbWUoKSk7CiAJCQkkdGVtcGxhdGVNZ3ItPmFzc2lnbl9ieV9yZWYoJ3NoYXJpbmdCdXR0
b25TdHlsZScsICRqb3VybmFsUnQtPmdldFNoYXJpbmdCdXR0b25TdHlsZSgpKTsKQEAgLTMwOSwx
NSArMzIyLDE3IEBACiAKIAkvKioKIAkgKiBBcnRpY2xlIFJlYWRpbmcgdG9vbHMKKwkgKiBAcGFy
YW0gJGFyZ3MgYXJyYXkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAogCSAqLwotCWZ1bmN0
aW9uIHZpZXdSU1QoJGFyZ3MpIHsKKwlmdW5jdGlvbiB2aWV3UlNUKCRhcmdzLCAmJHJlcXVlc3Qp
IHsKIAkJJGFydGljbGVJZCA9IGlzc2V0KCRhcmdzWzBdKSA/ICRhcmdzWzBdIDogMDsKIAkJJGdh
bGxleUlkID0gaXNzZXQoJGFyZ3NbMV0pID8gJGFyZ3NbMV0gOiAwOwogCi0JCSR0aGlzLT52YWxp
ZGF0ZSgkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQpOworCQkkdGhpcy0+dmFsaWRhdGUoJHJlcXVlc3Qs
ICRhcnRpY2xlSWQsICRnYWxsZXlJZCk7CiAJCSRqb3VybmFsID0mICR0aGlzLT5qb3VybmFsOwog
CQkkaXNzdWUgPSYgJHRoaXMtPmlzc3VlOwotCQkkYXJ0aWNsZSA9JiAkdGhpcy0+YXJ0aWNsZTsJ
CQorCQkkYXJ0aWNsZSA9JiAkdGhpcy0+YXJ0aWNsZTsKIAkJJHRoaXMtPnNldHVwVGVtcGxhdGUo
KTsKIAogCQkkcnREYW8gPSYgREFPUmVnaXN0cnk6OmdldERBTygnUlREQU8nKTsKQEAgLTM4MSwx
NiArMzk2LDE3IEBACiAJLyoqCiAJICogVmlldyBhIGZpbGUgKGlubGluZXMgZmlsZSkuCiAJICog
QHBhcmFtICRhcmdzIGFycmF5ICgkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQsICRmaWxlSWQgW29wdGlv
bmFsXSkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAogCSAqLwotCWZ1bmN0aW9uIHZpZXdG
aWxlKCRhcmdzKSB7CisJZnVuY3Rpb24gdmlld0ZpbGUoJGFyZ3MsICYkcmVxdWVzdCkgewogCQkk
YXJ0aWNsZUlkID0gaXNzZXQoJGFyZ3NbMF0pID8gJGFyZ3NbMF0gOiAwOwogCQkkZ2FsbGV5SWQg
PSBpc3NldCgkYXJnc1sxXSkgPyAkYXJnc1sxXSA6IDA7CiAJCSRmaWxlSWQgPSBpc3NldCgkYXJn
c1syXSkgPyAoaW50KSAkYXJnc1syXSA6IDA7CiAKLQkJJHRoaXMtPnZhbGlkYXRlKCRhcnRpY2xl
SWQsICRnYWxsZXlJZCk7CisJCSR0aGlzLT52YWxpZGF0ZSgkcmVxdWVzdCwgJGFydGljbGVJZCwg
JGdhbGxleUlkKTsKIAkJJGpvdXJuYWwgPSYgJHRoaXMtPmpvdXJuYWw7CiAJCSRpc3N1ZSA9JiAk
dGhpcy0+aXNzdWU7Ci0JCSRhcnRpY2xlID0mICR0aGlzLT5hcnRpY2xlOwkJCisJCSRhcnRpY2xl
ID0mICR0aGlzLT5hcnRpY2xlOwogCiAJCSRnYWxsZXlEYW8gPSYgREFPUmVnaXN0cnk6OmdldERB
TygnQXJ0aWNsZUdhbGxleURBTycpOwogCQlpZiAoJGpvdXJuYWwtPmdldFNldHRpbmcoJ2VuYWJs
ZVB1YmxpY0dhbGxleUlkJykpIHsKQEAgLTM5OSwxNCArNDE1LDE0IEBACiAJCQkkZ2FsbGV5ID0m
ICRnYWxsZXlEYW8tPmdldEdhbGxleSgkZ2FsbGV5SWQsICRhcnRpY2xlLT5nZXRBcnRpY2xlSWQo
KSk7CiAJCX0KIAotCQlpZiAoISRnYWxsZXkpIFJlcXVlc3Q6OnJlZGlyZWN0KG51bGwsIG51bGws
ICd2aWV3JywgJGFydGljbGVJZCk7CisJCWlmICghJGdhbGxleSkgJHJlcXVlc3QtPnJlZGlyZWN0
KG51bGwsIG51bGwsICd2aWV3JywgJGFydGljbGVJZCk7CiAKIAkJaWYgKCEkZmlsZUlkKSB7CiAJ
CQkkZ2FsbGV5RGFvLT5pbmNyZW1lbnRWaWV3cygkZ2FsbGV5LT5nZXRHYWxsZXlJZCgpKTsKIAkJ
CSRmaWxlSWQgPSAkZ2FsbGV5LT5nZXRGaWxlSWQoKTsKIAkJfSBlbHNlIHsKIAkJCWlmICghJGdh
bGxleS0+aXNEZXBlbmRlbnRGaWxlKCRmaWxlSWQpKSB7Ci0JCQkJUmVxdWVzdDo6cmVkaXJlY3Qo
bnVsbCwgbnVsbCwgJ3ZpZXcnLCAkYXJ0aWNsZUlkKTsKKwkJCQkkcmVxdWVzdC0+cmVkaXJlY3Qo
bnVsbCwgbnVsbCwgJ3ZpZXcnLCAkYXJ0aWNsZUlkKTsKIAkJCX0KIAkJfQogCkBAIC00MTgsMTQg
KzQzNCwxNiBAQAogCiAJLyoqCiAJICogRG93bmxvYWRzIHRoZSBkb2N1bWVudAorCSAqIEBwYXJh
bSAkYXJncyBhcnJheQorCSAqIEBwYXJhbSAkcmVxdWVzdCBSZXF1ZXN0CiAJICovCi0JZnVuY3Rp
b24gZG93bmxvYWQoJGFyZ3MpIHsKKwlmdW5jdGlvbiBkb3dubG9hZCgkYXJncywgJiRyZXF1ZXN0
KSB7CiAJCSRhcnRpY2xlSWQgPSBpc3NldCgkYXJnc1swXSkgPyAkYXJnc1swXSA6IDA7CiAJCSRn
YWxsZXlJZCA9IGlzc2V0KCRhcmdzWzFdKSA/ICRhcmdzWzFdIDogMDsKLQkJJHRoaXMtPnZhbGlk
YXRlKCRhcnRpY2xlSWQsICRnYWxsZXlJZCk7CisJCSR0aGlzLT52YWxpZGF0ZSgkcmVxdWVzdCwg
JGFydGljbGVJZCwgJGdhbGxleUlkKTsKIAkJJGpvdXJuYWwgPSYgJHRoaXMtPmpvdXJuYWw7CiAJ
CSRpc3N1ZSA9JiAkdGhpcy0+aXNzdWU7Ci0JCSRhcnRpY2xlID0mICR0aGlzLT5hcnRpY2xlOwkJ
CisJCSRhcnRpY2xlID0mICR0aGlzLT5hcnRpY2xlOwogCiAJCSRnYWxsZXlEYW8gPSYgREFPUmVn
aXN0cnk6OmdldERBTygnQXJ0aWNsZUdhbGxleURBTycpOwogCQlpZiAoJGpvdXJuYWwtPmdldFNl
dHRpbmcoJ2VuYWJsZVB1YmxpY0dhbGxleUlkJykpIHsKQEAgLTQ0MiwxMyArNDYwLDE4IEBACiAJ
CX0KIAl9CiAKLQlmdW5jdGlvbiBkb3dubG9hZFN1cHBGaWxlKCRhcmdzKSB7CisJLyoqCisJICog
RG93bmxvYWQgYSBzdXBwbGVtZW50YXJ5IGZpbGUKKwkgKiBAcGFyYW0gJGFyZ3MgYXJyYXkKKwkg
KiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAorCSAqLworCWZ1bmN0aW9uIGRvd25sb2FkU3VwcEZp
bGUoJGFyZ3MsICYkcmVxdWVzdCkgewogCQkkYXJ0aWNsZUlkID0gaXNzZXQoJGFyZ3NbMF0pID8g
JGFyZ3NbMF0gOiAwOwogCQkkc3VwcElkID0gaXNzZXQoJGFyZ3NbMV0pID8gJGFyZ3NbMV0gOiAw
OwotCQkkdGhpcy0+dmFsaWRhdGUoJGFydGljbGVJZCk7CisJCSR0aGlzLT52YWxpZGF0ZSgkcmVx
dWVzdCwgJGFydGljbGVJZCk7CiAJCSRqb3VybmFsID0mICR0aGlzLT5qb3VybmFsOwogCQkkaXNz
dWUgPSYgJHRoaXMtPmlzc3VlOwotCQkkYXJ0aWNsZSA9JiAkdGhpcy0+YXJ0aWNsZTsJCQorCQkk
YXJ0aWNsZSA9JiAkdGhpcy0+YXJ0aWNsZTsKIAogCQkkc3VwcEZpbGVEYW8gPSYgREFPUmVnaXN0
cnk6OmdldERBTygnU3VwcEZpbGVEQU8nKTsKIAkJaWYgKCRqb3VybmFsLT5nZXRTZXR0aW5nKCdl
bmFibGVQdWJsaWNTdXBwRmlsZUlkJykpIHsKQEAgLTQ3MCwxNiArNDkzLDIxIEBACiAKIAkvKioK
IAkgKiBWYWxpZGF0aW9uCisJICogQHNlZSBsaWIvcGtwL2NsYXNzZXMvaGFuZGxlci9QS1BIYW5k
bGVyI3ZhbGlkYXRlKCkKKwkgKiBAcGFyYW0gJHJlcXVlc3QgUmVxdWVzdAorCSAqIEBwYXJhbSAk
YXJ0aWNsZUlkIGludGVnZXIKKwkgKiBAcGFyYW0gJGdhbGxleUlkIGludGVnZXIKIAkgKi8KLQlm
dW5jdGlvbiB2YWxpZGF0ZSgkYXJ0aWNsZUlkLCAkZ2FsbGV5SWQgPSBudWxsKSB7Ci0JCXBhcmVu
dDo6dmFsaWRhdGUoKTsKKwlmdW5jdGlvbiB2YWxpZGF0ZSgmJHJlcXVlc3QsICRhcnRpY2xlSWQs
ICRnYWxsZXlJZCA9IG51bGwpIHsKKwkJJHJvdXRlciA9JiAkcmVxdWVzdC0+Z2V0Um91dGVyKCk7
CisJCXBhcmVudDo6dmFsaWRhdGUobnVsbCwgJHJlcXVlc3QpOwogCiAJCWltcG9ydCgnaXNzdWUu
SXNzdWVBY3Rpb24nKTsKIAotCQkkam91cm5hbCA9JiBSZXF1ZXN0OjpnZXRKb3VybmFsKCk7CisJ
CSRqb3VybmFsID0mICRyb3V0ZXItPmdldENvbnRleHQoJHJlcXVlc3QpOwogCQkkam91cm5hbElk
ID0gJGpvdXJuYWwtPmdldEpvdXJuYWxJZCgpOwogCQkkYXJ0aWNsZSA9ICRwdWJsaXNoZWRBcnRp
Y2xlID0gJGlzc3VlID0gbnVsbDsKLQkJJHVzZXIgPSYgUmVxdWVzdDo6Z2V0VXNlcigpOworCQkk
dXNlciA9JiAkcmVxdWVzdC0+Z2V0VXNlcigpOwogCQkkdXNlcklkID0gJHVzZXI/JHVzZXItPmdl
dElkKCk6MDsKIAogCQkkcHVibGlzaGVkQXJ0aWNsZURhbyA9JiBEQU9SZWdpc3RyeTo6Z2V0REFP
KCdQdWJsaXNoZWRBcnRpY2xlREFPJyk7CkBAIC01NzUsMTIgKzYwMywxMiBAQAogCQkJCQkJaWYg
KCFWYWxpZGF0aW9uOjppc0xvZ2dlZEluKCkpIHsKIAkJCQkJCQlWYWxpZGF0aW9uOjpyZWRpcmVj
dExvZ2luKCJyZWFkZXIuc3Vic2NyaXB0aW9uUmVxdWlyZWRMb2dpblRleHQiKTsKIAkJCQkJCX0K
LQkJCQkJCVJlcXVlc3Q6OnJlZGlyZWN0KG51bGwsICdhYm91dCcsICdzdWJzY3JpcHRpb25zJyk7
CisJCQkJCQkkcmVxdWVzdC0+cmVkaXJlY3QobnVsbCwgJ2Fib3V0JywgJ3N1YnNjcmlwdGlvbnMn
KTsKIAkJCQkJfQogCQkJCX0KIAkJCX0KIAkJfSBlbHNlIHsKLQkJCVJlcXVlc3Q6OnJlZGlyZWN0
KG51bGwsICdpbmRleCcpOworCQkJJHJlcXVlc3QtPnJlZGlyZWN0KG51bGwsICdpbmRleCcpOwog
CQl9CiAJCSR0aGlzLT5qb3VybmFsID0mICRqb3VybmFsOwogCQkkdGhpcy0+aXNzdWUgPSYgJGlz
c3VlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>