From igal@lucee.org Mon Jul 6 18:17:01 2026 From: "Igal @ Lucee.org" Message-ID: <56C41C5B.9000809@lucee.org> Date: Tue, 16 Feb 2016 23:08:11 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060808030008050206050907" Subject: [Pljava-dev] Build Fails on Windows 7 This is a multi-part message in MIME format. --------------060808030008050206050907 Content-Type: multipart/alternative; boundary="------------070602080805080004030509" --------------070602080805080004030509 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, I'm trying to build PL/Java but am getting errors. I am attaching here the verbose output of "mvn -e -X clean install", but it looks like the error section is as follows: [ERROR] Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-validate (default-nar-validate) on project pljava-so: Cannot deduce version number from: -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-validate (default-nar-validate) on project pljava-so: Cannot deduce version number from: at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoFailureException: Cannot deduce version number from: at com.github.maven_nar.Linker.getVersion(Linker.java:270) at com.github.maven_nar.NarValidateMojo.narExecute(NarValidateMojo.java:64) at com.github.maven_nar.AbstractNarMojo.execute(AbstractNarMojo.java:302) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :pljava-so Any help would be greatly appreciated. Thank you, Igal Sapir Lucee Core Developer Lucee.org --------------070602080805080004030509 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit Hi,

I'm trying to build PL/Java but am getting errors.

I am attaching here the verbose output of "mvn -e -X clean install", but it looks like the error section is as follows:

[ERROR] Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-validate (default-nar-validate) on project pljava-so: Cannot deduce version number from: -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-validate (default-nar-validate) on project pljava-so: Cannot deduce version number from: 
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoFailureException: Cannot deduce version number from: 
	at com.github.maven_nar.Linker.getVersion(Linker.java:270)
	at com.github.maven_nar.NarValidateMojo.narExecute(NarValidateMojo.java:64)
	at com.github.maven_nar.AbstractNarMojo.execute(AbstractNarMojo.java:302)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	... 20 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :pljava-so

Any help would be greatly appreciated.

Thank you,

Igal Sapir
Lucee Core Developer
Lucee.org

--------------070602080805080004030509-- --------------060808030008050206050907 Content-Type: text/x-moz-deleted; name="Deleted: pljava-mvn.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="Deleted: pljava-mvn.log" X-Mozilla-Altered: AttachmentDeleted; date="Tue Aug 16 21:22:01 2016" You deleted an attachment from this message. The original MIME headers for the attachment were: Content-Type: text/plain; charset=UTF-8; name="pljava-mvn.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pljava-mvn.log" --------------060808030008050206050907 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev --------------060808030008050206050907-- From pierce@hogranch.com Mon Jul 6 18:17:01 2026 References: <56C41C5B.9000809@lucee.org> From: John R Pierce Message-ID: <56C4D516.9010403@hogranch.com> Date: Wed, 17 Feb 2016 12:16:22 -0800 MIME-Version: 1.0 In-Reply-To: <56C41C5B.9000809@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii"; Format="flowed" On 2/16/2016 11:08 PM, Igal @ Lucee.org wrote: > I'm trying to build PL/Java but am getting errors. building pljava on MS Windows is not currently supported, as noone has sat down and figured out how to get it all to play. mostly, its the C components, they need to be compiled and linked with MSVC as they have to be called by the MSVC built Postgres, assuming you're using the EnterpriseDB distribution of Postgres for Windows... The MS C compiler and linker command lines are quite different. -- john r pierce, recycling bits in santa cruz _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From chap@anastigmatix.net Mon Jul 6 18:17:01 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> From: Chapman Flack Message-ID: <56C4D8C4.4010809@anastigmatix.net> Date: Wed, 17 Feb 2016 15:32:04 -0500 MIME-Version: 1.0 In-Reply-To: <56C4D516.9010403@hogranch.com> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/17/2016 03:16 PM, John R Pierce wrote: > On 2/16/2016 11:08 PM, Igal @ Lucee.org wrote: >> I'm trying to build PL/Java but am getting errors. > > building pljava on MS Windows is not currently supported, as noone has > sat down and figured out how to get it all to play. Hey John, there is absolutely a "Building on Microsoft Windows with Visual Studio" page in the release 1.5.0 docs, and it is linked from the release notes. Where Igal's issue comes in is in building with MinGW-64 rather than MSVC, which I mentioned in the 1.5.0-BETA1 announcement was an untested combination (because no one had stepped up to test it). It was my mistake earlier today that I hit reply rather than reply-all so subsequent exchanges with Igal haven't gone to the list ... but in the best outcome, we will end up also knowing how to build with MinGW-64 soon. -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From pierce@hogranch.com Mon Jul 6 18:17:01 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> From: John R Pierce Message-ID: <56C4DB1E.3080108@hogranch.com> Date: Wed, 17 Feb 2016 12:42:06 -0800 MIME-Version: 1.0 In-Reply-To: <56C4D8C4.4010809@anastigmatix.net> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii"; Format="flowed" On 2/17/2016 12:32 PM, Chapman Flack wrote: > Hey John, there is absolutely a "Building on Microsoft Windows > with Visual Studio" page in the release 1.5.0 docs, and it is > linked from the release notes. oops, excuse me, I totally missed that. I thought I'd seen discussions here a few weeks ago suggesting that was all "TBD". -- john r pierce, recycling bits in santa cruz _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:01 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C54EE0.2080905@lucee.org> Date: Wed, 17 Feb 2016 20:56:00 -0800 MIME-Version: 1.0 In-Reply-To: <56C51150.1070708@anastigmatix.net> Content-Type: multipart/mixed; boundary="------------040707060605090705010500" This is a multi-part message in MIME format. --------------040707060605090705010500 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 2/17/2016 4:33 PM, Chapman Flack wrote: > > It turns out nar-maven-plugin isn't as smart as I believed it > to be. I had thought it would do some sort of linker discovery > to find out if you were using MSVC or g++ ... but no ... it > simply has a configuration file that lists default linkers > for different arch-OS combinations: > > https://github.com/maven-nar/nar-maven-plugin/blob/7ba6ca9f3fc4385d360a8f326d20322cea1118a8/src/main/resources/com/github/maven_nar/aol.properties#L85 > > ... that is, if you're on amd64-windows, it just *assumes* you > are using msvc, unless you tell it otherwise. > > You might try editing pljava-so/pom.xml, finding the > section, and adding g++ inside it. I wasn't sure to which I should add it, so for good measure I added g++ to all three occurrences of (even though the first one if for Mac OS X and is obviously unrelated). > That will probably not lead directly to a successful build > (there will be more things to fix, remember you're the first > to try this), but I would like to know if it gets you past the > "cannot deduce version" error, and what breaks next. :) So we made some progress, as you anticipated, and now the error is (full output attached): [ERROR] Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile (default-nar-compile) on project pljava-so: NAR: Compile failed: gcc failed with return code 1 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.maven-nar:nar-maven-plugin:3.2.3:nar-compile (default-nar-compile) on project pljava-so: NAR: Compile failed at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: NAR: Compile failed at com.github.maven_nar.NarCompileMojo.createLibrary(NarCompileMojo.java:452) at com.github.maven_nar.NarCompileMojo.narExecute(NarCompileMojo.java:122) at com.github.maven_nar.AbstractNarMojo.execute(AbstractNarMojo.java:302) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more Caused by: gcc failed with return code 1 at com.github.maven_nar.cpptasks.compiler.CommandLineCompiler.compile(CommandLineCompiler.java:222) at com.github.maven_nar.cpptasks.compiler.CommandLineCompilerConfiguration.compile(CommandLineCompilerConfiguration.java:148) at com.github.maven_nar.cpptasks.CCTask$Core.run(CCTask.java:946) --------------040707060605090705010500 Content-Type: text/x-moz-deleted; name="Deleted: pljava-mvn-03.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="Deleted: pljava-mvn-03.log" X-Mozilla-Altered: AttachmentDeleted; date="Tue Aug 16 21:20:29 2016" You deleted an attachment from this message. The original MIME headers for the attachment were: Content-Type: text/plain; charset=UTF-8; name="pljava-mvn-03.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pljava-mvn-03.log" --------------040707060605090705010500-- From igal@lucee.org Mon Jul 6 18:17:01 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> From: "Igal @ Lucee.org" Message-ID: <56C553C3.40408@lucee.org> Date: Wed, 17 Feb 2016 21:16:51 -0800 MIME-Version: 1.0 In-Reply-To: <56C54EE0.2080905@lucee.org> Content-Type: multipart/mixed; boundary="------------010608090802050304060105" This is a multi-part message in MIME format. --------------010608090802050304060105 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit UPDATE: I updated to 1.5.0-BETA1 as Chap suggested in his first reply, and added the g++ to , and I'm getting different errors (full output attached, if you prefer that I do not attach large files please let me know). The errors seem to be about missing header files from PostgreSQL. Here is a directory listing of C:/Apps/PGSQL-~1.0/include/server: total 467 drwxr-xr-x 1 User None 0 Jan 31 22:31 . drwxr-xr-x 1 User None 0 Jan 31 22:31 .. drwxr-xr-x 1 User None 0 Jan 31 22:31 access drwxr-xr-x 1 User None 0 Jan 31 22:31 bootstrap -rw-r--r-- 1 User None 33994 Jan 31 22:22 c.h drwxr-xr-x 1 User None 0 Jan 31 22:31 catalog drwxr-xr-x 1 User None 0 Jan 31 22:31 commands drwxr-xr-x 1 User None 0 Jan 31 22:31 common drwxr-xr-x 1 User None 0 Jan 31 22:31 datatype -rw-r--r-- 1 User None 446 Jan 31 22:22 dynloader.h drwxr-xr-x 1 User None 0 Jan 31 22:31 executor -rw-r--r-- 1 User None 30839 Jan 31 22:22 fmgr.h drwxr-xr-x 1 User None 0 Jan 31 22:31 foreign -rw-r--r-- 1 User None 10778 Jan 31 22:22 funcapi.h -rw-r--r-- 1 User None 3986 Jan 31 22:22 getaddrinfo.h -rw-r--r-- 1 User None 688 Jan 31 22:22 getopt_long.h drwxr-xr-x 1 User None 0 Jan 31 22:31 lib drwxr-xr-x 1 User None 0 Jan 31 22:31 libpq drwxr-xr-x 1 User None 0 Jan 31 22:31 mb -rw-r--r-- 1 User None 15926 Jan 31 22:22 miscadmin.h drwxr-xr-x 1 User None 0 Jan 31 22:31 nodes drwxr-xr-x 1 User None 0 Jan 31 22:31 optimizer drwxr-xr-x 1 User None 0 Jan 31 22:31 parser -rw-r--r-- 1 User None 28468 Jan 31 22:22 pg_config.h -rw-r--r-- 1 User None 328 Jan 31 22:22 pg_config_ext.h -rw-r--r-- 1 User None 10819 Jan 31 22:22 pg_config_manual.h -rw-r--r-- 1 User None 12954 Jan 31 22:22 pg_config_os.h -rw-r--r-- 1 User None 1084 Jan 31 22:22 pg_getopt.h -rw-r--r-- 1 User None 316 Jan 31 22:22 pg_trace.h -rw-r--r-- 1 User None 29611 Jan 31 22:22 pgstat.h -rw-r--r-- 1 User None 752 Jan 31 22:22 pgtar.h -rw-r--r-- 1 User None 2309 Jan 31 22:22 pgtime.h -rw-r--r-- 1 User None 27946 Jan 31 22:22 plpgsql.h drwxr-xr-x 1 User None 0 Jan 31 22:31 port -rw-r--r-- 1 User None 13752 Jan 31 22:22 port.h drwxr-xr-x 1 User None 0 Jan 31 22:31 portability -rw-r--r-- 1 User None 22511 Jan 31 22:22 postgres.h -rw-r--r-- 1 User None 2109 Jan 31 22:22 postgres_ext.h -rw-r--r-- 1 User None 763 Jan 31 22:22 postgres_fe.h drwxr-xr-x 1 User None 0 Jan 31 22:31 postmaster drwxr-xr-x 1 User None 0 Jan 31 22:31 regex drwxr-xr-x 1 User None 0 Jan 31 22:31 replication drwxr-xr-x 1 User None 0 Jan 31 22:31 rewrite -rw-r--r-- 1 User None 843 Jan 31 22:22 rusagestub.h drwxr-xr-x 1 User None 0 Jan 31 22:31 snowball drwxr-xr-x 1 User None 0 Jan 31 22:31 storage drwxr-xr-x 1 User None 0 Jan 31 22:31 tcop drwxr-xr-x 1 User None 0 Jan 31 22:31 tsearch drwxr-xr-x 1 User None 0 Jan 31 22:31 utils -rw-r--r-- 1 User None 2379 Jan 31 22:22 windowapi.h Errors from Maven: [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\AclId.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Any.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Array.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Backend.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\BigDecimal.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Boolean.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Byte.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Coerce.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. 0 / 51 files compiled... [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Composite.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Date.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Double.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/Exception.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\ErrorData.c:10: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Exception.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\ExecutionPlan.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Float.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Function.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/HashMap_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\HashMap.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. 0 / 51 files compiled... [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\HeapTupleHeader.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\InstallHelper.c:12: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Integer.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Invocation.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/HashMap_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Iterator.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\JNICalls.c:12: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\JavaWrapper.c:10: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\LargeObject.c:13: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. 0 / 51 files compiled... [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Long.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Oid.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\PgObject.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\PgSavepoint.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Portal.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Relation.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/SPI.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\SPI.c:10: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\SQLInputFromChunk.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\SQLInputFromTuple.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. 0 / 51 files compiled... [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\SQLOutputToChunk.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\SQLOutputToTuple.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\Session.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\Short.c:11: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. [ERROR] In file included from C:\Apps\PGSQL-~1.0\include\server/c.h:1114:0, [ERROR] from C:\Apps\PGSQL-~1.0\include\server/postgres.h:47, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/pljava.h:29, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/JNICalls.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/PgObject_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/Type_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\include/pljava/type/String_priv.h:12, [ERROR] from C:\Workspace\git\pljava\pljava-so\src\main\c\type\String.c:9: [ERROR] C:\Apps\PGSQL-~1.0\include\server/port.h:17:19: fatal error: netdb.h: No such file or directory [ERROR] compilation terminated. Thank you, Igal --------------010608090802050304060105 Content-Type: text/x-moz-deleted; name="Deleted: pljava-mvn-04.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="Deleted: pljava-mvn-04.log" X-Mozilla-Altered: AttachmentDeleted; date="Tue Aug 16 21:20:35 2016" You deleted an attachment from this message. The original MIME headers for the attachment were: Content-Type: text/plain; charset=UTF-8; name="pljava-mvn-04.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pljava-mvn-04.log" --------------010608090802050304060105-- From chap@anastigmatix.net Mon Jul 6 18:17:01 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> From: Chapman Flack Message-ID: <56C556BD.1010907@anastigmatix.net> Date: Thu, 18 Feb 2016 00:29:33 -0500 MIME-Version: 1.0 In-Reply-To: <56C553C3.40408@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/2016 12:16 AM, Igal @ Lucee.org wrote: > I updated to 1.5.0-BETA1 as Chap suggested in his first reply, and added > the g++ to , and I'm getting different errors netdb.h not found was the same error you were getting earlier, you just had to scroll farther to see it. :) > The errors seem to be about missing header files from PostgreSQL. Here > is a directory listing of C:/Apps/PGSQL-~1.0/include/server: Could you attach an ls -R C:/Apps/PGSQL-~1.0/include/server/port ? Thanks, -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:01 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C55824.1060502@lucee.org> Date: Wed, 17 Feb 2016 21:35:32 -0800 MIME-Version: 1.0 In-Reply-To: <56C556BD.1010907@anastigmatix.net> Content-Type: text/plain; charset=utf-8; format=flowed On 2/17/2016 9:29 PM, Chapman Flack wrote: > netdb.h not found was the same error you were getting earlier, you > just had to scroll farther to see it. :) ohh! :s > Could you attach an ls -R C:/Apps/PGSQL-~1.0/include/server/port ? C:/Apps/PGSQL-~1.0/include/server/port: aix.h atomics atomics.h cygwin.h darwin.h freebsd.h hpux.h linux.h netbsd.h openbsd.h pg_crc32c.h sco.h solaris.h unixware.h win32 win32.h win32_msvc C:/Apps/PGSQL-~1.0/include/server/port/atomics: arch-arm.h arch-hppa.h arch-ia64.h arch-ppc.h arch-x86.h fallback.h generic.h generic-acc.h generic-gcc.h generic-msvc.h generic-sunpro.h generic-xlc.h C:/Apps/PGSQL-~1.0/include/server/port/win32: arpa dlfcn.h grp.h netdb.h netinet pwd.h sys C:/Apps/PGSQL-~1.0/include/server/port/win32/arpa: inet.h C:/Apps/PGSQL-~1.0/include/server/port/win32/netinet: in.h C:/Apps/PGSQL-~1.0/include/server/port/win32/sys: socket.h wait.h C:/Apps/PGSQL-~1.0/include/server/port/win32_msvc: dirent.h sys unistd.h utime.h C:/Apps/PGSQL-~1.0/include/server/port/win32_msvc/sys: file.h param.h time.h Chap, what time zone are you in? I'm in Pacific myself. Seems like you're always online. Thanks, Igal From igal@lucee.org Mon Jul 6 18:17:01 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C5624C.4040903@lucee.org> Date: Wed, 17 Feb 2016 22:18:52 -0800 MIME-Version: 1.0 In-Reply-To: <56C556BD.1010907@anastigmatix.net> Content-Type: multipart/mixed; boundary="------------000408040201070108040006" This is a multi-part message in MIME format. --------------000408040201070108040006 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2/17/2016 9:29 PM, Chapman Flack wrote: > netdb.h not found was the same error you were getting earlier, you > just had to scroll farther to see it. :) > Could you attach an ls -R C:/Apps/PGSQL-~1.0/include/server/port > So I copied netdb.h and the rest of the files from /include/server/port/win32 to /include/server/port and now I'm getting new errors. See attached output. --------------000408040201070108040006 Content-Type: text/x-moz-deleted; name="Deleted: pljava-mvn-05.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="Deleted: pljava-mvn-05.log" X-Mozilla-Altered: AttachmentDeleted; date="Tue Aug 16 21:18:28 2016" You deleted an attachment from this message. The original MIME headers for the attachment were: Content-Type: text/plain; charset=UTF-8; name="pljava-mvn-05.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pljava-mvn-05.log" --------------000408040201070108040006-- From chap@anastigmatix.net Mon Jul 6 18:17:01 2026 Message-ID: <56C564F4.1050909@anastigmatix.net> Date: Thu, 18 Feb 2016 01:30:12 -0500 From: Chapman Flack MIME-Version: 1.0 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> In-Reply-To: <56C55824.1060502@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/16, Igal @ Lucee.org wrote: > So I copied netdb.h and the rest of the files from /include/server/port/win32 Nah, don't do that ... see below. > Chap, what time zone are you in? I'm in Pacific myself. Seems like you're > always online. I'm in Eastern, and I'm about to not be online for a while. :) You might try git remote update ; git checkout port/REL1_5_STABLE-BASE/mingw64 (make sure it's a clean checkout, none of your earlier changes to pom.xml, also that you uncopy whatever postgres .h files you copied around) then see what the build does. I'm sure there will still be errors, but a step at a time .... -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:02 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C5E1B3.8090204@lucee.org> Date: Thu, 18 Feb 2016 07:22:27 -0800 MIME-Version: 1.0 In-Reply-To: <56C564F4.1050909@anastigmatix.net> Content-Type: multipart/mixed; boundary="------------030201030601070109080303" This is a multi-part message in MIME format. --------------030201030601070109080303 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2/17/2016 10:30 PM, Chapman Flack wrote: > You might try > git remote update ; git checkout port/REL1_5_STABLE-BASE/mingw64 So the last message is BUILD SUCCESS, but I see some [ERROR]s in the output, and in the target directory all I have is a single file named pljava.app-1.6.0-SNAPSHOT-site.xml See Maven output attached. Thanks, Igal --------------030201030601070109080303 Content-Type: text/x-moz-deleted; name="Deleted: pljava-mvn-06.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="Deleted: pljava-mvn-06.log" X-Mozilla-Altered: AttachmentDeleted; date="Tue Jun 28 09:48:34 2016" You deleted an attachment from this message. The original MIME headers for the attachment were: Content-Type: text/plain; charset=UTF-8; name="pljava-mvn-06.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pljava-mvn-06.log" --------------030201030601070109080303-- From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> From: Chapman Flack Message-ID: <56C5E795.4080405@anastigmatix.net> Date: Thu, 18 Feb 2016 10:47:33 -0500 MIME-Version: 1.0 In-Reply-To: <56C5E1B3.8090204@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/2016 10:22 AM, Igal @ Lucee.org wrote: > See Maven output attached. Ok ... I see three things there: #1 I was up too late last night, and I forgot to rebase the branch I created onto the right place, and now I'll have to do the thing no respectable git hacker ever does, and rebase it after publication. Phooey. Hey you guys on pljava-dev, nobody base stuff off this branch, ok? #2 The build appears to have succeeded (as far as Maven thinks, anyway). #3 There are curious warnings. Most are from the printf format checker, which seems to think jint and int are different widths, likewise jlong and long. This makes me uneasy. The other curious warnings are about the signal handlers not getting defined in Backend.c. That also bears looking into (which I won't have time for until later). You might, cautiously, load it into your PostgreSQL database and see what it does. I would not (ahem) do this on a production instance at this stage. :) Could you reply with whatever is in your Java installation's include/jni.h and include/*/jni_md.h files pertaining to the declarations of jint and jlong? -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> From: Chapman Flack Message-ID: <56C5EA23.2010306@anastigmatix.net> Date: Thu, 18 Feb 2016 10:58:27 -0500 MIME-Version: 1.0 In-Reply-To: <56C5E795.4080405@anastigmatix.net> Subject: [Pljava-dev] Some tips to keep mvn -X output to manageable size Content-Type: text/plain; charset="us-ascii" The output from mvn -X can be very helpful in understanding build issues, but it can also be so long it's tedious to look through. Here are some tips: 1. The *first* time you run mvn, it downloads *tons* of build dependencies into your local Maven repository, and all the download progress messages are included in your output. (Also, if you ever clean out or remove your local repository, the same thing happens again on the *next* mvn run after that.) So tip #1: run mvn once at first (or once right after emptying the repo), then run mvn -X clean install *again* and save the output that time, not the first time. 2. If the build issue is in the native code (pljava-so subproject), run a full mvn clean install in the top pljava directory once, then cd pljava-so and from then on run mvn -X clean install only there, so your output only covers that part of the build. Once that is succeeding, cd .. and retry a full build for adventure's sake. -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:02 2026 Subject: Re: Some tips to keep mvn -X output to manageable size References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C5EA23.2010306@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C5ED52.2080004@lucee.org> Date: Thu, 18 Feb 2016 08:12:02 -0800 MIME-Version: 1.0 In-Reply-To: <56C5EA23.2010306@anastigmatix.net> Content-Type: text/plain; charset=windows-1252; format=flowed On 2/18/2016 7:58 AM, Chapman Flack wrote: > 1. The *first* time you run mvn, it downloads *tons* of build > dependencies into your local Maven repository, and all the > download progress messages are included in your output. > (Also, if you ever clean out or remove your local repository, > the same thing happens again on the *next* mvn run after that.) > > So tip #1: run mvn once at first (or once right after emptying > the repo), then run mvn -X clean install *again* and save the > output that time, not the first time. Sounds good. > 2. If the build issue is in the native code (pljava-so subproject), > run a full mvn clean install in the top pljava directory once, > then cd pljava-so and from then on run mvn -X clean install > only there, so your output only covers that part of the build. > Once that is succeeding, cd .. and retry a full build for > adventure's sake. Is the problem now in pljava-so subproject? I'm not sure how do you see that, so I wouldn't be able to tell by myself. Will do, thanks! Igal From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C5EA23.2010306@anastigmatix.net> <56C5ED52.2080004@lucee.org> From: Chapman Flack Message-ID: <56C5EFE5.7010200@anastigmatix.net> Date: Thu, 18 Feb 2016 11:23:01 -0500 MIME-Version: 1.0 In-Reply-To: <56C5ED52.2080004@lucee.org> Subject: Re: [Pljava-dev] Some tips to keep mvn -X output to manageable size Content-Type: text/plain; charset="us-ascii" On 02/18/2016 11:12 AM, Igal @ Lucee.org wrote: > On 2/18/2016 7:58 AM, Chapman Flack wrote: >> 1. The *first* time you run mvn, it downloads *tons* of build >> dependencies into your local Maven repository, and all the >> download progress messages are included in your output. >> (Also, if you ever clean out or remove your local repository, >> the same thing happens again on the *next* mvn run after that.) >> >> So tip #1: run mvn once at first (or once right after emptying >> the repo), then run mvn -X clean install *again* and save the >> output that time, not the first time. > Sounds good. >> 2. If the build issue is in the native code (pljava-so subproject), >> run a full mvn clean install in the top pljava directory once, >> then cd pljava-so and from then on run mvn -X clean install >> only there, so your output only covers that part of the build. >> Once that is succeeding, cd .. and retry a full build for >> adventure's sake. > Is the problem now in pljava-so subproject? I'm not sure how do you see > that, so I wouldn't be able to tell by myself. No, I was just giving general tips (I changed the Subject: line). Your last build got past pljava-so and finished everything in fact. You could try loading it. (It still might or might not work.) I am still interested in those compiler warnings about int/jint and long/jlong widths and undeclared handlers. Those *are* in the pljava-so subproject, but I won't have anything new for you to try there until I have more of a chance to look. -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:02 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C5F11F.9050709@lucee.org> Date: Thu, 18 Feb 2016 08:28:15 -0800 MIME-Version: 1.0 In-Reply-To: <56C5E795.4080405@anastigmatix.net> Content-Type: multipart/mixed; boundary="------------060905020505000106000506" This is a multi-part message in MIME format. --------------060905020505000106000506 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2/18/2016 7:47 AM, Chapman Flack wrote: > #2 The build appears to have succeeded (as far as Maven thinks, > anyway). I didn't realize earlier, but I do have jar files in pljava/target. I was looking earlier only at the top target directory > #3 There are curious warnings. Most are from the printf format > checker, which seems to think jint and int are different > widths, likewise jlong and long. This makes me uneasy. > The other curious warnings are about the signal handlers > not getting defined in Backend.c. That also bears looking > into (which I won't have time for until later). > > You might, cautiously, load it into your PostgreSQL database > and see what it does. I would not (ahem) do this on a production > instance at this stage. :) > > Could you reply with whatever is in your Java installation's > include/jni.h and include/*/jni_md.h files pertaining to the > declarations of jint and jlong? > > -Chap I renamed jni.h to jni.h.txt (as I'm sure that some email clients will not like the .h extension) and attached here. The ${java}/include/win32/jni_md.h is inline below: #ifndef _JAVASOFT_JNI_MD_H_ #define _JAVASOFT_JNI_MD_H_ #define JNIEXPORT __declspec(dllexport) #define JNIIMPORT __declspec(dllimport) #define JNICALL __stdcall typedef long jint; typedef __int64 jlong; typedef signed char jbyte; #endif /* !_JAVASOFT_JNI_MD_H_ */ I must say that I'm impressed with your knowledge. I've been writing Java code for a very long time now, and never even knew that there are .h files in ${java}/include Igal --------------060905020505000106000506 Content-Type: text/plain; charset=UTF-8; name="jni.h.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jni.h.txt" LyoKICogQ29weXJpZ2h0IChjKSAxOTk2LCAyMDEzLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZp bGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBPUkFDTEUgUFJPUFJJRVRBUlkvQ09O RklERU5USUFMLiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zLgogKgogKgogKgog KgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKgogKi8K Ci8qCiAqIFdlIHVzZWQgcGFydCBvZiBOZXRzY2FwZSdzIEphdmEgUnVudGltZSBJbnRlcmZh Y2UgKEpSSSkgYXMgdGhlIHN0YXJ0aW5nCiAqIHBvaW50IG9mIG91ciBkZXNpZ24gYW5kIGlt cGxlbWVudGF0aW9uLgogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogSmF2YSBS dW50aW1lIEludGVyZmFjZQogKiBDb3B5cmlnaHQgKGMpIDE5OTYgTmV0c2NhcGUgQ29tbXVu aWNhdGlvbnMgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KCiNpZm5kZWYgX0pBVkFTT0ZUX0pOSV9IXwojZGVmaW5lIF9KQVZB U09GVF9KTklfSF8KCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkYXJnLmg+Cgov KiBqbmlfbWQuaCBjb250YWlucyB0aGUgbWFjaGluZS1kZXBlbmRlbnQgdHlwZWRlZnMgZm9y IGpieXRlLCBqaW50CiAgIGFuZCBqbG9uZyAqLwoKI2luY2x1ZGUgImpuaV9tZC5oIgoKI2lm ZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCi8qCiAqIEpOSSBUeXBlcwog Ki8KCiNpZm5kZWYgSk5JX1RZUEVTX0FMUkVBRFlfREVGSU5FRF9JTl9KTklfTURfSAoKdHlw ZWRlZiB1bnNpZ25lZCBjaGFyICAgamJvb2xlYW47CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg IGpjaGFyOwp0eXBlZGVmIHNob3J0ICAgICAgICAgICBqc2hvcnQ7CnR5cGVkZWYgZmxvYXQg ICAgICAgICAgIGpmbG9hdDsKdHlwZWRlZiBkb3VibGUgICAgICAgICAgamRvdWJsZTsKCnR5 cGVkZWYgamludCAgICAgICAgICAgIGpzaXplOwoKI2lmZGVmIF9fY3BsdXNwbHVzCgpjbGFz cyBfam9iamVjdCB7fTsKY2xhc3MgX2pjbGFzcyA6IHB1YmxpYyBfam9iamVjdCB7fTsKY2xh c3MgX2p0aHJvd2FibGUgOiBwdWJsaWMgX2pvYmplY3Qge307CmNsYXNzIF9qc3RyaW5nIDog cHVibGljIF9qb2JqZWN0IHt9OwpjbGFzcyBfamFycmF5IDogcHVibGljIF9qb2JqZWN0IHt9 OwpjbGFzcyBfamJvb2xlYW5BcnJheSA6IHB1YmxpYyBfamFycmF5IHt9OwpjbGFzcyBfamJ5 dGVBcnJheSA6IHB1YmxpYyBfamFycmF5IHt9OwpjbGFzcyBfamNoYXJBcnJheSA6IHB1Ymxp YyBfamFycmF5IHt9OwpjbGFzcyBfanNob3J0QXJyYXkgOiBwdWJsaWMgX2phcnJheSB7fTsK Y2xhc3MgX2ppbnRBcnJheSA6IHB1YmxpYyBfamFycmF5IHt9OwpjbGFzcyBfamxvbmdBcnJh eSA6IHB1YmxpYyBfamFycmF5IHt9OwpjbGFzcyBfamZsb2F0QXJyYXkgOiBwdWJsaWMgX2ph cnJheSB7fTsKY2xhc3MgX2pkb3VibGVBcnJheSA6IHB1YmxpYyBfamFycmF5IHt9OwpjbGFz cyBfam9iamVjdEFycmF5IDogcHVibGljIF9qYXJyYXkge307Cgp0eXBlZGVmIF9qb2JqZWN0 ICpqb2JqZWN0Owp0eXBlZGVmIF9qY2xhc3MgKmpjbGFzczsKdHlwZWRlZiBfanRocm93YWJs ZSAqanRocm93YWJsZTsKdHlwZWRlZiBfanN0cmluZyAqanN0cmluZzsKdHlwZWRlZiBfamFy cmF5ICpqYXJyYXk7CnR5cGVkZWYgX2pib29sZWFuQXJyYXkgKmpib29sZWFuQXJyYXk7CnR5 cGVkZWYgX2pieXRlQXJyYXkgKmpieXRlQXJyYXk7CnR5cGVkZWYgX2pjaGFyQXJyYXkgKmpj aGFyQXJyYXk7CnR5cGVkZWYgX2pzaG9ydEFycmF5ICpqc2hvcnRBcnJheTsKdHlwZWRlZiBf amludEFycmF5ICpqaW50QXJyYXk7CnR5cGVkZWYgX2psb25nQXJyYXkgKmpsb25nQXJyYXk7 CnR5cGVkZWYgX2pmbG9hdEFycmF5ICpqZmxvYXRBcnJheTsKdHlwZWRlZiBfamRvdWJsZUFy cmF5ICpqZG91YmxlQXJyYXk7CnR5cGVkZWYgX2pvYmplY3RBcnJheSAqam9iamVjdEFycmF5 OwoKI2Vsc2UKCnN0cnVjdCBfam9iamVjdDsKCnR5cGVkZWYgc3RydWN0IF9qb2JqZWN0ICpq b2JqZWN0Owp0eXBlZGVmIGpvYmplY3QgamNsYXNzOwp0eXBlZGVmIGpvYmplY3QganRocm93 YWJsZTsKdHlwZWRlZiBqb2JqZWN0IGpzdHJpbmc7CnR5cGVkZWYgam9iamVjdCBqYXJyYXk7 CnR5cGVkZWYgamFycmF5IGpib29sZWFuQXJyYXk7CnR5cGVkZWYgamFycmF5IGpieXRlQXJy YXk7CnR5cGVkZWYgamFycmF5IGpjaGFyQXJyYXk7CnR5cGVkZWYgamFycmF5IGpzaG9ydEFy cmF5Owp0eXBlZGVmIGphcnJheSBqaW50QXJyYXk7CnR5cGVkZWYgamFycmF5IGpsb25nQXJy YXk7CnR5cGVkZWYgamFycmF5IGpmbG9hdEFycmF5Owp0eXBlZGVmIGphcnJheSBqZG91Ymxl QXJyYXk7CnR5cGVkZWYgamFycmF5IGpvYmplY3RBcnJheTsKCiNlbmRpZgoKdHlwZWRlZiBq b2JqZWN0IGp3ZWFrOwoKdHlwZWRlZiB1bmlvbiBqdmFsdWUgewogICAgamJvb2xlYW4gejsK ICAgIGpieXRlICAgIGI7CiAgICBqY2hhciAgICBjOwogICAganNob3J0ICAgczsKICAgIGpp bnQgICAgIGk7CiAgICBqbG9uZyAgICBqOwogICAgamZsb2F0ICAgZjsKICAgIGpkb3VibGUg IGQ7CiAgICBqb2JqZWN0ICBsOwp9IGp2YWx1ZTsKCnN0cnVjdCBfamZpZWxkSUQ7CnR5cGVk ZWYgc3RydWN0IF9qZmllbGRJRCAqamZpZWxkSUQ7CgpzdHJ1Y3QgX2ptZXRob2RJRDsKdHlw ZWRlZiBzdHJ1Y3QgX2ptZXRob2RJRCAqam1ldGhvZElEOwoKLyogUmV0dXJuIHZhbHVlcyBm cm9tIGpvYmplY3RSZWZUeXBlICovCnR5cGVkZWYgZW51bSBfam9iamVjdFR5cGUgewogICAg IEpOSUludmFsaWRSZWZUeXBlICAgID0gMCwKICAgICBKTklMb2NhbFJlZlR5cGUgICAgICA9 IDEsCiAgICAgSk5JR2xvYmFsUmVmVHlwZSAgICAgPSAyLAogICAgIEpOSVdlYWtHbG9iYWxS ZWZUeXBlID0gMwp9IGpvYmplY3RSZWZUeXBlOwoKCiNlbmRpZiAvKiBKTklfVFlQRVNfQUxS RUFEWV9ERUZJTkVEX0lOX0pOSV9NRF9IICovCgovKgogKiBqYm9vbGVhbiBjb25zdGFudHMK ICovCgojZGVmaW5lIEpOSV9GQUxTRSAwCiNkZWZpbmUgSk5JX1RSVUUgMQoKLyoKICogcG9z c2libGUgcmV0dXJuIHZhbHVlcyBmb3IgSk5JIGZ1bmN0aW9ucy4KICovCgojZGVmaW5lIEpO SV9PSyAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgLyogc3VjY2VzcyAqLwojZGVmaW5l IEpOSV9FUlIgICAgICAgICAgKC0xKSAgICAgICAgICAgICAgLyogdW5rbm93biBlcnJvciAq LwojZGVmaW5lIEpOSV9FREVUQUNIRUQgICAgKC0yKSAgICAgICAgICAgICAgLyogdGhyZWFk IGRldGFjaGVkIGZyb20gdGhlIFZNICovCiNkZWZpbmUgSk5JX0VWRVJTSU9OICAgICAoLTMp ICAgICAgICAgICAgICAvKiBKTkkgdmVyc2lvbiBlcnJvciAqLwojZGVmaW5lIEpOSV9FTk9N RU0gICAgICAgKC00KSAgICAgICAgICAgICAgLyogbm90IGVub3VnaCBtZW1vcnkgKi8KI2Rl ZmluZSBKTklfRUVYSVNUICAgICAgICgtNSkgICAgICAgICAgICAgIC8qIFZNIGFscmVhZHkg Y3JlYXRlZCAqLwojZGVmaW5lIEpOSV9FSU5WQUwgICAgICAgKC02KSAgICAgICAgICAgICAg LyogaW52YWxpZCBhcmd1bWVudHMgKi8KCi8qCiAqIHVzZWQgaW4gUmVsZWFzZVNjYWxhckFy cmF5RWxlbWVudHMKICovCgojZGVmaW5lIEpOSV9DT01NSVQgMQojZGVmaW5lIEpOSV9BQk9S VCAyCgovKgogKiB1c2VkIGluIFJlZ2lzdGVyTmF0aXZlcyB0byBkZXNjcmliZSBuYXRpdmUg bWV0aG9kIG5hbWUsIHNpZ25hdHVyZSwKICogYW5kIGZ1bmN0aW9uIHBvaW50ZXIuCiAqLwoK dHlwZWRlZiBzdHJ1Y3QgewogICAgY2hhciAqbmFtZTsKICAgIGNoYXIgKnNpZ25hdHVyZTsK ICAgIHZvaWQgKmZuUHRyOwp9IEpOSU5hdGl2ZU1ldGhvZDsKCi8qCiAqIEpOSSBOYXRpdmUg TWV0aG9kIEludGVyZmFjZS4KICovCgpzdHJ1Y3QgSk5JTmF0aXZlSW50ZXJmYWNlXzsKCnN0 cnVjdCBKTklFbnZfOwoKI2lmZGVmIF9fY3BsdXNwbHVzCnR5cGVkZWYgSk5JRW52XyBKTklF bnY7CiNlbHNlCnR5cGVkZWYgY29uc3Qgc3RydWN0IEpOSU5hdGl2ZUludGVyZmFjZV8gKkpO SUVudjsKI2VuZGlmCgovKgogKiBKTkkgSW52b2NhdGlvbiBJbnRlcmZhY2UuCiAqLwoKc3Ry dWN0IEpOSUludm9rZUludGVyZmFjZV87CgpzdHJ1Y3QgSmF2YVZNXzsKCiNpZmRlZiBfX2Nw bHVzcGx1cwp0eXBlZGVmIEphdmFWTV8gSmF2YVZNOwojZWxzZQp0eXBlZGVmIGNvbnN0IHN0 cnVjdCBKTklJbnZva2VJbnRlcmZhY2VfICpKYXZhVk07CiNlbmRpZgoKc3RydWN0IEpOSU5h dGl2ZUludGVyZmFjZV8gewogICAgdm9pZCAqcmVzZXJ2ZWQwOwogICAgdm9pZCAqcmVzZXJ2 ZWQxOwogICAgdm9pZCAqcmVzZXJ2ZWQyOwoKICAgIHZvaWQgKnJlc2VydmVkMzsKICAgIGpp bnQgKEpOSUNBTEwgKkdldFZlcnNpb24pKEpOSUVudiAqZW52KTsKCiAgICBqY2xhc3MgKEpO SUNBTEwgKkRlZmluZUNsYXNzKQogICAgICAoSk5JRW52ICplbnYsIGNvbnN0IGNoYXIgKm5h bWUsIGpvYmplY3QgbG9hZGVyLCBjb25zdCBqYnl0ZSAqYnVmLAogICAgICAganNpemUgbGVu KTsKICAgIGpjbGFzcyAoSk5JQ0FMTCAqRmluZENsYXNzKQogICAgICAoSk5JRW52ICplbnYs IGNvbnN0IGNoYXIgKm5hbWUpOwoKICAgIGptZXRob2RJRCAoSk5JQ0FMTCAqRnJvbVJlZmxl Y3RlZE1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG1ldGhvZCk7CiAgICBq ZmllbGRJRCAoSk5JQ0FMTCAqRnJvbVJlZmxlY3RlZEZpZWxkKQogICAgICAoSk5JRW52ICpl bnYsIGpvYmplY3QgZmllbGQpOwoKICAgIGpvYmplY3QgKEpOSUNBTEwgKlRvUmVmbGVjdGVk TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbHMsIGptZXRob2RJRCBtZXRo b2RJRCwgamJvb2xlYW4gaXNTdGF0aWMpOwoKICAgIGpjbGFzcyAoSk5JQ0FMTCAqR2V0U3Vw ZXJjbGFzcykKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3Mgc3ViKTsKICAgIGpib29sZWFu IChKTklDQUxMICpJc0Fzc2lnbmFibGVGcm9tKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFz cyBzdWIsIGpjbGFzcyBzdXApOwoKICAgIGpvYmplY3QgKEpOSUNBTEwgKlRvUmVmbGVjdGVk RmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNscywgamZpZWxkSUQgZmllbGRJ RCwgamJvb2xlYW4gaXNTdGF0aWMpOwoKICAgIGppbnQgKEpOSUNBTEwgKlRocm93KQogICAg ICAoSk5JRW52ICplbnYsIGp0aHJvd2FibGUgb2JqKTsKICAgIGppbnQgKEpOSUNBTEwgKlRo cm93TmV3KQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgY29uc3QgY2hhciAq bXNnKTsKICAgIGp0aHJvd2FibGUgKEpOSUNBTEwgKkV4Y2VwdGlvbk9jY3VycmVkKQogICAg ICAoSk5JRW52ICplbnYpOwogICAgdm9pZCAoSk5JQ0FMTCAqRXhjZXB0aW9uRGVzY3JpYmUp CiAgICAgIChKTklFbnYgKmVudik7CiAgICB2b2lkIChKTklDQUxMICpFeGNlcHRpb25DbGVh cikKICAgICAgKEpOSUVudiAqZW52KTsKICAgIHZvaWQgKEpOSUNBTEwgKkZhdGFsRXJyb3Ip CiAgICAgIChKTklFbnYgKmVudiwgY29uc3QgY2hhciAqbXNnKTsKCiAgICBqaW50IChKTklD QUxMICpQdXNoTG9jYWxGcmFtZSkKICAgICAgKEpOSUVudiAqZW52LCBqaW50IGNhcGFjaXR5 KTsKICAgIGpvYmplY3QgKEpOSUNBTEwgKlBvcExvY2FsRnJhbWUpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCByZXN1bHQpOwoKICAgIGpvYmplY3QgKEpOSUNBTEwgKk5ld0dsb2Jh bFJlZikKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IGxvYmopOwogICAgdm9pZCAoSk5J Q0FMTCAqRGVsZXRlR2xvYmFsUmVmKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3QgZ3Jl Zik7CiAgICB2b2lkIChKTklDQUxMICpEZWxldGVMb2NhbFJlZikKICAgICAgKEpOSUVudiAq ZW52LCBqb2JqZWN0IG9iaik7CiAgICBqYm9vbGVhbiAoSk5JQ0FMTCAqSXNTYW1lT2JqZWN0 KQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqMSwgam9iamVjdCBvYmoyKTsKICAg IGpvYmplY3QgKEpOSUNBTEwgKk5ld0xvY2FsUmVmKQogICAgICAoSk5JRW52ICplbnYsIGpv YmplY3QgcmVmKTsKICAgIGppbnQgKEpOSUNBTEwgKkVuc3VyZUxvY2FsQ2FwYWNpdHkpCiAg ICAgIChKTklFbnYgKmVudiwgamludCBjYXBhY2l0eSk7CgogICAgam9iamVjdCAoSk5JQ0FM TCAqQWxsb2NPYmplY3QpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6KTsKICAg IGpvYmplY3QgKEpOSUNBTEwgKk5ld09iamVjdCkKICAgICAgKEpOSUVudiAqZW52LCBqY2xh c3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpvYmplY3QgKEpOSUNB TEwgKk5ld09iamVjdFYpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0 aG9kSUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJncyk7CiAgICBqb2JqZWN0IChKTklDQUxMICpO ZXdPYmplY3RBKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgam1ldGhvZElE IG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpjbGFzcyAoSk5JQ0FMTCAq R2V0T2JqZWN0Q2xhc3MpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmopOwogICAg amJvb2xlYW4gKEpOSUNBTEwgKklzSW5zdGFuY2VPZikKICAgICAgKEpOSUVudiAqZW52LCBq b2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6KTsKCiAgICBqbWV0aG9kSUQgKEpOSUNBTEwgKkdl dE1ldGhvZElEKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgY29uc3QgY2hh ciAqbmFtZSwgY29uc3QgY2hhciAqc2lnKTsKCiAgICBqb2JqZWN0IChKTklDQUxMICpDYWxs T2JqZWN0TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9k SUQgbWV0aG9kSUQsIC4uLik7CiAgICBqb2JqZWN0IChKTklDQUxMICpDYWxsT2JqZWN0TWV0 aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhv ZElELCB2YV9saXN0IGFyZ3MpOwogICAgam9iamVjdCAoSk5JQ0FMTCAqQ2FsbE9iamVjdE1l dGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRo b2RJRCwgY29uc3QganZhbHVlICogYXJncyk7CgogICAgamJvb2xlYW4gKEpOSUNBTEwgKkNh bGxCb29sZWFuTWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0 aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAgICBqYm9vbGVhbiAoSk5JQ0FMTCAqQ2FsbEJvb2xl YW5NZXRob2RWKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQg bWV0aG9kSUQsIHZhX2xpc3QgYXJncyk7CiAgICBqYm9vbGVhbiAoSk5JQ0FMTCAqQ2FsbEJv b2xlYW5NZXRob2RBKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9k SUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAqIGFyZ3MpOwoKICAgIGpieXRlIChKTklDQUxM ICpDYWxsQnl0ZU1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1l dGhvZElEIG1ldGhvZElELCAuLi4pOwogICAgamJ5dGUgKEpOSUNBTEwgKkNhbGxCeXRlTWV0 aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhv ZElELCB2YV9saXN0IGFyZ3MpOwogICAgamJ5dGUgKEpOSUNBTEwgKkNhbGxCeXRlTWV0aG9k QSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElE LCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpjaGFyIChKTklDQUxMICpDYWxsQ2hhck1l dGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhv ZElELCAuLi4pOwogICAgamNoYXIgKEpOSUNBTEwgKkNhbGxDaGFyTWV0aG9kVikKICAgICAg KEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0 IGFyZ3MpOwogICAgamNoYXIgKEpOSUNBTEwgKkNhbGxDaGFyTWV0aG9kQSkKICAgICAgKEpO SUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFs dWUgKmFyZ3MpOwoKICAgIGpzaG9ydCAoSk5JQ0FMTCAqQ2FsbFNob3J0TWV0aG9kKQogICAg ICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7 CiAgICBqc2hvcnQgKEpOSUNBTEwgKkNhbGxTaG9ydE1ldGhvZFYpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdzKTsK ICAgIGpzaG9ydCAoSk5JQ0FMTCAqQ2FsbFNob3J0TWV0aG9kQSkKICAgICAgKEpOSUVudiAq ZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFy Z3MpOwoKICAgIGppbnQgKEpOSUNBTEwgKkNhbGxJbnRNZXRob2QpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGppbnQg KEpOSUNBTEwgKkNhbGxJbnRNZXRob2RWKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qg b2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJncyk7CiAgICBqaW50IChKTklD QUxMICpDYWxsSW50TWV0aG9kQSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwg am1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpsb25nIChK TklDQUxMICpDYWxsTG9uZ01ldGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9i aiwgam1ldGhvZElEIG1ldGhvZElELCAuLi4pOwogICAgamxvbmcgKEpOSUNBTEwgKkNhbGxM b25nTWV0aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElE IG1ldGhvZElELCB2YV9saXN0IGFyZ3MpOwogICAgamxvbmcgKEpOSUNBTEwgKkNhbGxMb25n TWV0aG9kQSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1l dGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpmbG9hdCAoSk5JQ0FMTCAqQ2Fs bEZsb2F0TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9k SUQgbWV0aG9kSUQsIC4uLik7CiAgICBqZmxvYXQgKEpOSUNBTEwgKkNhbGxGbG9hdE1ldGhv ZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJ RCwgdmFfbGlzdCBhcmdzKTsKICAgIGpmbG9hdCAoSk5JQ0FMTCAqQ2FsbEZsb2F0TWV0aG9k QSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElE LCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpkb3VibGUgKEpOSUNBTEwgKkNhbGxEb3Vi bGVNZXRob2QpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBt ZXRob2RJRCwgLi4uKTsKICAgIGpkb3VibGUgKEpOSUNBTEwgKkNhbGxEb3VibGVNZXRob2RW KQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQs IHZhX2xpc3QgYXJncyk7CiAgICBqZG91YmxlIChKTklDQUxMICpDYWxsRG91YmxlTWV0aG9k QSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElE LCBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIHZvaWQgKEpOSUNBTEwgKkNhbGxWb2lkTWV0 aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9k SUQsIC4uLik7CiAgICB2b2lkIChKTklDQUxMICpDYWxsVm9pZE1ldGhvZFYpCiAgICAgIChK TklFbnYgKmVudiwgam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBh cmdzKTsKICAgIHZvaWQgKEpOSUNBTEwgKkNhbGxWb2lkTWV0aG9kQSkKICAgICAgKEpOSUVu diAqZW52LCBqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUg KiBhcmdzKTsKCiAgICBqb2JqZWN0IChKTklDQUxMICpDYWxsTm9udmlydHVhbE9iamVjdE1l dGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBq bWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAgICBqb2JqZWN0IChKTklDQUxMICpDYWxsTm9u dmlydHVhbE9iamVjdE1ldGhvZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmos IGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgdmFfbGlzdCBhcmdz KTsKICAgIGpvYmplY3QgKEpOSUNBTEwgKkNhbGxOb252aXJ0dWFsT2JqZWN0TWV0aG9kQSkK ICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBqbWV0aG9k SUQgbWV0aG9kSUQsCiAgICAgICBjb25zdCBqdmFsdWUgKiBhcmdzKTsKCiAgICBqYm9vbGVh biAoSk5JQ0FMTCAqQ2FsbE5vbnZpcnR1YWxCb29sZWFuTWV0aG9kKQogICAgICAoSk5JRW52 ICplbnYsIGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwg Li4uKTsKICAgIGpib29sZWFuIChKTklDQUxMICpDYWxsTm9udmlydHVhbEJvb2xlYW5NZXRo b2RWKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosIGpt ZXRob2RJRCBtZXRob2RJRCwKICAgICAgIHZhX2xpc3QgYXJncyk7CiAgICBqYm9vbGVhbiAo Sk5JQ0FMTCAqQ2FsbE5vbnZpcnR1YWxCb29sZWFuTWV0aG9kQSkKICAgICAgKEpOSUVudiAq ZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsCiAg ICAgICBjb25zdCBqdmFsdWUgKiBhcmdzKTsKCiAgICBqYnl0ZSAoSk5JQ0FMTCAqQ2FsbE5v bnZpcnR1YWxCeXRlTWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBq Y2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpieXRlIChKTklD QUxMICpDYWxsTm9udmlydHVhbEJ5dGVNZXRob2RWKQogICAgICAoSk5JRW52ICplbnYsIGpv YmplY3Qgb2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgIHZh X2xpc3QgYXJncyk7CiAgICBqYnl0ZSAoSk5JQ0FMTCAqQ2FsbE5vbnZpcnR1YWxCeXRlTWV0 aG9kQSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBq bWV0aG9kSUQgbWV0aG9kSUQsCiAgICAgICBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIGpj aGFyIChKTklDQUxMICpDYWxsTm9udmlydHVhbENoYXJNZXRob2QpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCAu Li4pOwogICAgamNoYXIgKEpOSUNBTEwgKkNhbGxOb252aXJ0dWFsQ2hhck1ldGhvZFYpCiAg ICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElE IG1ldGhvZElELAogICAgICAgdmFfbGlzdCBhcmdzKTsKICAgIGpjaGFyIChKTklDQUxMICpD YWxsTm9udmlydHVhbENoYXJNZXRob2RBKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qg b2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgIGNvbnN0IGp2 YWx1ZSAqYXJncyk7CgogICAganNob3J0IChKTklDQUxMICpDYWxsTm9udmlydHVhbFNob3J0 TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenos IGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpzaG9ydCAoSk5JQ0FMTCAqQ2FsbE5v bnZpcnR1YWxTaG9ydE1ldGhvZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmos IGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgdmFfbGlzdCBhcmdz KTsKICAgIGpzaG9ydCAoSk5JQ0FMTCAqQ2FsbE5vbnZpcnR1YWxTaG9ydE1ldGhvZEEpCiAg ICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElE IG1ldGhvZElELAogICAgICAgY29uc3QganZhbHVlICphcmdzKTsKCiAgICBqaW50IChKTklD QUxMICpDYWxsTm9udmlydHVhbEludE1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2Jq ZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAgICBq aW50IChKTklDQUxMICpDYWxsTm9udmlydHVhbEludE1ldGhvZFYpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAog ICAgICAgdmFfbGlzdCBhcmdzKTsKICAgIGppbnQgKEpOSUNBTEwgKkNhbGxOb252aXJ0dWFs SW50TWV0aG9kQSkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNs YXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsCiAgICAgICBjb25zdCBqdmFsdWUgKmFyZ3MpOwoK ICAgIGpsb25nIChKTklDQUxMICpDYWxsTm9udmlydHVhbExvbmdNZXRob2QpCiAgICAgIChK TklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhv ZElELCAuLi4pOwogICAgamxvbmcgKEpOSUNBTEwgKkNhbGxOb252aXJ0dWFsTG9uZ01ldGhv ZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1l dGhvZElEIG1ldGhvZElELAogICAgICAgdmFfbGlzdCBhcmdzKTsKICAgIGpsb25nIChKTklD QUxMICpDYWxsTm9udmlydHVhbExvbmdNZXRob2RBKQogICAgICAoSk5JRW52ICplbnYsIGpv YmplY3Qgb2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgIGNv bnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamZsb2F0IChKTklDQUxMICpDYWxsTm9udmlydHVh bEZsb2F0TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqY2xhc3Mg Y2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpmbG9hdCAoSk5JQ0FMTCAq Q2FsbE5vbnZpcnR1YWxGbG9hdE1ldGhvZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVj dCBvYmosIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgdmFfbGlz dCBhcmdzKTsKICAgIGpmbG9hdCAoSk5JQ0FMTCAqQ2FsbE5vbnZpcnR1YWxGbG9hdE1ldGhv ZEEpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1l dGhvZElEIG1ldGhvZElELAogICAgICAgY29uc3QganZhbHVlICphcmdzKTsKCiAgICBqZG91 YmxlIChKTklDQUxMICpDYWxsTm9udmlydHVhbERvdWJsZU1ldGhvZCkKICAgICAgKEpOSUVu diAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQs IC4uLik7CiAgICBqZG91YmxlIChKTklDQUxMICpDYWxsTm9udmlydHVhbERvdWJsZU1ldGhv ZFYpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwgam1l dGhvZElEIG1ldGhvZElELAogICAgICAgdmFfbGlzdCBhcmdzKTsKICAgIGpkb3VibGUgKEpO SUNBTEwgKkNhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kQSkKICAgICAgKEpOSUVudiAqZW52 LCBqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsCiAgICAg ICBjb25zdCBqdmFsdWUgKmFyZ3MpOwoKICAgIHZvaWQgKEpOSUNBTEwgKkNhbGxOb252aXJ0 dWFsVm9pZE1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamNsYXNz IGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAgICB2b2lkIChKTklDQUxMICpD YWxsTm9udmlydHVhbFZvaWRNZXRob2RWKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qg b2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgIHZhX2xpc3Qg YXJncyk7CiAgICB2b2lkIChKTklDQUxMICpDYWxsTm9udmlydHVhbFZvaWRNZXRob2RBKQog ICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosIGptZXRob2RJ RCBtZXRob2RJRCwKICAgICAgIGNvbnN0IGp2YWx1ZSAqIGFyZ3MpOwoKICAgIGpmaWVsZElE IChKTklDQUxMICpHZXRGaWVsZElEKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6 eiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2lnKTsKCiAgICBqb2JqZWN0IChK TklDQUxMICpHZXRPYmplY3RGaWVsZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9i aiwgamZpZWxkSUQgZmllbGRJRCk7CiAgICBqYm9vbGVhbiAoSk5JQ0FMTCAqR2V0Qm9vbGVh bkZpZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVs ZElEKTsKICAgIGpieXRlIChKTklDQUxMICpHZXRCeXRlRmllbGQpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpOwogICAgamNoYXIgKEpOSUNB TEwgKkdldENoYXJGaWVsZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamZp ZWxkSUQgZmllbGRJRCk7CiAgICBqc2hvcnQgKEpOSUNBTEwgKkdldFNob3J0RmllbGQpCiAg ICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpOwogICAg amludCAoSk5JQ0FMTCAqR2V0SW50RmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVj dCBvYmosIGpmaWVsZElEIGZpZWxkSUQpOwogICAgamxvbmcgKEpOSUNBTEwgKkdldExvbmdG aWVsZCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJ RCk7CiAgICBqZmxvYXQgKEpOSUNBTEwgKkdldEZsb2F0RmllbGQpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpOwogICAgamRvdWJsZSAoSk5J Q0FMTCAqR2V0RG91YmxlRmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVjdCBvYmos IGpmaWVsZElEIGZpZWxkSUQpOwoKICAgIHZvaWQgKEpOSUNBTEwgKlNldE9iamVjdEZpZWxk KQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElELCBq b2JqZWN0IHZhbCk7CiAgICB2b2lkIChKTklDQUxMICpTZXRCb29sZWFuRmllbGQpCiAgICAg IChKTklFbnYgKmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQsIGpib29sZWFu IHZhbCk7CiAgICB2b2lkIChKTklDQUxMICpTZXRCeXRlRmllbGQpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQsIGpieXRlIHZhbCk7CiAgICB2 b2lkIChKTklDQUxMICpTZXRDaGFyRmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVj dCBvYmosIGpmaWVsZElEIGZpZWxkSUQsIGpjaGFyIHZhbCk7CiAgICB2b2lkIChKTklDQUxM ICpTZXRTaG9ydEZpZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqZmll bGRJRCBmaWVsZElELCBqc2hvcnQgdmFsKTsKICAgIHZvaWQgKEpOSUNBTEwgKlNldEludEZp ZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElE LCBqaW50IHZhbCk7CiAgICB2b2lkIChKTklDQUxMICpTZXRMb25nRmllbGQpCiAgICAgIChK TklFbnYgKmVudiwgam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQsIGpsb25nIHZhbCk7 CiAgICB2b2lkIChKTklDQUxMICpTZXRGbG9hdEZpZWxkKQogICAgICAoSk5JRW52ICplbnYs IGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElELCBqZmxvYXQgdmFsKTsKICAgIHZvaWQg KEpOSUNBTEwgKlNldERvdWJsZUZpZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qg b2JqLCBqZmllbGRJRCBmaWVsZElELCBqZG91YmxlIHZhbCk7CgogICAgam1ldGhvZElEIChK TklDQUxMICpHZXRTdGF0aWNNZXRob2RJRCkKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3Mg Y2xhenosIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnNpZyk7CgogICAgam9iamVj dCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY09iamVjdE1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52 LCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpvYmplY3Qg KEpOSUNBTEwgKkNhbGxTdGF0aWNPYmplY3RNZXRob2RWKQogICAgICAoSk5JRW52ICplbnYs IGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpOwogICAg am9iamVjdCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY09iamVjdE1ldGhvZEEpCiAgICAgIChKTklF bnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1 ZSAqYXJncyk7CgogICAgamJvb2xlYW4gKEpOSUNBTEwgKkNhbGxTdGF0aWNCb29sZWFuTWV0 aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhv ZElELCAuLi4pOwogICAgamJvb2xlYW4gKEpOSUNBTEwgKkNhbGxTdGF0aWNCb29sZWFuTWV0 aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRo b2RJRCwgdmFfbGlzdCBhcmdzKTsKICAgIGpib29sZWFuIChKTklDQUxMICpDYWxsU3RhdGlj Qm9vbGVhbk1ldGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0 aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamJ5dGUgKEpOSUNB TEwgKkNhbGxTdGF0aWNCeXRlTWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBj bGF6eiwgam1ldGhvZElEIG1ldGhvZElELCAuLi4pOwogICAgamJ5dGUgKEpOSUNBTEwgKkNh bGxTdGF0aWNCeXRlTWV0aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenos IGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdzKTsKICAgIGpieXRlIChKTklDQUxM ICpDYWxsU3RhdGljQnl0ZU1ldGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNs YXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamNo YXIgKEpOSUNBTEwgKkNhbGxTdGF0aWNDaGFyTWV0aG9kKQogICAgICAoSk5JRW52ICplbnYs IGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCAuLi4pOwogICAgamNoYXIgKEpO SUNBTEwgKkNhbGxTdGF0aWNDaGFyTWV0aG9kVikKICAgICAgKEpOSUVudiAqZW52LCBqY2xh c3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdzKTsKICAgIGpjaGFy IChKTklDQUxMICpDYWxsU3RhdGljQ2hhck1ldGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwg amNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAqYXJncyk7 CgogICAganNob3J0IChKTklDQUxMICpDYWxsU3RhdGljU2hvcnRNZXRob2QpCiAgICAgIChK TklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAg ICBqc2hvcnQgKEpOSUNBTEwgKkNhbGxTdGF0aWNTaG9ydE1ldGhvZFYpCiAgICAgIChKTklF bnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJn cyk7CiAgICBqc2hvcnQgKEpOSUNBTEwgKkNhbGxTdGF0aWNTaG9ydE1ldGhvZEEpCiAgICAg IChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0 IGp2YWx1ZSAqYXJncyk7CgogICAgamludCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY0ludE1ldGhv ZCkKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJ RCwgLi4uKTsKICAgIGppbnQgKEpOSUNBTEwgKkNhbGxTdGF0aWNJbnRNZXRob2RWKQogICAg ICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCB2YV9s aXN0IGFyZ3MpOwogICAgamludCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY0ludE1ldGhvZEEpCiAg ICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNv bnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamxvbmcgKEpOSUNBTEwgKkNhbGxTdGF0aWNMb25n TWV0aG9kKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1l dGhvZElELCAuLi4pOwogICAgamxvbmcgKEpOSUNBTEwgKkNhbGxTdGF0aWNMb25nTWV0aG9k VikKICAgICAgKEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJ RCwgdmFfbGlzdCBhcmdzKTsKICAgIGpsb25nIChKTklDQUxMICpDYWxsU3RhdGljTG9uZ01l dGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0 aG9kSUQsIGNvbnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamZsb2F0IChKTklDQUxMICpDYWxs U3RhdGljRmxvYXRNZXRob2QpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBq bWV0aG9kSUQgbWV0aG9kSUQsIC4uLik7CiAgICBqZmxvYXQgKEpOSUNBTEwgKkNhbGxTdGF0 aWNGbG9hdE1ldGhvZFYpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0 aG9kSUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJncyk7CiAgICBqZmxvYXQgKEpOSUNBTEwgKkNh bGxTdGF0aWNGbG9hdE1ldGhvZEEpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6 LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAqYXJncyk7CgogICAgamRvdWJs ZSAoSk5JQ0FMTCAqQ2FsbFN0YXRpY0RvdWJsZU1ldGhvZCkKICAgICAgKEpOSUVudiAqZW52 LCBqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKTsKICAgIGpkb3VibGUg KEpOSUNBTEwgKkNhbGxTdGF0aWNEb3VibGVNZXRob2RWKQogICAgICAoSk5JRW52ICplbnYs IGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpOwogICAg amRvdWJsZSAoSk5JQ0FMTCAqQ2FsbFN0YXRpY0RvdWJsZU1ldGhvZEEpCiAgICAgIChKTklF bnYgKmVudiwgamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1 ZSAqYXJncyk7CgogICAgdm9pZCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY1ZvaWRNZXRob2QpCiAg ICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNscywgam1ldGhvZElEIG1ldGhvZElELCAuLi4p OwogICAgdm9pZCAoSk5JQ0FMTCAqQ2FsbFN0YXRpY1ZvaWRNZXRob2RWKQogICAgICAoSk5J RW52ICplbnYsIGpjbGFzcyBjbHMsIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdz KTsKICAgIHZvaWQgKEpOSUNBTEwgKkNhbGxTdGF0aWNWb2lkTWV0aG9kQSkKICAgICAgKEpO SUVudiAqZW52LCBqY2xhc3MgY2xzLCBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1 ZSAqIGFyZ3MpOwoKICAgIGpmaWVsZElEIChKTklDQUxMICpHZXRTdGF0aWNGaWVsZElEKQog ICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgY29uc3QgY2hhciAqbmFtZSwgY29u c3QgY2hhciAqc2lnKTsKICAgIGpvYmplY3QgKEpOSUNBTEwgKkdldFN0YXRpY09iamVjdEZp ZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJ RCk7CiAgICBqYm9vbGVhbiAoSk5JQ0FMTCAqR2V0U3RhdGljQm9vbGVhbkZpZWxkKQogICAg ICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCk7CiAgICBq Ynl0ZSAoSk5JQ0FMTCAqR2V0U3RhdGljQnl0ZUZpZWxkKQogICAgICAoSk5JRW52ICplbnYs IGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCk7CiAgICBqY2hhciAoSk5JQ0FMTCAq R2V0U3RhdGljQ2hhckZpZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwg amZpZWxkSUQgZmllbGRJRCk7CiAgICBqc2hvcnQgKEpOSUNBTEwgKkdldFN0YXRpY1Nob3J0 RmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVs ZElEKTsKICAgIGppbnQgKEpOSUNBTEwgKkdldFN0YXRpY0ludEZpZWxkKQogICAgICAoSk5J RW52ICplbnYsIGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCk7CiAgICBqbG9uZyAo Sk5JQ0FMTCAqR2V0U3RhdGljTG9uZ0ZpZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFz cyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCk7CiAgICBqZmxvYXQgKEpOSUNBTEwgKkdldFN0 YXRpY0Zsb2F0RmllbGQpCiAgICAgIChKTklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqZmll bGRJRCBmaWVsZElEKTsKICAgIGpkb3VibGUgKEpOSUNBTEwgKkdldFN0YXRpY0RvdWJsZUZp ZWxkKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJ RCk7CgogICAgdm9pZCAoSk5JQ0FMTCAqU2V0U3RhdGljT2JqZWN0RmllbGQpCiAgICAgIChK TklFbnYgKmVudiwgamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqb2JqZWN0IHZh bHVlKTsKICAgIHZvaWQgKEpOSUNBTEwgKlNldFN0YXRpY0Jvb2xlYW5GaWVsZCkKICAgICAg KEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsIGpib29sZWFu IHZhbHVlKTsKICAgIHZvaWQgKEpOSUNBTEwgKlNldFN0YXRpY0J5dGVGaWVsZCkKICAgICAg KEpOSUVudiAqZW52LCBqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsIGpieXRlIHZh bHVlKTsKICAgIHZvaWQgKEpOSUNBTEwgKlNldFN0YXRpY0NoYXJGaWVsZCkKICAgICAgKEpO SUVudiAqZW52LCBqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsIGpjaGFyIHZhbHVl KTsKICAgIHZvaWQgKEpOSUNBTEwgKlNldFN0YXRpY1Nob3J0RmllbGQpCiAgICAgIChKTklF bnYgKmVudiwgamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqc2hvcnQgdmFsdWUp OwogICAgdm9pZCAoSk5JQ0FMTCAqU2V0U3RhdGljSW50RmllbGQpCiAgICAgIChKTklFbnYg KmVudiwgamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqaW50IHZhbHVlKTsKICAg IHZvaWQgKEpOSUNBTEwgKlNldFN0YXRpY0xvbmdGaWVsZCkKICAgICAgKEpOSUVudiAqZW52 LCBqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsIGpsb25nIHZhbHVlKTsKICAgIHZv aWQgKEpOSUNBTEwgKlNldFN0YXRpY0Zsb2F0RmllbGQpCiAgICAgIChKTklFbnYgKmVudiwg amNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqZmxvYXQgdmFsdWUpOwogICAgdm9p ZCAoSk5JQ0FMTCAqU2V0U3RhdGljRG91YmxlRmllbGQpCiAgICAgIChKTklFbnYgKmVudiwg amNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELCBqZG91YmxlIHZhbHVlKTsKCiAgICBq c3RyaW5nIChKTklDQUxMICpOZXdTdHJpbmcpCiAgICAgIChKTklFbnYgKmVudiwgY29uc3Qg amNoYXIgKnVuaWNvZGUsIGpzaXplIGxlbik7CiAgICBqc2l6ZSAoSk5JQ0FMTCAqR2V0U3Ry aW5nTGVuZ3RoKQogICAgICAoSk5JRW52ICplbnYsIGpzdHJpbmcgc3RyKTsKICAgIGNvbnN0 IGpjaGFyICooSk5JQ0FMTCAqR2V0U3RyaW5nQ2hhcnMpCiAgICAgIChKTklFbnYgKmVudiwg anN0cmluZyBzdHIsIGpib29sZWFuICppc0NvcHkpOwogICAgdm9pZCAoSk5JQ0FMTCAqUmVs ZWFzZVN0cmluZ0NoYXJzKQogICAgICAoSk5JRW52ICplbnYsIGpzdHJpbmcgc3RyLCBjb25z dCBqY2hhciAqY2hhcnMpOwoKICAgIGpzdHJpbmcgKEpOSUNBTEwgKk5ld1N0cmluZ1VURikK ICAgICAgKEpOSUVudiAqZW52LCBjb25zdCBjaGFyICp1dGYpOwogICAganNpemUgKEpOSUNB TEwgKkdldFN0cmluZ1VURkxlbmd0aCkKICAgICAgKEpOSUVudiAqZW52LCBqc3RyaW5nIHN0 cik7CiAgICBjb25zdCBjaGFyKiAoSk5JQ0FMTCAqR2V0U3RyaW5nVVRGQ2hhcnMpCiAgICAg IChKTklFbnYgKmVudiwganN0cmluZyBzdHIsIGpib29sZWFuICppc0NvcHkpOwogICAgdm9p ZCAoSk5JQ0FMTCAqUmVsZWFzZVN0cmluZ1VURkNoYXJzKQogICAgICAoSk5JRW52ICplbnYs IGpzdHJpbmcgc3RyLCBjb25zdCBjaGFyKiBjaGFycyk7CgoKICAgIGpzaXplIChKTklDQUxM ICpHZXRBcnJheUxlbmd0aCkKICAgICAgKEpOSUVudiAqZW52LCBqYXJyYXkgYXJyYXkpOwoK ICAgIGpvYmplY3RBcnJheSAoSk5JQ0FMTCAqTmV3T2JqZWN0QXJyYXkpCiAgICAgIChKTklF bnYgKmVudiwganNpemUgbGVuLCBqY2xhc3MgY2xhenosIGpvYmplY3QgaW5pdCk7CiAgICBq b2JqZWN0IChKTklDQUxMICpHZXRPYmplY3RBcnJheUVsZW1lbnQpCiAgICAgIChKTklFbnYg KmVudiwgam9iamVjdEFycmF5IGFycmF5LCBqc2l6ZSBpbmRleCk7CiAgICB2b2lkIChKTklD QUxMICpTZXRPYmplY3RBcnJheUVsZW1lbnQpCiAgICAgIChKTklFbnYgKmVudiwgam9iamVj dEFycmF5IGFycmF5LCBqc2l6ZSBpbmRleCwgam9iamVjdCB2YWwpOwoKICAgIGpib29sZWFu QXJyYXkgKEpOSUNBTEwgKk5ld0Jvb2xlYW5BcnJheSkKICAgICAgKEpOSUVudiAqZW52LCBq c2l6ZSBsZW4pOwogICAgamJ5dGVBcnJheSAoSk5JQ0FMTCAqTmV3Qnl0ZUFycmF5KQogICAg ICAoSk5JRW52ICplbnYsIGpzaXplIGxlbik7CiAgICBqY2hhckFycmF5IChKTklDQUxMICpO ZXdDaGFyQXJyYXkpCiAgICAgIChKTklFbnYgKmVudiwganNpemUgbGVuKTsKICAgIGpzaG9y dEFycmF5IChKTklDQUxMICpOZXdTaG9ydEFycmF5KQogICAgICAoSk5JRW52ICplbnYsIGpz aXplIGxlbik7CiAgICBqaW50QXJyYXkgKEpOSUNBTEwgKk5ld0ludEFycmF5KQogICAgICAo Sk5JRW52ICplbnYsIGpzaXplIGxlbik7CiAgICBqbG9uZ0FycmF5IChKTklDQUxMICpOZXdM b25nQXJyYXkpCiAgICAgIChKTklFbnYgKmVudiwganNpemUgbGVuKTsKICAgIGpmbG9hdEFy cmF5IChKTklDQUxMICpOZXdGbG9hdEFycmF5KQogICAgICAoSk5JRW52ICplbnYsIGpzaXpl IGxlbik7CiAgICBqZG91YmxlQXJyYXkgKEpOSUNBTEwgKk5ld0RvdWJsZUFycmF5KQogICAg ICAoSk5JRW52ICplbnYsIGpzaXplIGxlbik7CgogICAgamJvb2xlYW4gKiAoSk5JQ0FMTCAq R2V0Qm9vbGVhbkFycmF5RWxlbWVudHMpCiAgICAgIChKTklFbnYgKmVudiwgamJvb2xlYW5B cnJheSBhcnJheSwgamJvb2xlYW4gKmlzQ29weSk7CiAgICBqYnl0ZSAqIChKTklDQUxMICpH ZXRCeXRlQXJyYXlFbGVtZW50cykKICAgICAgKEpOSUVudiAqZW52LCBqYnl0ZUFycmF5IGFy cmF5LCBqYm9vbGVhbiAqaXNDb3B5KTsKICAgIGpjaGFyICogKEpOSUNBTEwgKkdldENoYXJB cnJheUVsZW1lbnRzKQogICAgICAoSk5JRW52ICplbnYsIGpjaGFyQXJyYXkgYXJyYXksIGpi b29sZWFuICppc0NvcHkpOwogICAganNob3J0ICogKEpOSUNBTEwgKkdldFNob3J0QXJyYXlF bGVtZW50cykKICAgICAgKEpOSUVudiAqZW52LCBqc2hvcnRBcnJheSBhcnJheSwgamJvb2xl YW4gKmlzQ29weSk7CiAgICBqaW50ICogKEpOSUNBTEwgKkdldEludEFycmF5RWxlbWVudHMp CiAgICAgIChKTklFbnYgKmVudiwgamludEFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXNDb3B5 KTsKICAgIGpsb25nICogKEpOSUNBTEwgKkdldExvbmdBcnJheUVsZW1lbnRzKQogICAgICAo Sk5JRW52ICplbnYsIGpsb25nQXJyYXkgYXJyYXksIGpib29sZWFuICppc0NvcHkpOwogICAg amZsb2F0ICogKEpOSUNBTEwgKkdldEZsb2F0QXJyYXlFbGVtZW50cykKICAgICAgKEpOSUVu diAqZW52LCBqZmxvYXRBcnJheSBhcnJheSwgamJvb2xlYW4gKmlzQ29weSk7CiAgICBqZG91 YmxlICogKEpOSUNBTEwgKkdldERvdWJsZUFycmF5RWxlbWVudHMpCiAgICAgIChKTklFbnYg KmVudiwgamRvdWJsZUFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXNDb3B5KTsKCiAgICB2b2lk IChKTklDQUxMICpSZWxlYXNlQm9vbGVhbkFycmF5RWxlbWVudHMpCiAgICAgIChKTklFbnYg KmVudiwgamJvb2xlYW5BcnJheSBhcnJheSwgamJvb2xlYW4gKmVsZW1zLCBqaW50IG1vZGUp OwogICAgdm9pZCAoSk5JQ0FMTCAqUmVsZWFzZUJ5dGVBcnJheUVsZW1lbnRzKQogICAgICAo Sk5JRW52ICplbnYsIGpieXRlQXJyYXkgYXJyYXksIGpieXRlICplbGVtcywgamludCBtb2Rl KTsKICAgIHZvaWQgKEpOSUNBTEwgKlJlbGVhc2VDaGFyQXJyYXlFbGVtZW50cykKICAgICAg KEpOSUVudiAqZW52LCBqY2hhckFycmF5IGFycmF5LCBqY2hhciAqZWxlbXMsIGppbnQgbW9k ZSk7CiAgICB2b2lkIChKTklDQUxMICpSZWxlYXNlU2hvcnRBcnJheUVsZW1lbnRzKQogICAg ICAoSk5JRW52ICplbnYsIGpzaG9ydEFycmF5IGFycmF5LCBqc2hvcnQgKmVsZW1zLCBqaW50 IG1vZGUpOwogICAgdm9pZCAoSk5JQ0FMTCAqUmVsZWFzZUludEFycmF5RWxlbWVudHMpCiAg ICAgIChKTklFbnYgKmVudiwgamludEFycmF5IGFycmF5LCBqaW50ICplbGVtcywgamludCBt b2RlKTsKICAgIHZvaWQgKEpOSUNBTEwgKlJlbGVhc2VMb25nQXJyYXlFbGVtZW50cykKICAg ICAgKEpOSUVudiAqZW52LCBqbG9uZ0FycmF5IGFycmF5LCBqbG9uZyAqZWxlbXMsIGppbnQg bW9kZSk7CiAgICB2b2lkIChKTklDQUxMICpSZWxlYXNlRmxvYXRBcnJheUVsZW1lbnRzKQog ICAgICAoSk5JRW52ICplbnYsIGpmbG9hdEFycmF5IGFycmF5LCBqZmxvYXQgKmVsZW1zLCBq aW50IG1vZGUpOwogICAgdm9pZCAoSk5JQ0FMTCAqUmVsZWFzZURvdWJsZUFycmF5RWxlbWVu dHMpCiAgICAgIChKTklFbnYgKmVudiwgamRvdWJsZUFycmF5IGFycmF5LCBqZG91YmxlICpl bGVtcywgamludCBtb2RlKTsKCiAgICB2b2lkIChKTklDQUxMICpHZXRCb29sZWFuQXJyYXlS ZWdpb24pCiAgICAgIChKTklFbnYgKmVudiwgamJvb2xlYW5BcnJheSBhcnJheSwganNpemUg c3RhcnQsIGpzaXplIGwsIGpib29sZWFuICpidWYpOwogICAgdm9pZCAoSk5JQ0FMTCAqR2V0 Qnl0ZUFycmF5UmVnaW9uKQogICAgICAoSk5JRW52ICplbnYsIGpieXRlQXJyYXkgYXJyYXks IGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpieXRlICpidWYpOwogICAgdm9pZCAoSk5JQ0FM TCAqR2V0Q2hhckFycmF5UmVnaW9uKQogICAgICAoSk5JRW52ICplbnYsIGpjaGFyQXJyYXkg YXJyYXksIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpjaGFyICpidWYpOwogICAgdm9pZCAo Sk5JQ0FMTCAqR2V0U2hvcnRBcnJheVJlZ2lvbikKICAgICAgKEpOSUVudiAqZW52LCBqc2hv cnRBcnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxlbiwganNob3J0ICpidWYpOwog ICAgdm9pZCAoSk5JQ0FMTCAqR2V0SW50QXJyYXlSZWdpb24pCiAgICAgIChKTklFbnYgKmVu diwgamludEFycmF5IGFycmF5LCBqc2l6ZSBzdGFydCwganNpemUgbGVuLCBqaW50ICpidWYp OwogICAgdm9pZCAoSk5JQ0FMTCAqR2V0TG9uZ0FycmF5UmVnaW9uKQogICAgICAoSk5JRW52 ICplbnYsIGpsb25nQXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpsb25n ICpidWYpOwogICAgdm9pZCAoSk5JQ0FMTCAqR2V0RmxvYXRBcnJheVJlZ2lvbikKICAgICAg KEpOSUVudiAqZW52LCBqZmxvYXRBcnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxl biwgamZsb2F0ICpidWYpOwogICAgdm9pZCAoSk5JQ0FMTCAqR2V0RG91YmxlQXJyYXlSZWdp b24pCiAgICAgIChKTklFbnYgKmVudiwgamRvdWJsZUFycmF5IGFycmF5LCBqc2l6ZSBzdGFy dCwganNpemUgbGVuLCBqZG91YmxlICpidWYpOwoKICAgIHZvaWQgKEpOSUNBTEwgKlNldEJv b2xlYW5BcnJheVJlZ2lvbikKICAgICAgKEpOSUVudiAqZW52LCBqYm9vbGVhbkFycmF5IGFy cmF5LCBqc2l6ZSBzdGFydCwganNpemUgbCwgY29uc3QgamJvb2xlYW4gKmJ1Zik7CiAgICB2 b2lkIChKTklDQUxMICpTZXRCeXRlQXJyYXlSZWdpb24pCiAgICAgIChKTklFbnYgKmVudiwg amJ5dGVBcnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxlbiwgY29uc3QgamJ5dGUg KmJ1Zik7CiAgICB2b2lkIChKTklDQUxMICpTZXRDaGFyQXJyYXlSZWdpb24pCiAgICAgIChK TklFbnYgKmVudiwgamNoYXJBcnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxlbiwg Y29uc3QgamNoYXIgKmJ1Zik7CiAgICB2b2lkIChKTklDQUxMICpTZXRTaG9ydEFycmF5UmVn aW9uKQogICAgICAoSk5JRW52ICplbnYsIGpzaG9ydEFycmF5IGFycmF5LCBqc2l6ZSBzdGFy dCwganNpemUgbGVuLCBjb25zdCBqc2hvcnQgKmJ1Zik7CiAgICB2b2lkIChKTklDQUxMICpT ZXRJbnRBcnJheVJlZ2lvbikKICAgICAgKEpOSUVudiAqZW52LCBqaW50QXJyYXkgYXJyYXks IGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGNvbnN0IGppbnQgKmJ1Zik7CiAgICB2b2lkIChK TklDQUxMICpTZXRMb25nQXJyYXlSZWdpb24pCiAgICAgIChKTklFbnYgKmVudiwgamxvbmdB cnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxlbiwgY29uc3QgamxvbmcgKmJ1Zik7 CiAgICB2b2lkIChKTklDQUxMICpTZXRGbG9hdEFycmF5UmVnaW9uKQogICAgICAoSk5JRW52 ICplbnYsIGpmbG9hdEFycmF5IGFycmF5LCBqc2l6ZSBzdGFydCwganNpemUgbGVuLCBjb25z dCBqZmxvYXQgKmJ1Zik7CiAgICB2b2lkIChKTklDQUxMICpTZXREb3VibGVBcnJheVJlZ2lv bikKICAgICAgKEpOSUVudiAqZW52LCBqZG91YmxlQXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0 LCBqc2l6ZSBsZW4sIGNvbnN0IGpkb3VibGUgKmJ1Zik7CgogICAgamludCAoSk5JQ0FMTCAq UmVnaXN0ZXJOYXRpdmVzKQogICAgICAoSk5JRW52ICplbnYsIGpjbGFzcyBjbGF6eiwgY29u c3QgSk5JTmF0aXZlTWV0aG9kICptZXRob2RzLAogICAgICAgamludCBuTWV0aG9kcyk7CiAg ICBqaW50IChKTklDQUxMICpVbnJlZ2lzdGVyTmF0aXZlcykKICAgICAgKEpOSUVudiAqZW52 LCBqY2xhc3MgY2xhenopOwoKICAgIGppbnQgKEpOSUNBTEwgKk1vbml0b3JFbnRlcikKICAg ICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaik7CiAgICBqaW50IChKTklDQUxMICpNb25p dG9yRXhpdCkKICAgICAgKEpOSUVudiAqZW52LCBqb2JqZWN0IG9iaik7CgogICAgamludCAo Sk5JQ0FMTCAqR2V0SmF2YVZNKQogICAgICAoSk5JRW52ICplbnYsIEphdmFWTSAqKnZtKTsK CiAgICB2b2lkIChKTklDQUxMICpHZXRTdHJpbmdSZWdpb24pCiAgICAgIChKTklFbnYgKmVu diwganN0cmluZyBzdHIsIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpjaGFyICpidWYpOwog ICAgdm9pZCAoSk5JQ0FMTCAqR2V0U3RyaW5nVVRGUmVnaW9uKQogICAgICAoSk5JRW52ICpl bnYsIGpzdHJpbmcgc3RyLCBqc2l6ZSBzdGFydCwganNpemUgbGVuLCBjaGFyICpidWYpOwoK ICAgIHZvaWQgKiAoSk5JQ0FMTCAqR2V0UHJpbWl0aXZlQXJyYXlDcml0aWNhbCkKICAgICAg KEpOSUVudiAqZW52LCBqYXJyYXkgYXJyYXksIGpib29sZWFuICppc0NvcHkpOwogICAgdm9p ZCAoSk5JQ0FMTCAqUmVsZWFzZVByaW1pdGl2ZUFycmF5Q3JpdGljYWwpCiAgICAgIChKTklF bnYgKmVudiwgamFycmF5IGFycmF5LCB2b2lkICpjYXJyYXksIGppbnQgbW9kZSk7CgogICAg Y29uc3QgamNoYXIgKiAoSk5JQ0FMTCAqR2V0U3RyaW5nQ3JpdGljYWwpCiAgICAgIChKTklF bnYgKmVudiwganN0cmluZyBzdHJpbmcsIGpib29sZWFuICppc0NvcHkpOwogICAgdm9pZCAo Sk5JQ0FMTCAqUmVsZWFzZVN0cmluZ0NyaXRpY2FsKQogICAgICAoSk5JRW52ICplbnYsIGpz dHJpbmcgc3RyaW5nLCBjb25zdCBqY2hhciAqY3N0cmluZyk7CgogICAgandlYWsgKEpOSUNB TEwgKk5ld1dlYWtHbG9iYWxSZWYpCiAgICAgICAoSk5JRW52ICplbnYsIGpvYmplY3Qgb2Jq KTsKICAgIHZvaWQgKEpOSUNBTEwgKkRlbGV0ZVdlYWtHbG9iYWxSZWYpCiAgICAgICAoSk5J RW52ICplbnYsIGp3ZWFrIHJlZik7CgogICAgamJvb2xlYW4gKEpOSUNBTEwgKkV4Y2VwdGlv bkNoZWNrKQogICAgICAgKEpOSUVudiAqZW52KTsKCiAgICBqb2JqZWN0IChKTklDQUxMICpO ZXdEaXJlY3RCeXRlQnVmZmVyKQogICAgICAgKEpOSUVudiogZW52LCB2b2lkKiBhZGRyZXNz LCBqbG9uZyBjYXBhY2l0eSk7CiAgICB2b2lkKiAoSk5JQ0FMTCAqR2V0RGlyZWN0QnVmZmVy QWRkcmVzcykKICAgICAgIChKTklFbnYqIGVudiwgam9iamVjdCBidWYpOwogICAgamxvbmcg KEpOSUNBTEwgKkdldERpcmVjdEJ1ZmZlckNhcGFjaXR5KQogICAgICAgKEpOSUVudiogZW52 LCBqb2JqZWN0IGJ1Zik7CgogICAgLyogTmV3IEpOSSAxLjYgRmVhdHVyZXMgKi8KCiAgICBq b2JqZWN0UmVmVHlwZSAoSk5JQ0FMTCAqR2V0T2JqZWN0UmVmVHlwZSkKICAgICAgICAoSk5J RW52KiBlbnYsIGpvYmplY3Qgb2JqKTsKfTsKCi8qCiAqIFdlIHVzZSBpbmxpbmVkIGZ1bmN0 aW9ucyBmb3IgQysrIHNvIHRoYXQgcHJvZ3JhbW1lcnMgY2FuIHdyaXRlOgogKgogKiAgICBl bnYtPkZpbmRDbGFzcygiamF2YS9sYW5nL1N0cmluZyIpCiAqCiAqIGluIEMrKyByYXRoZXIg dGhhbjoKICoKICogICAgKCplbnYpLT5GaW5kQ2xhc3MoZW52LCAiamF2YS9sYW5nL1N0cmlu ZyIpCiAqCiAqIGluIEMuCiAqLwoKc3RydWN0IEpOSUVudl8gewogICAgY29uc3Qgc3RydWN0 IEpOSU5hdGl2ZUludGVyZmFjZV8gKmZ1bmN0aW9uczsKI2lmZGVmIF9fY3BsdXNwbHVzCgog ICAgamludCBHZXRWZXJzaW9uKCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFZl cnNpb24odGhpcyk7CiAgICB9CiAgICBqY2xhc3MgRGVmaW5lQ2xhc3MoY29uc3QgY2hhciAq bmFtZSwgam9iamVjdCBsb2FkZXIsIGNvbnN0IGpieXRlICpidWYsCiAgICAgICAgICAgICAg ICAgICAgICAganNpemUgbGVuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+RGVmaW5l Q2xhc3ModGhpcywgbmFtZSwgbG9hZGVyLCBidWYsIGxlbik7CiAgICB9CiAgICBqY2xhc3Mg RmluZENsYXNzKGNvbnN0IGNoYXIgKm5hbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25z LT5GaW5kQ2xhc3ModGhpcywgbmFtZSk7CiAgICB9CiAgICBqbWV0aG9kSUQgRnJvbVJlZmxl Y3RlZE1ldGhvZChqb2JqZWN0IG1ldGhvZCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkZyb21SZWZsZWN0ZWRNZXRob2QodGhpcyxtZXRob2QpOwogICAgfQogICAgamZpZWxkSUQg RnJvbVJlZmxlY3RlZEZpZWxkKGpvYmplY3QgZmllbGQpIHsKICAgICAgICByZXR1cm4gZnVu Y3Rpb25zLT5Gcm9tUmVmbGVjdGVkRmllbGQodGhpcyxmaWVsZCk7CiAgICB9CgogICAgam9i amVjdCBUb1JlZmxlY3RlZE1ldGhvZChqY2xhc3MgY2xzLCBqbWV0aG9kSUQgbWV0aG9kSUQs IGpib29sZWFuIGlzU3RhdGljKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+VG9SZWZs ZWN0ZWRNZXRob2QodGhpcywgY2xzLCBtZXRob2RJRCwgaXNTdGF0aWMpOwogICAgfQoKICAg IGpjbGFzcyBHZXRTdXBlcmNsYXNzKGpjbGFzcyBzdWIpIHsKICAgICAgICByZXR1cm4gZnVu Y3Rpb25zLT5HZXRTdXBlcmNsYXNzKHRoaXMsIHN1Yik7CiAgICB9CiAgICBqYm9vbGVhbiBJ c0Fzc2lnbmFibGVGcm9tKGpjbGFzcyBzdWIsIGpjbGFzcyBzdXApIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5Jc0Fzc2lnbmFibGVGcm9tKHRoaXMsIHN1Yiwgc3VwKTsKICAgIH0K CiAgICBqb2JqZWN0IFRvUmVmbGVjdGVkRmllbGQoamNsYXNzIGNscywgamZpZWxkSUQgZmll bGRJRCwgamJvb2xlYW4gaXNTdGF0aWMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5U b1JlZmxlY3RlZEZpZWxkKHRoaXMsY2xzLGZpZWxkSUQsaXNTdGF0aWMpOwogICAgfQoKICAg IGppbnQgVGhyb3coanRocm93YWJsZSBvYmopIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25z LT5UaHJvdyh0aGlzLCBvYmopOwogICAgfQogICAgamludCBUaHJvd05ldyhqY2xhc3MgY2xh enosIGNvbnN0IGNoYXIgKm1zZykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPlRocm93 TmV3KHRoaXMsIGNsYXp6LCBtc2cpOwogICAgfQogICAganRocm93YWJsZSBFeGNlcHRpb25P Y2N1cnJlZCgpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5FeGNlcHRpb25PY2N1cnJl ZCh0aGlzKTsKICAgIH0KICAgIHZvaWQgRXhjZXB0aW9uRGVzY3JpYmUoKSB7CiAgICAgICAg ZnVuY3Rpb25zLT5FeGNlcHRpb25EZXNjcmliZSh0aGlzKTsKICAgIH0KICAgIHZvaWQgRXhj ZXB0aW9uQ2xlYXIoKSB7CiAgICAgICAgZnVuY3Rpb25zLT5FeGNlcHRpb25DbGVhcih0aGlz KTsKICAgIH0KICAgIHZvaWQgRmF0YWxFcnJvcihjb25zdCBjaGFyICptc2cpIHsKICAgICAg ICBmdW5jdGlvbnMtPkZhdGFsRXJyb3IodGhpcywgbXNnKTsKICAgIH0KCiAgICBqaW50IFB1 c2hMb2NhbEZyYW1lKGppbnQgY2FwYWNpdHkpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25z LT5QdXNoTG9jYWxGcmFtZSh0aGlzLGNhcGFjaXR5KTsKICAgIH0KICAgIGpvYmplY3QgUG9w TG9jYWxGcmFtZShqb2JqZWN0IHJlc3VsdCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PlBvcExvY2FsRnJhbWUodGhpcyxyZXN1bHQpOwogICAgfQoKICAgIGpvYmplY3QgTmV3R2xv YmFsUmVmKGpvYmplY3QgbG9iaikgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPk5ld0ds b2JhbFJlZih0aGlzLGxvYmopOwogICAgfQogICAgdm9pZCBEZWxldGVHbG9iYWxSZWYoam9i amVjdCBncmVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5EZWxldGVHbG9iYWxSZWYodGhpcyxn cmVmKTsKICAgIH0KICAgIHZvaWQgRGVsZXRlTG9jYWxSZWYoam9iamVjdCBvYmopIHsKICAg ICAgICBmdW5jdGlvbnMtPkRlbGV0ZUxvY2FsUmVmKHRoaXMsIG9iaik7CiAgICB9CgogICAg amJvb2xlYW4gSXNTYW1lT2JqZWN0KGpvYmplY3Qgb2JqMSwgam9iamVjdCBvYmoyKSB7CiAg ICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+SXNTYW1lT2JqZWN0KHRoaXMsb2JqMSxvYmoyKTsK ICAgIH0KCiAgICBqb2JqZWN0IE5ld0xvY2FsUmVmKGpvYmplY3QgcmVmKSB7CiAgICAgICAg cmV0dXJuIGZ1bmN0aW9ucy0+TmV3TG9jYWxSZWYodGhpcyxyZWYpOwogICAgfQogICAgamlu dCBFbnN1cmVMb2NhbENhcGFjaXR5KGppbnQgY2FwYWNpdHkpIHsKICAgICAgICByZXR1cm4g ZnVuY3Rpb25zLT5FbnN1cmVMb2NhbENhcGFjaXR5KHRoaXMsY2FwYWNpdHkpOwogICAgfQoK ICAgIGpvYmplY3QgQWxsb2NPYmplY3QoamNsYXNzIGNsYXp6KSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+QWxsb2NPYmplY3QodGhpcyxjbGF6eik7CiAgICB9CiAgICBqb2JqZWN0 IE5ld09iamVjdChqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAg ICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAgIGpvYmplY3QgcmVzdWx0OwogICAgICAgIHZh X3N0YXJ0KGFyZ3MsIG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPk5l d09iamVjdFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9lbmQoYXJn cyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpvYmplY3QgTmV3T2JqZWN0 VihqY2xhc3MgY2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAg ICAgICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdPYmpl Y3RWKHRoaXMsY2xhenosbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqb2JqZWN0IE5ld09i amVjdEEoamNsYXNzIGNsYXp6LCBqbWV0aG9kSUQgbWV0aG9kSUQsCiAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QganZhbHVlICphcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9u cy0+TmV3T2JqZWN0QSh0aGlzLGNsYXp6LG1ldGhvZElELGFyZ3MpOwogICAgfQoKICAgIGpj bGFzcyBHZXRPYmplY3RDbGFzcyhqb2JqZWN0IG9iaikgewogICAgICAgIHJldHVybiBmdW5j dGlvbnMtPkdldE9iamVjdENsYXNzKHRoaXMsb2JqKTsKICAgIH0KICAgIGpib29sZWFuIElz SW5zdGFuY2VPZihqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6KSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+SXNJbnN0YW5jZU9mKHRoaXMsb2JqLGNsYXp6KTsKICAgIH0KCiAgICBq bWV0aG9kSUQgR2V0TWV0aG9kSUQoamNsYXNzIGNsYXp6LCBjb25zdCBjaGFyICpuYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNpZykgewogICAgICAgIHJl dHVybiBmdW5jdGlvbnMtPkdldE1ldGhvZElEKHRoaXMsY2xhenosbmFtZSxzaWcpOwogICAg fQoKICAgIGpvYmplY3QgQ2FsbE9iamVjdE1ldGhvZChqb2JqZWN0IG9iaiwgam1ldGhvZElE IG1ldGhvZElELCAuLi4pIHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAgam9iamVj dCByZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVz dWx0ID0gZnVuY3Rpb25zLT5DYWxsT2JqZWN0TWV0aG9kVih0aGlzLG9iaixtZXRob2RJRCxh cmdzKTsKICAgICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg IH0KICAgIGpvYmplY3QgQ2FsbE9iamVjdE1ldGhvZFYoam9iamVjdCBvYmosIGptZXRob2RJ RCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdzKSB7CiAg ICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbE9iamVjdE1ldGhvZFYodGhpcyxvYmosbWV0 aG9kSUQsYXJncyk7CiAgICB9CiAgICBqb2JqZWN0IENhbGxPYmplY3RNZXRob2RBKGpvYmpl Y3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGp2YWx1ZSAqIGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsT2Jq ZWN0TWV0aG9kQSh0aGlzLG9iaixtZXRob2RJRCxhcmdzKTsKICAgIH0KCiAgICBqYm9vbGVh biBDYWxsQm9vbGVhbk1ldGhvZChqb2JqZWN0IG9iaiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBh cmdzOwogICAgICAgIGpib29sZWFuIHJlc3VsdDsKICAgICAgICB2YV9zdGFydChhcmdzLG1l dGhvZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPkNhbGxCb29sZWFuTWV0aG9k Vih0aGlzLG9iaixtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9lbmQoYXJncyk7CiAgICAg ICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpib29sZWFuIENhbGxCb29sZWFuTWV0aG9k Vihqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhX2xpc3QgYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkNhbGxCb29sZWFuTWV0aG9kVih0aGlzLG9iaixtZXRob2RJRCxhcmdzKTsKICAgIH0KICAg IGpib29sZWFuIENhbGxCb29sZWFuTWV0aG9kQShqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1l dGhvZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGp2YWx1ZSAq IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsQm9vbGVhbk1ldGhvZEEo dGhpcyxvYmosbWV0aG9kSUQsIGFyZ3MpOwogICAgfQoKICAgIGpieXRlIENhbGxCeXRlTWV0 aG9kKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZh X2xpc3QgYXJnczsKICAgICAgICBqYnl0ZSByZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJn cyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5DYWxsQnl0ZU1ldGhv ZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAg ICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqYnl0ZSBDYWxsQnl0ZU1ldGhvZFYoam9i amVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAg ICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsQnl0ZU1l dGhvZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqYnl0ZSBDYWxsQnl0 ZU1ldGhvZEEoam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBqdmFsdWUgKiBhcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1 bmN0aW9ucy0+Q2FsbEJ5dGVNZXRob2RBKHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAg fQoKICAgIGpjaGFyIENhbGxDaGFyTWV0aG9kKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0 aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqY2hhciByZXN1 bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0g ZnVuY3Rpb25zLT5DYWxsQ2hhck1ldGhvZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7CiAg ICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBq Y2hhciBDYWxsQ2hhck1ldGhvZFYoam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwK ICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5DYWxsQ2hhck1ldGhvZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7 CiAgICB9CiAgICBqY2hhciBDYWxsQ2hhck1ldGhvZEEoam9iamVjdCBvYmosIGptZXRob2RJ RCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqdmFsdWUgKiBh cmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbENoYXJNZXRob2RBKHRoaXMs b2JqLG1ldGhvZElELGFyZ3MpOwogICAgfQoKICAgIGpzaG9ydCBDYWxsU2hvcnRNZXRob2Qo am9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlz dCBhcmdzOwogICAgICAgIGpzaG9ydCByZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJncyxt ZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5DYWxsU2hvcnRNZXRob2RW KHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZhX2VuZChhcmdzKTsKICAgICAg ICByZXR1cm4gcmVzdWx0OwogICAgfQogICAganNob3J0IENhbGxTaG9ydE1ldGhvZFYoam9i amVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZhX2xpc3QgYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxTaG9y dE1ldGhvZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqc2hvcnQgQ2Fs bFNob3J0TWV0aG9kQShqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QganZhbHVlICogYXJncykgewogICAgICAgIHJl dHVybiBmdW5jdGlvbnMtPkNhbGxTaG9ydE1ldGhvZEEodGhpcyxvYmosbWV0aG9kSUQsYXJn cyk7CiAgICB9CgogICAgamludCBDYWxsSW50TWV0aG9kKGpvYmplY3Qgb2JqLCBqbWV0aG9k SUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqaW50 IHJlc3VsdDsKICAgICAgICB2YV9zdGFydChhcmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1 bHQgPSBmdW5jdGlvbnMtPkNhbGxJbnRNZXRob2RWKHRoaXMsb2JqLG1ldGhvZElELGFyZ3Mp OwogICAgICAgIHZhX2VuZChhcmdzKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQog ICAgamludCBDYWxsSW50TWV0aG9kVihqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElE LAogICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5DYWxsSW50TWV0aG9kVih0aGlzLG9iaixtZXRob2RJRCxhcmdzKTsK ICAgIH0KICAgIGppbnQgQ2FsbEludE1ldGhvZEEoam9iamVjdCBvYmosIGptZXRob2RJRCBt ZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganZhbHVlICogYXJncykg ewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxJbnRNZXRob2RBKHRoaXMsb2JqLG1l dGhvZElELGFyZ3MpOwogICAgfQoKICAgIGpsb25nIENhbGxMb25nTWV0aG9kKGpvYmplY3Qg b2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsK ICAgICAgICBqbG9uZyByZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7 CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5DYWxsTG9uZ01ldGhvZFYodGhpcyxvYmos bWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAgIHJldHVybiBy ZXN1bHQ7CiAgICB9CiAgICBqbG9uZyBDYWxsTG9uZ01ldGhvZFYoam9iamVjdCBvYmosIGpt ZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFy Z3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsTG9uZ01ldGhvZFYodGhpcyxv YmosbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqbG9uZyBDYWxsTG9uZ01ldGhvZEEoam9i amVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBqdmFsdWUgKiBhcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2Fs bExvbmdNZXRob2RBKHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAgfQoKICAgIGpmbG9h dCBDYWxsRmxvYXRNZXRob2Qoam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwgLi4u KSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAgIGpmbG9hdCByZXN1bHQ7CiAgICAg ICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25z LT5DYWxsRmxvYXRNZXRob2RWKHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZh X2VuZChhcmdzKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgamZsb2F0IENh bGxGbG9hdE1ldGhvZFYoam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgYXJncykgewogICAgICAgIHJldHVybiBm dW5jdGlvbnMtPkNhbGxGbG9hdE1ldGhvZFYodGhpcyxvYmosbWV0aG9kSUQsYXJncyk7CiAg ICB9CiAgICBqZmxvYXQgQ2FsbEZsb2F0TWV0aG9kQShqb2JqZWN0IG9iaiwgam1ldGhvZElE IG1ldGhvZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganZhbHVlICog YXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxGbG9hdE1ldGhvZEEodGhp cyxvYmosbWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAgamRvdWJsZSBDYWxsRG91YmxlTWV0 aG9kKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZh X2xpc3QgYXJnczsKICAgICAgICBqZG91YmxlIHJlc3VsdDsKICAgICAgICB2YV9zdGFydChh cmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPkNhbGxEb3VibGVN ZXRob2RWKHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZhX2VuZChhcmdzKTsK ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgamRvdWJsZSBDYWxsRG91YmxlTWV0 aG9kVihqb2JqZWN0IG9iaiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAgICAgICAg ICAgICAgICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxs RG91YmxlTWV0aG9kVih0aGlzLG9iaixtZXRob2RJRCxhcmdzKTsKICAgIH0KICAgIGpkb3Vi bGUgQ2FsbERvdWJsZU1ldGhvZEEoam9iamVjdCBvYmosIGptZXRob2RJRCBtZXRob2RJRCwK ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QganZhbHVlICogYXJncykgewogICAgICAg IHJldHVybiBmdW5jdGlvbnMtPkNhbGxEb3VibGVNZXRob2RBKHRoaXMsb2JqLG1ldGhvZElE LGFyZ3MpOwogICAgfQoKICAgIHZvaWQgQ2FsbFZvaWRNZXRob2Qoam9iamVjdCBvYmosIGpt ZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAg IHZhX3N0YXJ0KGFyZ3MsbWV0aG9kSUQpOwogICAgICAgIGZ1bmN0aW9ucy0+Q2FsbFZvaWRN ZXRob2RWKHRoaXMsb2JqLG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZhX2VuZChhcmdzKTsK ICAgIH0KICAgIHZvaWQgQ2FsbFZvaWRNZXRob2RWKGpvYmplY3Qgb2JqLCBqbWV0aG9kSUQg bWV0aG9kSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpIHsKICAg ICAgICBmdW5jdGlvbnMtPkNhbGxWb2lkTWV0aG9kVih0aGlzLG9iaixtZXRob2RJRCxhcmdz KTsKICAgIH0KICAgIHZvaWQgQ2FsbFZvaWRNZXRob2RBKGpvYmplY3Qgb2JqLCBqbWV0aG9k SUQgbWV0aG9kSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqdmFsdWUgKiBh cmdzKSB7CiAgICAgICAgZnVuY3Rpb25zLT5DYWxsVm9pZE1ldGhvZEEodGhpcyxvYmosbWV0 aG9kSUQsYXJncyk7CiAgICB9CgogICAgam9iamVjdCBDYWxsTm9udmlydHVhbE9iamVjdE1l dGhvZChqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZh X2xpc3QgYXJnczsKICAgICAgICBqb2JqZWN0IHJlc3VsdDsKICAgICAgICB2YV9zdGFydChh cmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPkNhbGxOb252aXJ0 dWFsT2JqZWN0TWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RJRCxhcmdzKTsKICAg ICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpv YmplY3QgQ2FsbE5vbnZpcnR1YWxPYmplY3RNZXRob2RWKGpvYmplY3Qgb2JqLCBqY2xhc3Mg Y2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9k SUQgbWV0aG9kSUQsIHZhX2xpc3QgYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkNhbGxOb252aXJ0dWFsT2JqZWN0TWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQs YXJncyk7CiAgICB9CiAgICBqb2JqZWN0IENhbGxOb252aXJ0dWFsT2JqZWN0TWV0aG9kQShq b2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKiBhcmdzKSB7 CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxPYmplY3RNZXRob2RB KHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXRob2RJRCxhcmdzKTsKICAgIH0KCiAgICBqYm9vbGVhbiBD YWxsTm9udmlydHVhbEJvb2xlYW5NZXRob2Qoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0 aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqYm9vbGVhbiBy ZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0 ID0gZnVuY3Rpb25zLT5DYWxsTm9udmlydHVhbEJvb2xlYW5NZXRob2RWKHRoaXMsb2JqLGNs YXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAg cmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpib29sZWFuIENhbGxOb252aXJ0dWFsQm9vbGVh bk1ldGhvZFYoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFy Z3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsTm9udmlydHVhbEJvb2xlYW5N ZXRob2RWKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqYm9v bGVhbiBDYWxsTm9udmlydHVhbEJvb2xlYW5NZXRob2RBKGpvYmplY3Qgb2JqLCBqY2xhc3Mg Y2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRo b2RJRCBtZXRob2RJRCwgY29uc3QganZhbHVlICogYXJncykgewogICAgICAgIHJldHVybiBm dW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsQm9vbGVhbk1ldGhvZEEodGhpcyxvYmosY2xhenos CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXRob2RJRCwgYXJncyk7CiAgICB9CgogICAgamJ5dGUgQ2FsbE5vbnZpcnR1YWxCeXRl TWV0aG9kKGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCAuLi4pIHsKICAgICAgICB2YV9s aXN0IGFyZ3M7CiAgICAgICAgamJ5dGUgcmVzdWx0OwogICAgICAgIHZhX3N0YXJ0KGFyZ3Ms bWV0aG9kSUQpOwogICAgICAgIHJlc3VsdCA9IGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxC eXRlTWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFf ZW5kKGFyZ3MpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqYnl0ZSBDYWxs Tm9udmlydHVhbEJ5dGVNZXRob2RWKGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgdmFf bGlzdCBhcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxC eXRlTWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgamJ5 dGUgQ2FsbE5vbnZpcnR1YWxCeXRlTWV0aG9kQShqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9k SUQsIGNvbnN0IGp2YWx1ZSAqIGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5D YWxsTm9udmlydHVhbEJ5dGVNZXRob2RBKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7 CiAgICB9CgogICAgamNoYXIgQ2FsbE5vbnZpcnR1YWxDaGFyTWV0aG9kKGpvYmplY3Qgb2Jq LCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1l dGhvZElEIG1ldGhvZElELCAuLi4pIHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAg amNoYXIgcmVzdWx0OwogICAgICAgIHZhX3N0YXJ0KGFyZ3MsbWV0aG9kSUQpOwogICAgICAg IHJlc3VsdCA9IGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxDaGFyTWV0aG9kVih0aGlzLG9i aixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAg IHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqY2hhciBDYWxsTm9udmlydHVhbENoYXJNZXRo b2RWKGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdzKSB7CiAgICAg ICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxDaGFyTWV0aG9kVih0aGlzLG9i aixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgamNoYXIgQ2FsbE5vbnZpcnR1YWxD aGFyTWV0aG9kQShqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAq IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsTm9udmlydHVhbENoYXJN ZXRob2RBKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAganNob3J0 IENhbGxOb252aXJ0dWFsU2hvcnRNZXRob2Qoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJ RCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAgIGpzaG9ydCByZXN1bHQ7 CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVu Y3Rpb25zLT5DYWxsTm9udmlydHVhbFNob3J0TWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l dGhvZElELGFyZ3MpOwogICAgICAgIHZhX2VuZChhcmdzKTsKICAgICAgICByZXR1cm4gcmVz dWx0OwogICAgfQogICAganNob3J0IENhbGxOb252aXJ0dWFsU2hvcnRNZXRob2RWKGpvYmpl Y3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5DYWxsTm9udmlydHVhbFNob3J0TWV0aG9kVih0aGlzLG9iaixjbGF6 eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXRob2RJRCxhcmdzKTsKICAgIH0KICAgIGpzaG9ydCBDYWxsTm9udmlydHVhbFNob3J0 TWV0aG9kQShqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgY29uc3QganZhbHVlICog YXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsU2hvcnRN ZXRob2RBKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgfQoKICAgIGppbnQg Q2FsbE5vbnZpcnR1YWxJbnRNZXRob2Qoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCAuLi4p IHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAgamludCByZXN1bHQ7CiAgICAgICAg dmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5D YWxsTm9udmlydHVhbEludE1ldGhvZFYodGhpcyxvYmosY2xhenosCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7 CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAg ICBqaW50IENhbGxOb252aXJ0dWFsSW50TWV0aG9kVihqb2JqZWN0IG9iaiwgamNsYXNzIGNs YXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhv ZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsTm9u dmlydHVhbEludE1ldGhvZFYodGhpcyxvYmosY2xhenosCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgfQog ICAgamludCBDYWxsTm9udmlydHVhbEludE1ldGhvZEEoam9iamVjdCBvYmosIGpjbGFzcyBj bGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRo b2RJRCwgY29uc3QganZhbHVlICogYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkNhbGxOb252aXJ0dWFsSW50TWV0aG9kQSh0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7 CiAgICB9CgogICAgamxvbmcgQ2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kKGpvYmplY3Qgb2Jq LCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1l dGhvZElEIG1ldGhvZElELCAuLi4pIHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAg amxvbmcgcmVzdWx0OwogICAgICAgIHZhX3N0YXJ0KGFyZ3MsbWV0aG9kSUQpOwogICAgICAg IHJlc3VsdCA9IGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kVih0aGlzLG9i aixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAg IHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqbG9uZyBDYWxsTm9udmlydHVhbExvbmdNZXRo b2RWKGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdzKSB7CiAgICAg ICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kVih0aGlzLG9i aixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgamxvbmcgQ2FsbE5vbnZpcnR1YWxM b25nTWV0aG9kQShqb2JqZWN0IG9iaiwgamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIGNvbnN0IGp2YWx1ZSAq IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsTm9udmlydHVhbExvbmdN ZXRob2RBKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAgamZsb2F0 IENhbGxOb252aXJ0dWFsRmxvYXRNZXRob2Qoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJ RCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAgIGpmbG9hdCByZXN1bHQ7 CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVu Y3Rpb25zLT5DYWxsTm9udmlydHVhbEZsb2F0TWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l dGhvZElELGFyZ3MpOwogICAgICAgIHZhX2VuZChhcmdzKTsKICAgICAgICByZXR1cm4gcmVz dWx0OwogICAgfQogICAgamZsb2F0IENhbGxOb252aXJ0dWFsRmxvYXRNZXRob2RWKGpvYmpl Y3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhX2xpc3QgYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNh bGxOb252aXJ0dWFsRmxvYXRNZXRob2RWKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZElELGFyZ3Mp OwogICAgfQogICAgamZsb2F0IENhbGxOb252aXJ0dWFsRmxvYXRNZXRob2RBKGpvYmplY3Qg b2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGp2YWx1ZSAqIGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25z LT5DYWxsTm9udmlydHVhbEZsb2F0TWV0aG9kQSh0aGlzLG9iaixjbGF6eiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RJRCxh cmdzKTsKICAgIH0KCiAgICBqZG91YmxlIENhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kKGpv YmplY3Qgb2JqLCBqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBh cmdzOwogICAgICAgIGpkb3VibGUgcmVzdWx0OwogICAgICAgIHZhX3N0YXJ0KGFyZ3MsbWV0 aG9kSUQpOwogICAgICAgIHJlc3VsdCA9IGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxEb3Vi bGVNZXRob2RWKHRoaXMsb2JqLGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZh X2VuZChhcmdzKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgamRvdWJsZSBD YWxsTm9udmlydHVhbERvdWJsZU1ldGhvZFYoam9iamVjdCBvYmosIGpjbGFzcyBjbGF6eiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRo b2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3Qg YXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsRG91Ymxl TWV0aG9kVih0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAgICB9CiAgICBqZG91 YmxlIENhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kQShqb2JqZWN0IG9iaiwgamNsYXNzIGNs YXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElE IG1ldGhvZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QganZhbHVlICogYXJncykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkNhbGxOb252 aXJ0dWFsRG91YmxlTWV0aG9kQSh0aGlzLG9iaixjbGF6eiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kSUQsYXJncyk7CiAg ICB9CgogICAgdm9pZCBDYWxsTm9udmlydHVhbFZvaWRNZXRob2Qoam9iamVjdCBvYmosIGpj bGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJ RCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAgICAgIHZhX3N0 YXJ0KGFyZ3MsbWV0aG9kSUQpOwogICAgICAgIGZ1bmN0aW9ucy0+Q2FsbE5vbnZpcnR1YWxW b2lkTWV0aG9kVih0aGlzLG9iaixjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9l bmQoYXJncyk7CiAgICB9CiAgICB2b2lkIENhbGxOb252aXJ0dWFsVm9pZE1ldGhvZFYoam9i amVjdCBvYmosIGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFfbGlzdCBhcmdzKSB7CiAgICAgICAgZnVuY3Rpb25zLT5DYWxsTm9udmlydHVh bFZvaWRNZXRob2RWKHRoaXMsb2JqLGNsYXp6LG1ldGhvZElELGFyZ3MpOwogICAgfQogICAg dm9pZCBDYWxsTm9udmlydHVhbFZvaWRNZXRob2RBKGpvYmplY3Qgb2JqLCBqY2xhc3MgY2xh enosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhv ZElELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGp2YWx1ZSAq IGFyZ3MpIHsKICAgICAgICBmdW5jdGlvbnMtPkNhbGxOb252aXJ0dWFsVm9pZE1ldGhvZEEo dGhpcyxvYmosY2xhenosbWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAgamZpZWxkSUQgR2V0 RmllbGRJRChqY2xhc3MgY2xhenosIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnNpZykgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkdldEZpZWxkSUQodGhpcyxjbGF6eixuYW1lLHNpZyk7CiAgICB9CgogICAgam9iamVjdCBH ZXRPYmplY3RGaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJRCkgewogICAgICAg IHJldHVybiBmdW5jdGlvbnMtPkdldE9iamVjdEZpZWxkKHRoaXMsb2JqLGZpZWxkSUQpOwog ICAgfQogICAgamJvb2xlYW4gR2V0Qm9vbGVhbkZpZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJ RCBmaWVsZElEKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0Qm9vbGVhbkZpZWxk KHRoaXMsb2JqLGZpZWxkSUQpOwogICAgfQogICAgamJ5dGUgR2V0Qnl0ZUZpZWxkKGpvYmpl Y3Qgb2JqLCBqZmllbGRJRCBmaWVsZElEKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+ R2V0Qnl0ZUZpZWxkKHRoaXMsb2JqLGZpZWxkSUQpOwogICAgfQogICAgamNoYXIgR2V0Q2hh ckZpZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElEKSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+R2V0Q2hhckZpZWxkKHRoaXMsb2JqLGZpZWxkSUQpOwogICAgfQogICAg anNob3J0IEdldFNob3J0RmllbGQoam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpIHsK ICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5HZXRTaG9ydEZpZWxkKHRoaXMsb2JqLGZpZWxk SUQpOwogICAgfQogICAgamludCBHZXRJbnRGaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQg ZmllbGRJRCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldEludEZpZWxkKHRoaXMs b2JqLGZpZWxkSUQpOwogICAgfQogICAgamxvbmcgR2V0TG9uZ0ZpZWxkKGpvYmplY3Qgb2Jq LCBqZmllbGRJRCBmaWVsZElEKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0TG9u Z0ZpZWxkKHRoaXMsb2JqLGZpZWxkSUQpOwogICAgfQogICAgamZsb2F0IEdldEZsb2F0Rmll bGQoam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQpIHsKICAgICAgICByZXR1cm4gZnVu Y3Rpb25zLT5HZXRGbG9hdEZpZWxkKHRoaXMsb2JqLGZpZWxkSUQpOwogICAgfQogICAgamRv dWJsZSBHZXREb3VibGVGaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJRCkgewog ICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldERvdWJsZUZpZWxkKHRoaXMsb2JqLGZpZWxk SUQpOwogICAgfQoKICAgIHZvaWQgU2V0T2JqZWN0RmllbGQoam9iamVjdCBvYmosIGpmaWVs ZElEIGZpZWxkSUQsIGpvYmplY3QgdmFsKSB7CiAgICAgICAgZnVuY3Rpb25zLT5TZXRPYmpl Y3RGaWVsZCh0aGlzLG9iaixmaWVsZElELHZhbCk7CiAgICB9CiAgICB2b2lkIFNldEJvb2xl YW5GaWVsZChqb2JqZWN0IG9iaiwgamZpZWxkSUQgZmllbGRJRCwKICAgICAgICAgICAgICAg ICAgICAgICAgIGpib29sZWFuIHZhbCkgewogICAgICAgIGZ1bmN0aW9ucy0+U2V0Qm9vbGVh bkZpZWxkKHRoaXMsb2JqLGZpZWxkSUQsdmFsKTsKICAgIH0KICAgIHZvaWQgU2V0Qnl0ZUZp ZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElELAogICAgICAgICAgICAgICAgICAg ICAgamJ5dGUgdmFsKSB7CiAgICAgICAgZnVuY3Rpb25zLT5TZXRCeXRlRmllbGQodGhpcyxv YmosZmllbGRJRCx2YWwpOwogICAgfQogICAgdm9pZCBTZXRDaGFyRmllbGQoam9iamVjdCBv YmosIGpmaWVsZElEIGZpZWxkSUQsCiAgICAgICAgICAgICAgICAgICAgICBqY2hhciB2YWwp IHsKICAgICAgICBmdW5jdGlvbnMtPlNldENoYXJGaWVsZCh0aGlzLG9iaixmaWVsZElELHZh bCk7CiAgICB9CiAgICB2b2lkIFNldFNob3J0RmllbGQoam9iamVjdCBvYmosIGpmaWVsZElE IGZpZWxkSUQsCiAgICAgICAgICAgICAgICAgICAgICAganNob3J0IHZhbCkgewogICAgICAg IGZ1bmN0aW9ucy0+U2V0U2hvcnRGaWVsZCh0aGlzLG9iaixmaWVsZElELHZhbCk7CiAgICB9 CiAgICB2b2lkIFNldEludEZpZWxkKGpvYmplY3Qgb2JqLCBqZmllbGRJRCBmaWVsZElELAog ICAgICAgICAgICAgICAgICAgICBqaW50IHZhbCkgewogICAgICAgIGZ1bmN0aW9ucy0+U2V0 SW50RmllbGQodGhpcyxvYmosZmllbGRJRCx2YWwpOwogICAgfQogICAgdm9pZCBTZXRMb25n RmllbGQoam9iamVjdCBvYmosIGpmaWVsZElEIGZpZWxkSUQsCiAgICAgICAgICAgICAgICAg ICAgICBqbG9uZyB2YWwpIHsKICAgICAgICBmdW5jdGlvbnMtPlNldExvbmdGaWVsZCh0aGlz LG9iaixmaWVsZElELHZhbCk7CiAgICB9CiAgICB2b2lkIFNldEZsb2F0RmllbGQoam9iamVj dCBvYmosIGpmaWVsZElEIGZpZWxkSUQsCiAgICAgICAgICAgICAgICAgICAgICAgamZsb2F0 IHZhbCkgewogICAgICAgIGZ1bmN0aW9ucy0+U2V0RmxvYXRGaWVsZCh0aGlzLG9iaixmaWVs ZElELHZhbCk7CiAgICB9CiAgICB2b2lkIFNldERvdWJsZUZpZWxkKGpvYmplY3Qgb2JqLCBq ZmllbGRJRCBmaWVsZElELAogICAgICAgICAgICAgICAgICAgICAgICBqZG91YmxlIHZhbCkg ewogICAgICAgIGZ1bmN0aW9ucy0+U2V0RG91YmxlRmllbGQodGhpcyxvYmosZmllbGRJRCx2 YWwpOwogICAgfQoKICAgIGptZXRob2RJRCBHZXRTdGF0aWNNZXRob2RJRChqY2xhc3MgY2xh enosIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqc2lnKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RhdGlj TWV0aG9kSUQodGhpcyxjbGF6eixuYW1lLHNpZyk7CiAgICB9CgogICAgam9iamVjdCBDYWxs U3RhdGljT2JqZWN0TWV0aG9kKGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJn czsKICAgICAgICBqb2JqZWN0IHJlc3VsdDsKICAgICAgICB2YV9zdGFydChhcmdzLG1ldGhv ZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPkNhbGxTdGF0aWNPYmplY3RNZXRo b2RWKHRoaXMsY2xhenosbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwog ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqb2JqZWN0IENhbGxTdGF0aWNPYmpl Y3RNZXRob2RWKGpjbGFzcyBjbGF6eiwgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVu Y3Rpb25zLT5DYWxsU3RhdGljT2JqZWN0TWV0aG9kVih0aGlzLGNsYXp6LG1ldGhvZElELGFy Z3MpOwogICAgfQogICAgam9iamVjdCBDYWxsU3RhdGljT2JqZWN0TWV0aG9kQShqY2xhc3Mg Y2xhenosIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QganZhbHVlICphcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2Fs bFN0YXRpY09iamVjdE1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgIH0K CiAgICBqYm9vbGVhbiBDYWxsU3RhdGljQm9vbGVhbk1ldGhvZChqY2xhc3MgY2xhenosCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQs IC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqYm9vbGVhbiByZXN1bHQ7 CiAgICAgICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVu Y3Rpb25zLT5DYWxsU3RhdGljQm9vbGVhbk1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxh cmdzKTsKICAgICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg IH0KICAgIGpib29sZWFuIENhbGxTdGF0aWNCb29sZWFuTWV0aG9kVihqY2xhc3MgY2xhenos CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhv ZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3Rh dGljQm9vbGVhbk1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgIH0KICAg IGpib29sZWFuIENhbGxTdGF0aWNCb29sZWFuTWV0aG9kQShqY2xhc3MgY2xhenosCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCBj b25zdCBqdmFsdWUgKmFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3Rh dGljQm9vbGVhbk1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgIH0KCiAg ICBqYnl0ZSBDYWxsU3RhdGljQnl0ZU1ldGhvZChqY2xhc3MgY2xhenosCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAg IHZhX2xpc3QgYXJnczsKICAgICAgICBqYnl0ZSByZXN1bHQ7CiAgICAgICAgdmFfc3RhcnQo YXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5DYWxsU3RhdGlj Qnl0ZU1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9lbmQo YXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpieXRlIENhbGxTdGF0 aWNCeXRlTWV0aG9kVihqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljQnl0ZU1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJ RCxhcmdzKTsKICAgIH0KICAgIGpieXRlIENhbGxTdGF0aWNCeXRlTWV0aG9kQShqY2xhc3Mg Y2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhv ZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5D YWxsU3RhdGljQnl0ZU1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgIH0K CiAgICBqY2hhciBDYWxsU3RhdGljQ2hhck1ldGhvZChqY2xhc3MgY2xhenosCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAg ICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqY2hhciByZXN1bHQ7CiAgICAgICAgdmFfc3Rh cnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25zLT5DYWxsU3Rh dGljQ2hhck1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAgICAgICB2YV9l bmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpjaGFyIENhbGxT dGF0aWNDaGFyTWV0aG9kVihqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICBy ZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljQ2hhck1ldGhvZFYodGhpcyxjbGF6eixtZXRo b2RJRCxhcmdzKTsKICAgIH0KICAgIGpjaGFyIENhbGxTdGF0aWNDaGFyTWV0aG9kQShqY2xh c3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1l dGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25z LT5DYWxsU3RhdGljQ2hhck1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAg IH0KCiAgICBqc2hvcnQgQ2FsbFN0YXRpY1Nob3J0TWV0aG9kKGpjbGFzcyBjbGF6eiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCAuLi4p IHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAganNob3J0IHJlc3VsdDsKICAgICAg ICB2YV9zdGFydChhcmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMt PkNhbGxTdGF0aWNTaG9ydE1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAg ICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGpz aG9ydCBDYWxsU3RhdGljU2hvcnRNZXRob2RWKGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgdmFfbGlzdCBhcmdz KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbFN0YXRpY1Nob3J0TWV0aG9kVih0 aGlzLGNsYXp6LG1ldGhvZElELGFyZ3MpOwogICAgfQogICAganNob3J0IENhbGxTdGF0aWNT aG9ydE1ldGhvZEEoamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpIHsKICAgICAg ICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljU2hvcnRNZXRob2RBKHRoaXMsY2xhenos bWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAgamludCBDYWxsU3RhdGljSW50TWV0aG9kKGpj bGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0 aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqaW50IHJlc3Vs dDsKICAgICAgICB2YV9zdGFydChhcmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBm dW5jdGlvbnMtPkNhbGxTdGF0aWNJbnRNZXRob2RWKHRoaXMsY2xhenosbWV0aG9kSUQsYXJn cyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9 CiAgICBqaW50IENhbGxTdGF0aWNJbnRNZXRob2RWKGpjbGFzcyBjbGF6eiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3Mp IHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljSW50TWV0aG9kVih0aGlz LGNsYXp6LG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgamludCBDYWxsU3RhdGljSW50TWV0 aG9kQShqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRo b2RJRCBtZXRob2RJRCwgY29uc3QganZhbHVlICphcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1 bmN0aW9ucy0+Q2FsbFN0YXRpY0ludE1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxhcmdz KTsKICAgIH0KCiAgICBqbG9uZyBDYWxsU3RhdGljTG9uZ01ldGhvZChqY2xhc3MgY2xhenos CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIC4u LikgewogICAgICAgIHZhX2xpc3QgYXJnczsKICAgICAgICBqbG9uZyByZXN1bHQ7CiAgICAg ICAgdmFfc3RhcnQoYXJncyxtZXRob2RJRCk7CiAgICAgICAgcmVzdWx0ID0gZnVuY3Rpb25z LT5DYWxsU3RhdGljTG9uZ01ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxhcmdzKTsKICAg ICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KICAgIGps b25nIENhbGxTdGF0aWNMb25nTWV0aG9kVihqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpIHsK ICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljTG9uZ01ldGhvZFYodGhpcyxj bGF6eixtZXRob2RJRCxhcmdzKTsKICAgIH0KICAgIGpsb25nIENhbGxTdGF0aWNMb25nTWV0 aG9kQShqY2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1l dGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3MpIHsKICAgICAgICByZXR1cm4g ZnVuY3Rpb25zLT5DYWxsU3RhdGljTG9uZ01ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxh cmdzKTsKICAgIH0KCiAgICBqZmxvYXQgQ2FsbFN0YXRpY0Zsb2F0TWV0aG9kKGpjbGFzcyBj bGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhv ZElELCAuLi4pIHsKICAgICAgICB2YV9saXN0IGFyZ3M7CiAgICAgICAgamZsb2F0IHJlc3Vs dDsKICAgICAgICB2YV9zdGFydChhcmdzLG1ldGhvZElEKTsKICAgICAgICByZXN1bHQgPSBm dW5jdGlvbnMtPkNhbGxTdGF0aWNGbG9hdE1ldGhvZFYodGhpcyxjbGF6eixtZXRob2RJRCxh cmdzKTsKICAgICAgICB2YV9lbmQoYXJncyk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg IH0KICAgIGpmbG9hdCBDYWxsU3RhdGljRmxvYXRNZXRob2RWKGpjbGFzcyBjbGF6eiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRob2RJRCBtZXRob2RJRCwgdmFf bGlzdCBhcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+Q2FsbFN0YXRpY0Zsb2F0 TWV0aG9kVih0aGlzLGNsYXp6LG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgamZsb2F0IENh bGxTdGF0aWNGbG9hdE1ldGhvZEEoamNsYXNzIGNsYXp6LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgam1ldGhvZElEIG1ldGhvZElELCBjb25zdCBqdmFsdWUgKmFyZ3Mp IHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljRmxvYXRNZXRob2RBKHRo aXMsY2xhenosbWV0aG9kSUQsYXJncyk7CiAgICB9CgogICAgamRvdWJsZSBDYWxsU3RhdGlj RG91YmxlTWV0aG9kKGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBqbWV0aG9kSUQgbWV0aG9kSUQsIC4uLikgewogICAgICAgIHZhX2xpc3QgYXJn czsKICAgICAgICBqZG91YmxlIHJlc3VsdDsKICAgICAgICB2YV9zdGFydChhcmdzLG1ldGhv ZElEKTsKICAgICAgICByZXN1bHQgPSBmdW5jdGlvbnMtPkNhbGxTdGF0aWNEb3VibGVNZXRo b2RWKHRoaXMsY2xhenosbWV0aG9kSUQsYXJncyk7CiAgICAgICAgdmFfZW5kKGFyZ3MpOwog ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICB9CiAgICBqZG91YmxlIENhbGxTdGF0aWNEb3Vi bGVNZXRob2RWKGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgam1ldGhvZElEIG1ldGhvZElELCB2YV9saXN0IGFyZ3MpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5DYWxsU3RhdGljRG91YmxlTWV0aG9kVih0aGlzLGNsYXp6LG1ldGhv ZElELGFyZ3MpOwogICAgfQogICAgamRvdWJsZSBDYWxsU3RhdGljRG91YmxlTWV0aG9kQShq Y2xhc3MgY2xhenosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGptZXRo b2RJRCBtZXRob2RJRCwgY29uc3QganZhbHVlICphcmdzKSB7CiAgICAgICAgcmV0dXJuIGZ1 bmN0aW9ucy0+Q2FsbFN0YXRpY0RvdWJsZU1ldGhvZEEodGhpcyxjbGF6eixtZXRob2RJRCxh cmdzKTsKICAgIH0KCiAgICB2b2lkIENhbGxTdGF0aWNWb2lkTWV0aG9kKGpjbGFzcyBjbHMs IGptZXRob2RJRCBtZXRob2RJRCwgLi4uKSB7CiAgICAgICAgdmFfbGlzdCBhcmdzOwogICAg ICAgIHZhX3N0YXJ0KGFyZ3MsbWV0aG9kSUQpOwogICAgICAgIGZ1bmN0aW9ucy0+Q2FsbFN0 YXRpY1ZvaWRNZXRob2RWKHRoaXMsY2xzLG1ldGhvZElELGFyZ3MpOwogICAgICAgIHZhX2Vu ZChhcmdzKTsKICAgIH0KICAgIHZvaWQgQ2FsbFN0YXRpY1ZvaWRNZXRob2RWKGpjbGFzcyBj bHMsIGptZXRob2RJRCBtZXRob2RJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhX2xpc3QgYXJncykgewogICAgICAgIGZ1bmN0aW9ucy0+Q2FsbFN0YXRpY1ZvaWRNZXRo b2RWKHRoaXMsY2xzLG1ldGhvZElELGFyZ3MpOwogICAgfQogICAgdm9pZCBDYWxsU3RhdGlj Vm9pZE1ldGhvZEEoamNsYXNzIGNscywgam1ldGhvZElEIG1ldGhvZElELAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QganZhbHVlICogYXJncykgewogICAgICAgIGZ1 bmN0aW9ucy0+Q2FsbFN0YXRpY1ZvaWRNZXRob2RBKHRoaXMsY2xzLG1ldGhvZElELGFyZ3Mp OwogICAgfQoKICAgIGpmaWVsZElEIEdldFN0YXRpY0ZpZWxkSUQoamNsYXNzIGNsYXp6LCBj b25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpzaWcpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5HZXRTdGF0aWNGaWVsZElE KHRoaXMsY2xhenosbmFtZSxzaWcpOwogICAgfQogICAgam9iamVjdCBHZXRTdGF0aWNPYmpl Y3RGaWVsZChqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5HZXRTdGF0aWNPYmplY3RGaWVsZCh0aGlzLGNsYXp6LGZpZWxkSUQp OwogICAgfQogICAgamJvb2xlYW4gR2V0U3RhdGljQm9vbGVhbkZpZWxkKGpjbGFzcyBjbGF6 eiwgamZpZWxkSUQgZmllbGRJRCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFN0 YXRpY0Jvb2xlYW5GaWVsZCh0aGlzLGNsYXp6LGZpZWxkSUQpOwogICAgfQogICAgamJ5dGUg R2V0U3RhdGljQnl0ZUZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCkgewog ICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFN0YXRpY0J5dGVGaWVsZCh0aGlzLGNsYXp6 LGZpZWxkSUQpOwogICAgfQogICAgamNoYXIgR2V0U3RhdGljQ2hhckZpZWxkKGpjbGFzcyBj bGF6eiwgamZpZWxkSUQgZmllbGRJRCkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdl dFN0YXRpY0NoYXJGaWVsZCh0aGlzLGNsYXp6LGZpZWxkSUQpOwogICAgfQogICAganNob3J0 IEdldFN0YXRpY1Nob3J0RmllbGQoamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElEKSB7 CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RhdGljU2hvcnRGaWVsZCh0aGlzLGNs YXp6LGZpZWxkSUQpOwogICAgfQogICAgamludCBHZXRTdGF0aWNJbnRGaWVsZChqY2xhc3Mg Y2xhenosIGpmaWVsZElEIGZpZWxkSUQpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5H ZXRTdGF0aWNJbnRGaWVsZCh0aGlzLGNsYXp6LGZpZWxkSUQpOwogICAgfQogICAgamxvbmcg R2V0U3RhdGljTG9uZ0ZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCkgewog ICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFN0YXRpY0xvbmdGaWVsZCh0aGlzLGNsYXp6 LGZpZWxkSUQpOwogICAgfQogICAgamZsb2F0IEdldFN0YXRpY0Zsb2F0RmllbGQoamNsYXNz IGNsYXp6LCBqZmllbGRJRCBmaWVsZElEKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+ R2V0U3RhdGljRmxvYXRGaWVsZCh0aGlzLGNsYXp6LGZpZWxkSUQpOwogICAgfQogICAgamRv dWJsZSBHZXRTdGF0aWNEb3VibGVGaWVsZChqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxk SUQpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5HZXRTdGF0aWNEb3VibGVGaWVsZCh0 aGlzLGNsYXp6LGZpZWxkSUQpOwogICAgfQoKICAgIHZvaWQgU2V0U3RhdGljT2JqZWN0Rmll bGQoamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELAogICAgICAgICAgICAgICAgICAg ICAgICBqb2JqZWN0IHZhbHVlKSB7CiAgICAgIGZ1bmN0aW9ucy0+U2V0U3RhdGljT2JqZWN0 RmllbGQodGhpcyxjbGF6eixmaWVsZElELHZhbHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3Rh dGljQm9vbGVhbkZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCwKICAgICAg ICAgICAgICAgICAgICAgICAgamJvb2xlYW4gdmFsdWUpIHsKICAgICAgZnVuY3Rpb25zLT5T ZXRTdGF0aWNCb29sZWFuRmllbGQodGhpcyxjbGF6eixmaWVsZElELHZhbHVlKTsKICAgIH0K ICAgIHZvaWQgU2V0U3RhdGljQnl0ZUZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxkSUQgZmll bGRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgamJ5dGUgdmFsdWUpIHsKICAgICAgZnVu Y3Rpb25zLT5TZXRTdGF0aWNCeXRlRmllbGQodGhpcyxjbGF6eixmaWVsZElELHZhbHVlKTsK ICAgIH0KICAgIHZvaWQgU2V0U3RhdGljQ2hhckZpZWxkKGpjbGFzcyBjbGF6eiwgamZpZWxk SUQgZmllbGRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgamNoYXIgdmFsdWUpIHsKICAg ICAgZnVuY3Rpb25zLT5TZXRTdGF0aWNDaGFyRmllbGQodGhpcyxjbGF6eixmaWVsZElELHZh bHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3RhdGljU2hvcnRGaWVsZChqY2xhc3MgY2xhenos IGpmaWVsZElEIGZpZWxkSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIGpzaG9ydCB2YWx1 ZSkgewogICAgICBmdW5jdGlvbnMtPlNldFN0YXRpY1Nob3J0RmllbGQodGhpcyxjbGF6eixm aWVsZElELHZhbHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3RhdGljSW50RmllbGQoamNsYXNz IGNsYXp6LCBqZmllbGRJRCBmaWVsZElELAogICAgICAgICAgICAgICAgICAgICAgICBqaW50 IHZhbHVlKSB7CiAgICAgIGZ1bmN0aW9ucy0+U2V0U3RhdGljSW50RmllbGQodGhpcyxjbGF6 eixmaWVsZElELHZhbHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3RhdGljTG9uZ0ZpZWxkKGpj bGFzcyBjbGF6eiwgamZpZWxkSUQgZmllbGRJRCwKICAgICAgICAgICAgICAgICAgICAgICAg amxvbmcgdmFsdWUpIHsKICAgICAgZnVuY3Rpb25zLT5TZXRTdGF0aWNMb25nRmllbGQodGhp cyxjbGF6eixmaWVsZElELHZhbHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3RhdGljRmxvYXRG aWVsZChqY2xhc3MgY2xhenosIGpmaWVsZElEIGZpZWxkSUQsCiAgICAgICAgICAgICAgICAg ICAgICAgIGpmbG9hdCB2YWx1ZSkgewogICAgICBmdW5jdGlvbnMtPlNldFN0YXRpY0Zsb2F0 RmllbGQodGhpcyxjbGF6eixmaWVsZElELHZhbHVlKTsKICAgIH0KICAgIHZvaWQgU2V0U3Rh dGljRG91YmxlRmllbGQoamNsYXNzIGNsYXp6LCBqZmllbGRJRCBmaWVsZElELAogICAgICAg ICAgICAgICAgICAgICAgICBqZG91YmxlIHZhbHVlKSB7CiAgICAgIGZ1bmN0aW9ucy0+U2V0 U3RhdGljRG91YmxlRmllbGQodGhpcyxjbGF6eixmaWVsZElELHZhbHVlKTsKICAgIH0KCiAg ICBqc3RyaW5nIE5ld1N0cmluZyhjb25zdCBqY2hhciAqdW5pY29kZSwganNpemUgbGVuKSB7 CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+TmV3U3RyaW5nKHRoaXMsdW5pY29kZSxsZW4p OwogICAgfQogICAganNpemUgR2V0U3RyaW5nTGVuZ3RoKGpzdHJpbmcgc3RyKSB7CiAgICAg ICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0U3RyaW5nTGVuZ3RoKHRoaXMsc3RyKTsKICAgIH0K ICAgIGNvbnN0IGpjaGFyICpHZXRTdHJpbmdDaGFycyhqc3RyaW5nIHN0ciwgamJvb2xlYW4g KmlzQ29weSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFN0cmluZ0NoYXJzKHRo aXMsc3RyLGlzQ29weSk7CiAgICB9CiAgICB2b2lkIFJlbGVhc2VTdHJpbmdDaGFycyhqc3Ry aW5nIHN0ciwgY29uc3QgamNoYXIgKmNoYXJzKSB7CiAgICAgICAgZnVuY3Rpb25zLT5SZWxl YXNlU3RyaW5nQ2hhcnModGhpcyxzdHIsY2hhcnMpOwogICAgfQoKICAgIGpzdHJpbmcgTmV3 U3RyaW5nVVRGKGNvbnN0IGNoYXIgKnV0ZikgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt Pk5ld1N0cmluZ1VURih0aGlzLHV0Zik7CiAgICB9CiAgICBqc2l6ZSBHZXRTdHJpbmdVVEZM ZW5ndGgoanN0cmluZyBzdHIpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5HZXRTdHJp bmdVVEZMZW5ndGgodGhpcyxzdHIpOwogICAgfQogICAgY29uc3QgY2hhciogR2V0U3RyaW5n VVRGQ2hhcnMoanN0cmluZyBzdHIsIGpib29sZWFuICppc0NvcHkpIHsKICAgICAgICByZXR1 cm4gZnVuY3Rpb25zLT5HZXRTdHJpbmdVVEZDaGFycyh0aGlzLHN0cixpc0NvcHkpOwogICAg fQogICAgdm9pZCBSZWxlYXNlU3RyaW5nVVRGQ2hhcnMoanN0cmluZyBzdHIsIGNvbnN0IGNo YXIqIGNoYXJzKSB7CiAgICAgICAgZnVuY3Rpb25zLT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMo dGhpcyxzdHIsY2hhcnMpOwogICAgfQoKICAgIGpzaXplIEdldEFycmF5TGVuZ3RoKGphcnJh eSBhcnJheSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldEFycmF5TGVuZ3RoKHRo aXMsYXJyYXkpOwogICAgfQoKICAgIGpvYmplY3RBcnJheSBOZXdPYmplY3RBcnJheShqc2l6 ZSBsZW4sIGpjbGFzcyBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBq b2JqZWN0IGluaXQpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdPYmplY3RBcnJh eSh0aGlzLGxlbixjbGF6eixpbml0KTsKICAgIH0KICAgIGpvYmplY3QgR2V0T2JqZWN0QXJy YXlFbGVtZW50KGpvYmplY3RBcnJheSBhcnJheSwganNpemUgaW5kZXgpIHsKICAgICAgICBy ZXR1cm4gZnVuY3Rpb25zLT5HZXRPYmplY3RBcnJheUVsZW1lbnQodGhpcyxhcnJheSxpbmRl eCk7CiAgICB9CiAgICB2b2lkIFNldE9iamVjdEFycmF5RWxlbWVudChqb2JqZWN0QXJyYXkg YXJyYXksIGpzaXplIGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9i amVjdCB2YWwpIHsKICAgICAgICBmdW5jdGlvbnMtPlNldE9iamVjdEFycmF5RWxlbWVudCh0 aGlzLGFycmF5LGluZGV4LHZhbCk7CiAgICB9CgogICAgamJvb2xlYW5BcnJheSBOZXdCb29s ZWFuQXJyYXkoanNpemUgbGVuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+TmV3Qm9v bGVhbkFycmF5KHRoaXMsbGVuKTsKICAgIH0KICAgIGpieXRlQXJyYXkgTmV3Qnl0ZUFycmF5 KGpzaXplIGxlbikgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPk5ld0J5dGVBcnJheSh0 aGlzLGxlbik7CiAgICB9CiAgICBqY2hhckFycmF5IE5ld0NoYXJBcnJheShqc2l6ZSBsZW4p IHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdDaGFyQXJyYXkodGhpcyxsZW4pOwog ICAgfQogICAganNob3J0QXJyYXkgTmV3U2hvcnRBcnJheShqc2l6ZSBsZW4pIHsKICAgICAg ICByZXR1cm4gZnVuY3Rpb25zLT5OZXdTaG9ydEFycmF5KHRoaXMsbGVuKTsKICAgIH0KICAg IGppbnRBcnJheSBOZXdJbnRBcnJheShqc2l6ZSBsZW4pIHsKICAgICAgICByZXR1cm4gZnVu Y3Rpb25zLT5OZXdJbnRBcnJheSh0aGlzLGxlbik7CiAgICB9CiAgICBqbG9uZ0FycmF5IE5l d0xvbmdBcnJheShqc2l6ZSBsZW4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdM b25nQXJyYXkodGhpcyxsZW4pOwogICAgfQogICAgamZsb2F0QXJyYXkgTmV3RmxvYXRBcnJh eShqc2l6ZSBsZW4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdGbG9hdEFycmF5 KHRoaXMsbGVuKTsKICAgIH0KICAgIGpkb3VibGVBcnJheSBOZXdEb3VibGVBcnJheShqc2l6 ZSBsZW4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdEb3VibGVBcnJheSh0aGlz LGxlbik7CiAgICB9CgogICAgamJvb2xlYW4gKiBHZXRCb29sZWFuQXJyYXlFbGVtZW50cyhq Ym9vbGVhbkFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXNDb3B5KSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+R2V0Qm9vbGVhbkFycmF5RWxlbWVudHModGhpcyxhcnJheSxpc0NvcHkp OwogICAgfQogICAgamJ5dGUgKiBHZXRCeXRlQXJyYXlFbGVtZW50cyhqYnl0ZUFycmF5IGFy cmF5LCBqYm9vbGVhbiAqaXNDb3B5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0 Qnl0ZUFycmF5RWxlbWVudHModGhpcyxhcnJheSxpc0NvcHkpOwogICAgfQogICAgamNoYXIg KiBHZXRDaGFyQXJyYXlFbGVtZW50cyhqY2hhckFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXND b3B5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0Q2hhckFycmF5RWxlbWVudHMo dGhpcyxhcnJheSxpc0NvcHkpOwogICAgfQogICAganNob3J0ICogR2V0U2hvcnRBcnJheUVs ZW1lbnRzKGpzaG9ydEFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXNDb3B5KSB7CiAgICAgICAg cmV0dXJuIGZ1bmN0aW9ucy0+R2V0U2hvcnRBcnJheUVsZW1lbnRzKHRoaXMsYXJyYXksaXND b3B5KTsKICAgIH0KICAgIGppbnQgKiBHZXRJbnRBcnJheUVsZW1lbnRzKGppbnRBcnJheSBh cnJheSwgamJvb2xlYW4gKmlzQ29weSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdl dEludEFycmF5RWxlbWVudHModGhpcyxhcnJheSxpc0NvcHkpOwogICAgfQogICAgamxvbmcg KiBHZXRMb25nQXJyYXlFbGVtZW50cyhqbG9uZ0FycmF5IGFycmF5LCBqYm9vbGVhbiAqaXND b3B5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+R2V0TG9uZ0FycmF5RWxlbWVudHMo dGhpcyxhcnJheSxpc0NvcHkpOwogICAgfQogICAgamZsb2F0ICogR2V0RmxvYXRBcnJheUVs ZW1lbnRzKGpmbG9hdEFycmF5IGFycmF5LCBqYm9vbGVhbiAqaXNDb3B5KSB7CiAgICAgICAg cmV0dXJuIGZ1bmN0aW9ucy0+R2V0RmxvYXRBcnJheUVsZW1lbnRzKHRoaXMsYXJyYXksaXND b3B5KTsKICAgIH0KICAgIGpkb3VibGUgKiBHZXREb3VibGVBcnJheUVsZW1lbnRzKGpkb3Vi bGVBcnJheSBhcnJheSwgamJvb2xlYW4gKmlzQ29weSkgewogICAgICAgIHJldHVybiBmdW5j dGlvbnMtPkdldERvdWJsZUFycmF5RWxlbWVudHModGhpcyxhcnJheSxpc0NvcHkpOwogICAg fQoKICAgIHZvaWQgUmVsZWFzZUJvb2xlYW5BcnJheUVsZW1lbnRzKGpib29sZWFuQXJyYXkg YXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYm9vbGVhbiAq ZWxlbXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaW50IG1vZGUp IHsKICAgICAgICBmdW5jdGlvbnMtPlJlbGVhc2VCb29sZWFuQXJyYXlFbGVtZW50cyh0aGlz LGFycmF5LGVsZW1zLG1vZGUpOwogICAgfQogICAgdm9pZCBSZWxlYXNlQnl0ZUFycmF5RWxl bWVudHMoamJ5dGVBcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGpieXRlICplbGVtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpp bnQgbW9kZSkgewogICAgICAgIGZ1bmN0aW9ucy0+UmVsZWFzZUJ5dGVBcnJheUVsZW1lbnRz KHRoaXMsYXJyYXksZWxlbXMsbW9kZSk7CiAgICB9CiAgICB2b2lkIFJlbGVhc2VDaGFyQXJy YXlFbGVtZW50cyhqY2hhckFycmF5IGFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgamNoYXIgKmVsZW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgamludCBtb2RlKSB7CiAgICAgICAgZnVuY3Rpb25zLT5SZWxlYXNlQ2hhckFycmF5RWxl bWVudHModGhpcyxhcnJheSxlbGVtcyxtb2RlKTsKICAgIH0KICAgIHZvaWQgUmVsZWFzZVNo b3J0QXJyYXlFbGVtZW50cyhqc2hvcnRBcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBqc2hvcnQgKmVsZW1zLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGppbnQgbW9kZSkgewogICAgICAgIGZ1bmN0aW9ucy0+UmVsZWFzZVNo b3J0QXJyYXlFbGVtZW50cyh0aGlzLGFycmF5LGVsZW1zLG1vZGUpOwogICAgfQogICAgdm9p ZCBSZWxlYXNlSW50QXJyYXlFbGVtZW50cyhqaW50QXJyYXkgYXJyYXksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGppbnQgKmVsZW1zLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBqaW50IG1vZGUpIHsKICAgICAgICBmdW5jdGlvbnMtPlJlbGVhc2VJ bnRBcnJheUVsZW1lbnRzKHRoaXMsYXJyYXksZWxlbXMsbW9kZSk7CiAgICB9CiAgICB2b2lk IFJlbGVhc2VMb25nQXJyYXlFbGVtZW50cyhqbG9uZ0FycmF5IGFycmF5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgamxvbmcgKmVsZW1zLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgamludCBtb2RlKSB7CiAgICAgICAgZnVuY3Rpb25zLT5SZWxl YXNlTG9uZ0FycmF5RWxlbWVudHModGhpcyxhcnJheSxlbGVtcyxtb2RlKTsKICAgIH0KICAg IHZvaWQgUmVsZWFzZUZsb2F0QXJyYXlFbGVtZW50cyhqZmxvYXRBcnJheSBhcnJheSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqZmxvYXQgKmVsZW1zLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppbnQgbW9kZSkgewogICAgICAgIGZ1bmN0 aW9ucy0+UmVsZWFzZUZsb2F0QXJyYXlFbGVtZW50cyh0aGlzLGFycmF5LGVsZW1zLG1vZGUp OwogICAgfQogICAgdm9pZCBSZWxlYXNlRG91YmxlQXJyYXlFbGVtZW50cyhqZG91YmxlQXJy YXkgYXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpkb3VibGUg KmVsZW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaW50IG1vZGUp IHsKICAgICAgICBmdW5jdGlvbnMtPlJlbGVhc2VEb3VibGVBcnJheUVsZW1lbnRzKHRoaXMs YXJyYXksZWxlbXMsbW9kZSk7CiAgICB9CgogICAgdm9pZCBHZXRCb29sZWFuQXJyYXlSZWdp b24oamJvb2xlYW5BcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpib29sZWFuICpidWYpIHsKICAgICAgICBmdW5j dGlvbnMtPkdldEJvb2xlYW5BcnJheVJlZ2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYp OwogICAgfQogICAgdm9pZCBHZXRCeXRlQXJyYXlSZWdpb24oamJ5dGVBcnJheSBhcnJheSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpi eXRlICpidWYpIHsKICAgICAgICBmdW5jdGlvbnMtPkdldEJ5dGVBcnJheVJlZ2lvbih0aGlz LGFycmF5LHN0YXJ0LGxlbixidWYpOwogICAgfQogICAgdm9pZCBHZXRDaGFyQXJyYXlSZWdp b24oamNoYXJBcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzaXpl IHN0YXJ0LCBqc2l6ZSBsZW4sIGpjaGFyICpidWYpIHsKICAgICAgICBmdW5jdGlvbnMtPkdl dENoYXJBcnJheVJlZ2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYpOwogICAgfQogICAg dm9pZCBHZXRTaG9ydEFycmF5UmVnaW9uKGpzaG9ydEFycmF5IGFycmF5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpzaG9ydCAqYnVm KSB7CiAgICAgICAgZnVuY3Rpb25zLT5HZXRTaG9ydEFycmF5UmVnaW9uKHRoaXMsYXJyYXks c3RhcnQsbGVuLGJ1Zik7CiAgICB9CiAgICB2b2lkIEdldEludEFycmF5UmVnaW9uKGppbnRB cnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAganNpemUgc3RhcnQsIGpz aXplIGxlbiwgamludCAqYnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5HZXRJbnRBcnJheVJl Z2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYpOwogICAgfQogICAgdm9pZCBHZXRMb25n QXJyYXlSZWdpb24oamxvbmdBcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpsb25nICpidWYpIHsKICAgICAgICBmdW5j dGlvbnMtPkdldExvbmdBcnJheVJlZ2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYpOwog ICAgfQogICAgdm9pZCBHZXRGbG9hdEFycmF5UmVnaW9uKGpmbG9hdEFycmF5IGFycmF5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sIGpm bG9hdCAqYnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5HZXRGbG9hdEFycmF5UmVnaW9uKHRo aXMsYXJyYXksc3RhcnQsbGVuLGJ1Zik7CiAgICB9CiAgICB2b2lkIEdldERvdWJsZUFycmF5 UmVnaW9uKGpkb3VibGVBcnJheSBhcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAganNpemUgc3RhcnQsIGpzaXplIGxlbiwgamRvdWJsZSAqYnVmKSB7CiAgICAgICAgZnVu Y3Rpb25zLT5HZXREb3VibGVBcnJheVJlZ2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYp OwogICAgfQoKICAgIHZvaWQgU2V0Qm9vbGVhbkFycmF5UmVnaW9uKGpib29sZWFuQXJyYXkg YXJyYXksIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBqYm9vbGVhbiAqYnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5TZXRC b29sZWFuQXJyYXlSZWdpb24odGhpcyxhcnJheSxzdGFydCxsZW4sYnVmKTsKICAgIH0KICAg IHZvaWQgU2V0Qnl0ZUFycmF5UmVnaW9uKGpieXRlQXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0 LCBqc2l6ZSBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqYnl0ZSAq YnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5TZXRCeXRlQXJyYXlSZWdpb24odGhpcyxhcnJh eSxzdGFydCxsZW4sYnVmKTsKICAgIH0KICAgIHZvaWQgU2V0Q2hhckFycmF5UmVnaW9uKGpj aGFyQXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBqY2hhciAqYnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5T ZXRDaGFyQXJyYXlSZWdpb24odGhpcyxhcnJheSxzdGFydCxsZW4sYnVmKTsKICAgIH0KICAg IHZvaWQgU2V0U2hvcnRBcnJheVJlZ2lvbihqc2hvcnRBcnJheSBhcnJheSwganNpemUgc3Rh cnQsIGpzaXplIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqc2hv cnQgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9ucy0+U2V0U2hvcnRBcnJheVJlZ2lvbih0aGlz LGFycmF5LHN0YXJ0LGxlbixidWYpOwogICAgfQogICAgdm9pZCBTZXRJbnRBcnJheVJlZ2lv bihqaW50QXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0LCBqc2l6ZSBsZW4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGppbnQgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9ucy0+ U2V0SW50QXJyYXlSZWdpb24odGhpcyxhcnJheSxzdGFydCxsZW4sYnVmKTsKICAgIH0KICAg IHZvaWQgU2V0TG9uZ0FycmF5UmVnaW9uKGpsb25nQXJyYXkgYXJyYXksIGpzaXplIHN0YXJ0 LCBqc2l6ZSBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqbG9uZyAq YnVmKSB7CiAgICAgICAgZnVuY3Rpb25zLT5TZXRMb25nQXJyYXlSZWdpb24odGhpcyxhcnJh eSxzdGFydCxsZW4sYnVmKTsKICAgIH0KICAgIHZvaWQgU2V0RmxvYXRBcnJheVJlZ2lvbihq ZmxvYXRBcnJheSBhcnJheSwganNpemUgc3RhcnQsIGpzaXplIGxlbiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBqZmxvYXQgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9u cy0+U2V0RmxvYXRBcnJheVJlZ2lvbih0aGlzLGFycmF5LHN0YXJ0LGxlbixidWYpOwogICAg fQogICAgdm9pZCBTZXREb3VibGVBcnJheVJlZ2lvbihqZG91YmxlQXJyYXkgYXJyYXksIGpz aXplIHN0YXJ0LCBqc2l6ZSBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGpkb3VibGUgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9ucy0+U2V0RG91YmxlQXJyYXlS ZWdpb24odGhpcyxhcnJheSxzdGFydCxsZW4sYnVmKTsKICAgIH0KCiAgICBqaW50IFJlZ2lz dGVyTmF0aXZlcyhqY2xhc3MgY2xhenosIGNvbnN0IEpOSU5hdGl2ZU1ldGhvZCAqbWV0aG9k cywKICAgICAgICAgICAgICAgICAgICAgICAgIGppbnQgbk1ldGhvZHMpIHsKICAgICAgICBy ZXR1cm4gZnVuY3Rpb25zLT5SZWdpc3Rlck5hdGl2ZXModGhpcyxjbGF6eixtZXRob2RzLG5N ZXRob2RzKTsKICAgIH0KICAgIGppbnQgVW5yZWdpc3Rlck5hdGl2ZXMoamNsYXNzIGNsYXp6 KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9ucy0+VW5yZWdpc3Rlck5hdGl2ZXModGhpcyxj bGF6eik7CiAgICB9CgogICAgamludCBNb25pdG9yRW50ZXIoam9iamVjdCBvYmopIHsKICAg ICAgICByZXR1cm4gZnVuY3Rpb25zLT5Nb25pdG9yRW50ZXIodGhpcyxvYmopOwogICAgfQog ICAgamludCBNb25pdG9yRXhpdChqb2JqZWN0IG9iaikgewogICAgICAgIHJldHVybiBmdW5j dGlvbnMtPk1vbml0b3JFeGl0KHRoaXMsb2JqKTsKICAgIH0KCiAgICBqaW50IEdldEphdmFW TShKYXZhVk0gKip2bSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldEphdmFWTSh0 aGlzLHZtKTsKICAgIH0KCiAgICB2b2lkIEdldFN0cmluZ1JlZ2lvbihqc3RyaW5nIHN0ciwg anNpemUgc3RhcnQsIGpzaXplIGxlbiwgamNoYXIgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9u cy0+R2V0U3RyaW5nUmVnaW9uKHRoaXMsc3RyLHN0YXJ0LGxlbixidWYpOwogICAgfQogICAg dm9pZCBHZXRTdHJpbmdVVEZSZWdpb24oanN0cmluZyBzdHIsIGpzaXplIHN0YXJ0LCBqc2l6 ZSBsZW4sIGNoYXIgKmJ1ZikgewogICAgICAgIGZ1bmN0aW9ucy0+R2V0U3RyaW5nVVRGUmVn aW9uKHRoaXMsc3RyLHN0YXJ0LGxlbixidWYpOwogICAgfQoKICAgIHZvaWQgKiBHZXRQcmlt aXRpdmVBcnJheUNyaXRpY2FsKGphcnJheSBhcnJheSwgamJvb2xlYW4gKmlzQ29weSkgewog ICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkdldFByaW1pdGl2ZUFycmF5Q3JpdGljYWwodGhp cyxhcnJheSxpc0NvcHkpOwogICAgfQogICAgdm9pZCBSZWxlYXNlUHJpbWl0aXZlQXJyYXlD cml0aWNhbChqYXJyYXkgYXJyYXksIHZvaWQgKmNhcnJheSwgamludCBtb2RlKSB7CiAgICAg ICAgZnVuY3Rpb25zLT5SZWxlYXNlUHJpbWl0aXZlQXJyYXlDcml0aWNhbCh0aGlzLGFycmF5 LGNhcnJheSxtb2RlKTsKICAgIH0KCiAgICBjb25zdCBqY2hhciAqIEdldFN0cmluZ0NyaXRp Y2FsKGpzdHJpbmcgc3RyaW5nLCBqYm9vbGVhbiAqaXNDb3B5KSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+R2V0U3RyaW5nQ3JpdGljYWwodGhpcyxzdHJpbmcsaXNDb3B5KTsKICAg IH0KICAgIHZvaWQgUmVsZWFzZVN0cmluZ0NyaXRpY2FsKGpzdHJpbmcgc3RyaW5nLCBjb25z dCBqY2hhciAqY3N0cmluZykgewogICAgICAgIGZ1bmN0aW9ucy0+UmVsZWFzZVN0cmluZ0Ny aXRpY2FsKHRoaXMsc3RyaW5nLGNzdHJpbmcpOwogICAgfQoKICAgIGp3ZWFrIE5ld1dlYWtH bG9iYWxSZWYoam9iamVjdCBvYmopIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5OZXdX ZWFrR2xvYmFsUmVmKHRoaXMsb2JqKTsKICAgIH0KICAgIHZvaWQgRGVsZXRlV2Vha0dsb2Jh bFJlZihqd2VhayByZWYpIHsKICAgICAgICBmdW5jdGlvbnMtPkRlbGV0ZVdlYWtHbG9iYWxS ZWYodGhpcyxyZWYpOwogICAgfQoKICAgIGpib29sZWFuIEV4Y2VwdGlvbkNoZWNrKCkgewog ICAgICAgIHJldHVybiBmdW5jdGlvbnMtPkV4Y2VwdGlvbkNoZWNrKHRoaXMpOwogICAgfQoK ICAgIGpvYmplY3QgTmV3RGlyZWN0Qnl0ZUJ1ZmZlcih2b2lkKiBhZGRyZXNzLCBqbG9uZyBj YXBhY2l0eSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMtPk5ld0RpcmVjdEJ5dGVCdWZm ZXIodGhpcywgYWRkcmVzcywgY2FwYWNpdHkpOwogICAgfQogICAgdm9pZCogR2V0RGlyZWN0 QnVmZmVyQWRkcmVzcyhqb2JqZWN0IGJ1ZikgewogICAgICAgIHJldHVybiBmdW5jdGlvbnMt PkdldERpcmVjdEJ1ZmZlckFkZHJlc3ModGhpcywgYnVmKTsKICAgIH0KICAgIGpsb25nIEdl dERpcmVjdEJ1ZmZlckNhcGFjaXR5KGpvYmplY3QgYnVmKSB7CiAgICAgICAgcmV0dXJuIGZ1 bmN0aW9ucy0+R2V0RGlyZWN0QnVmZmVyQ2FwYWNpdHkodGhpcywgYnVmKTsKICAgIH0KICAg IGpvYmplY3RSZWZUeXBlIEdldE9iamVjdFJlZlR5cGUoam9iamVjdCBvYmopIHsKICAgICAg ICByZXR1cm4gZnVuY3Rpb25zLT5HZXRPYmplY3RSZWZUeXBlKHRoaXMsIG9iaik7CiAgICB9 CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KfTsKCnR5cGVkZWYgc3RydWN0IEphdmFWTU9w dGlvbiB7CiAgICBjaGFyICpvcHRpb25TdHJpbmc7CiAgICB2b2lkICpleHRyYUluZm87Cn0g SmF2YVZNT3B0aW9uOwoKdHlwZWRlZiBzdHJ1Y3QgSmF2YVZNSW5pdEFyZ3MgewogICAgamlu dCB2ZXJzaW9uOwoKICAgIGppbnQgbk9wdGlvbnM7CiAgICBKYXZhVk1PcHRpb24gKm9wdGlv bnM7CiAgICBqYm9vbGVhbiBpZ25vcmVVbnJlY29nbml6ZWQ7Cn0gSmF2YVZNSW5pdEFyZ3M7 Cgp0eXBlZGVmIHN0cnVjdCBKYXZhVk1BdHRhY2hBcmdzIHsKICAgIGppbnQgdmVyc2lvbjsK CiAgICBjaGFyICpuYW1lOwogICAgam9iamVjdCBncm91cDsKfSBKYXZhVk1BdHRhY2hBcmdz OwoKLyogVGhlc2Ugd2lsbCBiZSBWTS1zcGVjaWZpYy4gKi8KCiNkZWZpbmUgSkRLMV8yCiNk ZWZpbmUgSkRLMV80CgovKiBFbmQgVk0tc3BlY2lmaWMuICovCgpzdHJ1Y3QgSk5JSW52b2tl SW50ZXJmYWNlXyB7CiAgICB2b2lkICpyZXNlcnZlZDA7CiAgICB2b2lkICpyZXNlcnZlZDE7 CiAgICB2b2lkICpyZXNlcnZlZDI7CgogICAgamludCAoSk5JQ0FMTCAqRGVzdHJveUphdmFW TSkoSmF2YVZNICp2bSk7CgogICAgamludCAoSk5JQ0FMTCAqQXR0YWNoQ3VycmVudFRocmVh ZCkoSmF2YVZNICp2bSwgdm9pZCAqKnBlbnYsIHZvaWQgKmFyZ3MpOwoKICAgIGppbnQgKEpO SUNBTEwgKkRldGFjaEN1cnJlbnRUaHJlYWQpKEphdmFWTSAqdm0pOwoKICAgIGppbnQgKEpO SUNBTEwgKkdldEVudikoSmF2YVZNICp2bSwgdm9pZCAqKnBlbnYsIGppbnQgdmVyc2lvbik7 CgogICAgamludCAoSk5JQ0FMTCAqQXR0YWNoQ3VycmVudFRocmVhZEFzRGFlbW9uKShKYXZh Vk0gKnZtLCB2b2lkICoqcGVudiwgdm9pZCAqYXJncyk7Cn07CgpzdHJ1Y3QgSmF2YVZNXyB7 CiAgICBjb25zdCBzdHJ1Y3QgSk5JSW52b2tlSW50ZXJmYWNlXyAqZnVuY3Rpb25zOwojaWZk ZWYgX19jcGx1c3BsdXMKCiAgICBqaW50IERlc3Ryb3lKYXZhVk0oKSB7CiAgICAgICAgcmV0 dXJuIGZ1bmN0aW9ucy0+RGVzdHJveUphdmFWTSh0aGlzKTsKICAgIH0KICAgIGppbnQgQXR0 YWNoQ3VycmVudFRocmVhZCh2b2lkICoqcGVudiwgdm9pZCAqYXJncykgewogICAgICAgIHJl dHVybiBmdW5jdGlvbnMtPkF0dGFjaEN1cnJlbnRUaHJlYWQodGhpcywgcGVudiwgYXJncyk7 CiAgICB9CiAgICBqaW50IERldGFjaEN1cnJlbnRUaHJlYWQoKSB7CiAgICAgICAgcmV0dXJu IGZ1bmN0aW9ucy0+RGV0YWNoQ3VycmVudFRocmVhZCh0aGlzKTsKICAgIH0KCiAgICBqaW50 IEdldEVudih2b2lkICoqcGVudiwgamludCB2ZXJzaW9uKSB7CiAgICAgICAgcmV0dXJuIGZ1 bmN0aW9ucy0+R2V0RW52KHRoaXMsIHBlbnYsIHZlcnNpb24pOwogICAgfQogICAgamludCBB dHRhY2hDdXJyZW50VGhyZWFkQXNEYWVtb24odm9pZCAqKnBlbnYsIHZvaWQgKmFyZ3MpIHsK ICAgICAgICByZXR1cm4gZnVuY3Rpb25zLT5BdHRhY2hDdXJyZW50VGhyZWFkQXNEYWVtb24o dGhpcywgcGVudiwgYXJncyk7CiAgICB9CiNlbmRpZgp9OwoKI2lmZGVmIF9KTklfSU1QTEVN RU5UQVRJT05fCiNkZWZpbmUgX0pOSV9JTVBPUlRfT1JfRVhQT1JUXyBKTklFWFBPUlQKI2Vs c2UKI2RlZmluZSBfSk5JX0lNUE9SVF9PUl9FWFBPUlRfIEpOSUlNUE9SVAojZW5kaWYKX0pO SV9JTVBPUlRfT1JfRVhQT1JUXyBqaW50IEpOSUNBTEwKSk5JX0dldERlZmF1bHRKYXZhVk1J bml0QXJncyh2b2lkICphcmdzKTsKCl9KTklfSU1QT1JUX09SX0VYUE9SVF8gamludCBKTklD QUxMCkpOSV9DcmVhdGVKYXZhVk0oSmF2YVZNICoqcHZtLCB2b2lkICoqcGVudiwgdm9pZCAq YXJncyk7CgpfSk5JX0lNUE9SVF9PUl9FWFBPUlRfIGppbnQgSk5JQ0FMTApKTklfR2V0Q3Jl YXRlZEphdmFWTXMoSmF2YVZNICoqLCBqc2l6ZSwganNpemUgKik7CgovKiBEZWZpbmVkIGJ5 IG5hdGl2ZSBsaWJyYXJpZXMuICovCkpOSUVYUE9SVCBqaW50IEpOSUNBTEwKSk5JX09uTG9h ZChKYXZhVk0gKnZtLCB2b2lkICpyZXNlcnZlZCk7CgpKTklFWFBPUlQgdm9pZCBKTklDQUxM CkpOSV9PblVubG9hZChKYXZhVk0gKnZtLCB2b2lkICpyZXNlcnZlZCk7CgojZGVmaW5lIEpO SV9WRVJTSU9OXzFfMSAweDAwMDEwMDAxCiNkZWZpbmUgSk5JX1ZFUlNJT05fMV8yIDB4MDAw MTAwMDIKI2RlZmluZSBKTklfVkVSU0lPTl8xXzQgMHgwMDAxMDAwNAojZGVmaW5lIEpOSV9W RVJTSU9OXzFfNiAweDAwMDEwMDA2CiNkZWZpbmUgSk5JX1ZFUlNJT05fMV84IDB4MDAwMTAw MDgKCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8qIGV4dGVybiAiQyIgKi8KI2VuZGlmIC8qIF9f Y3BsdXNwbHVzICovCgojZW5kaWYgLyogIV9KQVZBU09GVF9KTklfSF8gKi8K --------------060905020505000106000506-- From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C5F11F.9050709@lucee.org> From: Chapman Flack Message-ID: <56C5F47C.2070906@anastigmatix.net> Date: Thu, 18 Feb 2016 11:42:36 -0500 MIME-Version: 1.0 In-Reply-To: <56C5F11F.9050709@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/2016 11:28 AM, Igal @ Lucee.org wrote: > On 2/18/2016 7:47 AM, Chapman Flack wrote: >> #2 The build appears to have succeeded (as far as Maven thinks, >> anyway). > I didn't realize earlier, but I do have jar files in pljava/target. I > was looking earlier only at the top target directory The simplest jar to install from is the one in pljava-packaging/target. I guess the printf format warnings are about this: https://sourceforge.net/p/mingw-w64/mailman/message/24633511/ ugh... -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:02 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C5F11F.9050709@lucee.org> <56C5F47C.2070906@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C5FCEB.4000803@lucee.org> Date: Thu, 18 Feb 2016 09:18:35 -0800 MIME-Version: 1.0 In-Reply-To: <56C5F47C.2070906@anastigmatix.net> Content-Type: text/plain; charset=utf-8; format=flowed On 2/18/2016 8:42 AM, Chapman Flack wrote: > The simplest jar to install from is the one in > pljava-packaging/target. Got it! > I guess the printf format warnings are about this: > https://sourceforge.net/p/mingw-w64/mailman/message/24633511/ > > ugh... Any thoughts what the implications of that would be? Arithmetic overflows? Unexpected results? Does the use of a long integer come from pljava? Can it be fixed by using int64_t from as suggested in the link you posted? Thanks, Igal From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C5F11F.9050709@lucee.org> <56C5F47C.2070906@anastigmatix.net> <56C5FCEB.4000803@lucee.org> From: Chapman Flack Message-ID: <56C61189.4040807@anastigmatix.net> Date: Thu, 18 Feb 2016 13:46:33 -0500 MIME-Version: 1.0 In-Reply-To: <56C5FCEB.4000803@lucee.org> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/2016 12:18 PM, Igal @ Lucee.org wrote: >> I guess the printf format warnings are about this: >> https://sourceforge.net/p/mingw-w64/mailman/message/24633511/ >> >> ugh... > Any thoughts what the implications of that would be? > Arithmetic overflows? Unexpected results? Possibly bogus values appearing in messages printed from those format strings (which I think only appear at debug levels anyway). The most common solution I've seen other places is to define macros for the correct printf formats that go with each type, and ANSI-cpp-concat them into the format strings. Which is clever but not very compatible with message localization. So far there hasn't ever been any localization work on PL/Java, but that doesn't mean I'm eager to make it harder.... Maybe it's better to just always use the printf format for the widest known type, and widen-cast every corresponding argument. That would be annoying but not get in the way of localization. Of course that leads to the question, will every platform that might want PL/Java have a printf that likes %lld? The other warnings I saw were innocuous. Apparently PL/Java just doesn't use the statementcancel, die, or quickdie handlers when built on Windows. There is probably some sensible Windows reason for that and I don't know what it is, but that #ifdef was added in 2005 so if your build from today doesn't work, I don't think that will be the reason. ;) It's looking like you ought to start this thing up and take it for a spin. If I were you I would initdb a new play database for it before trying it out in, you know, payroll, but you can't put off trying it forever. :) -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From chap@anastigmatix.net Mon Jul 6 18:17:02 2026 Message-ID: <56C66529.1070005@anastigmatix.net> Date: Thu, 18 Feb 2016 19:43:21 -0500 From: Chapman Flack MIME-Version: 1.0 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> In-Reply-To: <56C5E795.4080405@anastigmatix.net> Subject: Re: [Pljava-dev] Build Fails on Windows 7 Content-Type: text/plain; charset="us-ascii" On 02/18/16 10:47, Chapman Flack wrote: > #1 I was up too late last night, and I forgot to rebase the > branch I created onto the right place, and now I'll have to > do the thing no respectable git hacker ever does, and rebase > it after publication. Phooey. > > Hey you guys on pljava-dev, nobody base stuff off this > branch, ok? I have rebased that branch where it belonged. Sorry about any disruption. If you have pulled from it before, you may find it easiest to just git checkout master # go back to master branch git branch -d port/REL1_5_STABLE-BASE/mingw64 # delete branch git remote update git checkout port/REL1_5_STABLE-BASE/mingw64 -Chap _______________________________________________ Pljava-dev mailing list Pljava-dev@lists.pgfoundry.org http://lists.pgfoundry.org/mailman/listinfo/pljava-dev From igal@lucee.org Mon Jul 6 18:17:02 2026 Subject: Re: [Pljava-dev] Build Fails on Windows 7 References: <56C41C5B.9000809@lucee.org> <56C4D516.9010403@hogranch.com> <56C4D8C4.4010809@anastigmatix.net> <56C50E87.4070008@lucee.org> <56C51150.1070708@anastigmatix.net> <56C54EE0.2080905@lucee.org> <56C553C3.40408@lucee.org> <56C556BD.1010907@anastigmatix.net> <56C55824.1060502@lucee.org> <56C564F4.1050909@anastigmatix.net> <56C5E1B3.8090204@lucee.org> <56C5E795.4080405@anastigmatix.net> <56C66529.1070005@anastigmatix.net> From: "Igal @ Lucee.org" Message-ID: <56C66815.9000608@lucee.org> Date: Thu, 18 Feb 2016 16:55:49 -0800 MIME-Version: 1.0 In-Reply-To: <56C66529.1070005@anastigmatix.net> Content-Type: text/plain; charset=windows-1252; format=flowed On 2/18/2016 4:43 PM, Chapman Flack wrote: > I have rebased that branch where it belonged. Sorry about any > disruption. If you have pulled from it before, you may find > it easiest to just > > git checkout master # go back to master branch > git branch -d port/REL1_5_STABLE-BASE/mingw64 # delete branch > git remote update > git checkout port/REL1_5_STABLE-BASE/mingw64 Thank you for the step-by-step :) Igal