summaryrefslogtreecommitdiff
path: root/webmail/composer.phar
blob: 15d4f44661c2ce0d4c0ca157a3bf14126df36382 (plain)
ofshex dumpascii
0000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 68 70 0a 3c 3f 70 68 70 0a 2f 2a 0a 20 2a 20 54 #!/usr/bin/env.php.<?php./*..*.T
0020 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a his.file.is.part.of.Composer...*
0040 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 ..*.(c).Nils.Adermann.<naderman@
0060 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 naderman.de>..*.....Jordi.Boggia
0080 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f no.<j.boggiano@seld.be>..*..*.Fo
00a0 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 r.the.full.copyright.and.license
00c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 0a 20 2a 20 74 68 65 .information,.please.view..*.the
00e0 20 6c 69 63 65 6e 73 65 20 74 68 61 74 20 69 73 20 6c 6f 63 61 74 65 64 20 61 74 20 74 68 65 20 .license.that.is.located.at.the.
0100 62 6f 74 74 6f 6d 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2e 0a 20 2a 2f 0a 0a 50 68 61 72 3a 3a bottom.of.this.file...*/..Phar::
0120 6d 61 70 50 68 61 72 28 27 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 29 3b 0a 64 65 66 69 6e 65 mapPhar('composer.phar');.define
0140 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 2c 20 31 33 ('COMPOSER_DEV_WARNING_TIME',.13
0160 38 32 38 36 37 34 36 36 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 82867466);.require.'phar://compo
0180 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f ser.phar/bin/composer';..__HALT_
01a0 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 36 65 00 00 3b 01 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>..6e..;...........
01c0 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 ..composer.phar........src/boots
01e0 74 72 61 70 2e 70 68 70 c5 01 00 00 0a 55 45 52 c5 01 00 00 a8 af 32 90 b6 01 00 00 00 00 00 00 trap.php.....UER......2.........
0200 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 ....src/Composer/IO/ConsoleIO.ph
0220 70 10 0e 00 00 0a 55 45 52 10 0e 00 00 a9 61 9a 71 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p.....UER.....a.q............src
0240 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c 49 4f 2e 70 68 70 25 03 00 00 0a 55 45 52 25 /Composer/IO/NullIO.php%....UER%
0260 03 00 00 7e 60 9f 04 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...~`..............src/Composer/
0280 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f4 03 00 00 0a 55 45 52 f4 03 00 00 41 26 IO/IOInterface.php.....UER....A&
02a0 b7 cb b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 61 ..............src/Composer/IO/Ba
02c0 73 65 49 4f 2e 70 68 70 fe 04 00 00 0a 55 45 52 fe 04 00 00 6b 2b 9e 5d b6 01 00 00 00 00 00 00 seIO.php.....UER....k+.]........
02e0 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 ....src/Composer/IO/BufferIO.php
0300 2b 04 00 00 0a 55 45 52 2b 04 00 00 5d 0b 12 ed b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f +....UER+...]...........)...src/
0320 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e Composer/Command/RunScriptComman
0340 64 2e 70 68 70 6b 06 00 00 0a 55 45 52 6b 06 00 00 1e 20 b1 df b6 01 00 00 00 00 00 00 28 00 00 d.phpk....UERk...............(..
0360 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 69 61 67 6e 6f 73 65 43 6f .src/Composer/Command/DiagnoseCo
0380 6d 6d 61 6e 64 2e 70 68 70 00 28 00 00 0a 55 45 52 00 28 00 00 f8 f2 92 81 b6 01 00 00 00 00 00 mmand.php.(...UER.(.............
03a0 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 72 63 68 69 76 .'...src/Composer/Command/Archiv
03c0 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 7b 0e 00 00 0a 55 45 52 7b 0e 00 00 6f d2 9b 7c b6 01 00 00 eCommand.php{....UER{...o..|....
03e0 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d ........src/Composer/Command/Com
0400 6d 61 6e 64 2e 70 68 70 ac 04 00 00 0a 55 45 52 ac 04 00 00 48 17 31 2f b6 01 00 00 00 00 00 00 mand.php.....UER....H.1/........
0420 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 -...src/Composer/Command/CreateP
0440 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 da 2d 00 00 0a 55 45 52 da 2d 00 00 79 71 d8 rojectCommand.php.-...UER.-..yq.
0460 9b b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e .........%...src/Composer/Comman
0480 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b7 02 00 00 0a 55 45 52 b7 02 00 00 bb 4d d/AboutCommand.php.....UER.....M
04a0 e6 2a b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 .*........$...src/Composer/Comma
04c0 6e 64 2f 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 3b 2c 00 00 0a 55 45 52 3b 2c 00 00 2e 1d nd/ShowCommand.php;,...UER;,....
04e0 11 91 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 ..........&...src/Composer/Comma
0500 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 d6 10 00 00 0a 55 45 52 d6 10 00 00 nd/UpdateCommand.php.....UER....
0520 09 3f f2 04 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d .?..........&...src/Composer/Com
0540 6d 61 6e 64 2f 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 2e 70 68 70 94 27 00 00 0a 55 45 52 94 27 mand/ConfigCommand.php.'...UER.'
0560 00 00 c8 29 ec 14 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 ...)..........'...src/Composer/C
0580 6f 6d 6d 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 bb 0e 00 00 0a 55 45 ommand/InstallCommand.php.....UE
05a0 52 bb 0e 00 00 35 72 2d 5f b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R....5r-_........(...src/Compose
05c0 72 2f 43 6f 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 47 08 00 r/Command/ValidateCommand.phpG..
05e0 00 0a 55 45 52 47 08 00 00 d9 0e 3b 72 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d ..UERG.....;r........'...src/Com
0600 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 poser/Command/DependsCommand.php
0620 75 0a 00 00 0a 55 45 52 75 0a 00 00 a2 84 b0 99 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f u....UERu...............&...src/
0640 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 Composer/Command/SearchCommand.p
0660 68 70 5d 09 00 00 0a 55 45 52 5d 09 00 00 8b d4 6b 65 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 hp]....UER].....ke........*...sr
0680 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d c/Composer/Command/SelfUpdateCom
06a0 6d 61 6e 64 2e 70 68 70 75 09 00 00 0a 55 45 52 75 09 00 00 d0 c3 b7 a2 b6 01 00 00 00 00 00 00 mand.phpu....UERu...............
06c0 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 63 65 6e 73 65 (...src/Composer/Command/License
06e0 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 74 0a 00 00 0a 55 45 52 74 0a 00 00 57 1f 87 de b6 01 00 00 sCommand.phpt....UERt...W.......
0700 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 ....'...src/Composer/Command/Req
0720 75 69 72 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 0c 11 00 00 0a 55 45 52 0c 11 00 00 21 f2 e3 13 b6 uireCommand.php.....UER....!....
0740 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......,...src/Composer/Command/
0760 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 2e 70 68 70 6e 05 00 00 0a 55 45 52 6e DumpAutoloadCommand.phpn....UERn
0780 05 00 00 db 88 c3 e7 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...............&...src/Composer/
07a0 43 6f 6d 6d 61 6e 64 2f 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 ca 06 00 00 0a 55 45 Command/GlobalCommand.php.....UE
07c0 52 ca 06 00 00 ff 98 ab 00 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R................,...src/Compose
07e0 72 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 r/Command/Helper/DialogHelper.ph
0800 70 9e 01 00 00 0a 55 45 52 9e 01 00 00 95 82 8c 26 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 p.....UER.......&........&...src
0820 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e /Composer/Command/StatusCommand.
0840 70 68 70 6e 09 00 00 0a 55 45 52 6e 09 00 00 d0 23 e9 59 b6 01 00 00 00 00 00 00 24 00 00 00 73 phpn....UERn....#.Y........$...s
0860 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e rc/Composer/Command/InitCommand.
0880 70 68 70 53 31 00 00 0a 55 45 52 53 31 00 00 df af 00 19 b6 01 00 00 00 00 00 00 29 00 00 00 73 phpS1...UERS1..............)...s
08a0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f rc/Composer/Downloader/VcsDownlo
08c0 61 64 65 72 2e 70 68 70 4d 0f 00 00 0a 55 45 52 4d 0f 00 00 2d 45 26 ca b6 01 00 00 00 00 00 00 ader.phpM....UERM...-E&.........
08e0 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 52 61 72 44 )...src/Composer/Downloader/RarD
0900 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 c4 07 00 00 0a 55 45 52 c4 07 00 00 6e 9c 32 2e b6 01 00 ownloader.php.....UER....n.2....
0920 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 .....*...src/Composer/Downloader
0940 2f 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 cc 16 00 00 0a 55 45 52 cc 16 00 00 e2 /FileDownloader.php.....UER.....
0960 99 ff 65 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e ..e........)...src/Composer/Down
0980 6c 6f 61 64 65 72 2f 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 78 0d 00 00 0a 55 45 52 loader/SvnDownloader.phpx....UER
09a0 78 0d 00 00 c4 4e 5b e7 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 x....N[.........0...src/Composer
09c0 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 /Downloader/PearPackageExtractor
09e0 2e 70 68 70 65 1b 00 00 0a 55 45 52 65 1b 00 00 d7 a1 50 ba b6 01 00 00 00 00 00 00 2b 00 00 00 .phpe....UERe.....P.........+...
0a00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 src/Composer/Downloader/Download
0a20 4d 61 6e 61 67 65 72 2e 70 68 70 ea 0e 00 00 0a 55 45 52 ea 0e 00 00 e8 f7 14 c5 b6 01 00 00 00 Manager.php.....UER.............
0a40 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 .../...src/Composer/Downloader/D
0a60 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ca 01 00 00 0a 55 45 52 ca 01 ownloaderInterface.php.....UER..
0a80 00 00 67 73 21 6c b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..gs!l............src/Composer/D
0aa0 6f 77 6e 6c 6f 61 64 65 72 2f 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ownloader/TransportException.php
0ac0 f6 00 00 00 0a 55 45 52 f6 00 00 00 cb 38 cd 8a b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f .....UER.....8..........*...src/
0ae0 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 Composer/Downloader/PharDownload
0b00 65 72 2e 70 68 70 e5 00 00 00 0a 55 45 52 e5 00 00 00 de c9 1f e7 b6 01 00 00 00 00 00 00 29 00 er.php.....UER................).
0b20 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 54 61 72 44 6f 77 ..src/Composer/Downloader/TarDow
0b40 6e 6c 6f 61 64 65 72 2e 70 68 70 e3 00 00 00 0a 55 45 52 e3 00 00 00 cd 92 58 3f b6 01 00 00 00 nloader.php.....UER......X?.....
0b60 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 48 ...(...src/Composer/Downloader/H
0b80 67 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 24 08 00 00 0a 55 45 52 24 08 00 00 c8 63 80 ef b6 gDownloader.php$....UER$....c...
0ba0 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 .......1...src/Composer/Download
0bc0 65 72 2f 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 cc 00 00 00 er/ChangeReportInterface.php....
0be0 0a 55 45 52 cc 00 00 00 af e0 a8 bf b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 .UER................-...src/Comp
0c00 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 oser/Downloader/ArchiveDownloade
0c20 72 2e 70 68 70 10 0c 00 00 0a 55 45 52 10 0c 00 00 84 98 3c 28 b6 01 00 00 00 00 00 00 2f 00 00 r.php.....UER......<(......../..
0c40 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 73 79 73 .src/Composer/Downloader/Filesys
0c60 74 65 6d 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 0f 01 00 00 0a 55 45 52 0f 01 00 00 5d 54 bd 88 temException.php.....UER....]T..
0c80 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 ........)...src/Composer/Downloa
0ca0 64 65 72 2f 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 b9 0a 00 00 0a 55 45 52 b9 0a 00 der/ZipDownloader.php.....UER...
0cc0 00 1f 27 bf 11 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f ..'..........)...src/Composer/Do
0ce0 77 6e 6c 6f 61 64 65 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 92 32 00 00 0a 55 wnloader/GitDownloader.php.2...U
0d00 45 52 92 32 00 00 d3 be ae f0 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER.2..............6...src/Compos
0d20 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 er/Repository/InvalidRepositoryE
0d40 78 63 65 70 74 69 6f 6e 2e 70 68 70 6e 00 00 00 0a 55 45 52 6e 00 00 00 e0 93 eb 98 b6 01 00 00 xception.phpn....UERn...........
0d60 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....+...src/Composer/Repository/
0d80 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 07 0c 00 00 0a 55 45 52 07 0c 00 00 6b ArrayRepository.php.....UER....k
0da0 ff 62 e7 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f .b.........0...src/Composer/Repo
0dc0 73 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 b6 sitory/FilesystemRepository.php.
0de0 04 00 00 0a 55 45 52 b6 04 00 00 8e 59 95 7a b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 ....UER.....Y.z........7...src/C
0e00 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 omposer/Repository/WritableRepos
0e20 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 89 01 00 00 0a 55 45 52 89 01 00 00 91 2f itoryInterface.php.....UER...../
0e40 73 ef b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 s.........*...src/Composer/Repos
0e60 69 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 07 15 00 00 0a 55 45 52 itory/PearRepository.php.....UER
0e80 07 15 00 00 62 bf 45 c0 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....b.E.........-...src/Composer
0ea0 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2e 70 68 /Repository/RepositoryManager.ph
0ec0 70 ff 06 00 00 0a 55 45 52 ff 06 00 00 72 fc 5f 99 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 p.....UER....r._.........3...src
0ee0 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 41 72 72 /Composer/Repository/WritableArr
0f00 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0f 03 00 00 0a 55 45 52 0f 03 00 00 be 47 17 2a ayRepository.php.....UER.....G.*
0f20 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 ........,...src/Composer/Reposit
0f40 6f 72 79 2f 56 63 73 2f 47 69 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 66 22 00 00 0a 55 45 52 ory/Vcs/GitHubDriver.phpf"...UER
0f60 66 22 00 00 de 37 8c 38 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 f"...7.8........2...src/Composer
0f80 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 /Repository/Vcs/GitBitbucketDriv
0fa0 65 72 2e 70 68 70 c1 0c 00 00 0a 55 45 52 c1 0c 00 00 af a6 44 d1 b6 01 00 00 00 00 00 00 29 00 er.php.....UER......D.........).
0fc0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 ..src/Composer/Repository/Vcs/Gi
0fe0 74 44 72 69 76 65 72 2e 70 68 70 ce 13 00 00 0a 55 45 52 ce 13 00 00 62 b0 a1 c2 b6 01 00 00 00 tDriver.php.....UER....b........
1000 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 ...)...src/Composer/Repository/V
1020 63 73 2f 53 76 6e 44 72 69 76 65 72 2e 70 68 70 af 18 00 00 0a 55 45 52 af 18 00 00 a0 68 93 d8 cs/SvnDriver.php.....UER.....h..
1040 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 ........2...src/Composer/Reposit
1060 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 43 02 ory/Vcs/VcsDriverInterface.phpC.
1080 00 00 0a 55 45 52 43 02 00 00 f9 46 c4 fc b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ...UERC....F..........(...src/Co
10a0 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 mposer/Repository/Vcs/HgDriver.p
10c0 68 70 c4 12 00 00 0a 55 45 52 c4 12 00 00 4d e1 aa 41 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp.....UER....M..A........)...sr
10e0 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 c/Composer/Repository/Vcs/VcsDri
1100 76 65 72 2e 70 68 70 01 06 00 00 0a 55 45 52 01 06 00 00 be 9b 88 99 b6 01 00 00 00 00 00 00 31 ver.php.....UER................1
1120 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 ...src/Composer/Repository/Vcs/H
1140 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 c9 0d 00 00 0a 55 45 52 c9 0d 00 00 gBitbucketDriver.php.....UER....
1160 31 e1 1d d3 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 1...........4...src/Composer/Rep
1180 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 ository/InstalledArrayRepository
11a0 2e 70 68 70 a3 00 00 00 0a 55 45 52 a3 00 00 00 2f f6 7e 3e b6 01 00 00 00 00 00 00 37 00 00 00 .php.....UER..../.~>........7...
11c0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f src/Composer/Repository/Reposito
11e0 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6f 00 00 00 0a 55 45 52 6f rySecurityException.phpo....UERo
1200 00 00 00 70 d5 ab aa b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...p...........9...src/Composer/
1220 52 65 70 6f 73 69 74 6f 72 79 2f 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 Repository/StreamableRepositoryI
1240 6e 74 65 72 66 61 63 65 2e 70 68 70 84 01 00 00 0a 55 45 52 84 01 00 00 38 fe 01 b6 b6 01 00 00 nterface.php.....UER....8.......
1260 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....)...src/Composer/Repository/
1280 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 e4 1b 00 00 0a 55 45 52 e4 1b 00 00 a3 2f ca VcsRepository.php.....UER...../.
12a0 96 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 .............src/Composer/Reposi
12c0 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 5c 0c 00 00 0a tory/PlatformRepository.php\....
12e0 55 45 52 5c 0c 00 00 6a 1d dc fc b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER\...j...........9...src/Compo
1300 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 ser/Repository/InstalledFilesyst
1320 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 0a 55 45 52 a3 00 00 00 56 0a 95 5f emRepository.php.....UER....V.._
1340 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 ......../...src/Composer/Reposit
1360 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 08 09 00 00 0a ory/CompositeRepository.php.....
1380 55 45 52 08 09 00 00 34 fa 03 45 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER....4..E........8...src/Compo
13a0 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f ser/Repository/InstalledReposito
13c0 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 0a 55 45 52 87 00 00 00 18 a3 39 70 b6 ryInterface.php.....UER......9p.
13e0 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f ...........src/Composer/Reposito
1400 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 1a 38 00 00 0a 55 45 ry/ComposerRepository.php.8...UE
1420 52 1a 38 00 00 e0 bb 3c 04 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R.8....<........./...src/Compose
1440 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f r/Repository/Pear/DependencyInfo
1460 2e 70 68 70 71 01 00 00 0a 55 45 52 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 00 00 38 00 00 00 .phpq....UERq...f.T.........8...
1480 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 src/Composer/Repository/Pear/Pac
14a0 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 2e 70 68 70 21 16 00 00 0a 55 45 52 kageDependencyParser.php!....UER
14c0 21 16 00 00 3d cc f3 46 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 !...=..F........,...src/Composer
14e0 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e 66 6f 2e 70 68 70 /Repository/Pear/ChannelInfo.php
1500 c4 01 00 00 0a 55 45 52 c4 01 00 00 3a 54 2a c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f .....UER....:T*.............src/
1520 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c Composer/Repository/Pear/Channel
1540 52 65 61 64 65 72 2e 70 68 70 6e 06 00 00 0a 55 45 52 6e 06 00 00 1c 9a 38 15 b6 01 00 00 00 00 Reader.phpn....UERn.....8.......
1560 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 ..,...src/Composer/Repository/Pe
1580 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 b0 03 00 00 0a 55 45 52 b0 03 00 00 9f 0d ar/PackageInfo.php.....UER......
15a0 b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 ..........5...src/Composer/Repos
15c0 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2e itory/Pear/DependencyConstraint.
15e0 70 68 70 71 02 00 00 0a 55 45 52 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 34 00 00 00 73 phpq....UERq...9..=........4...s
1600 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e rc/Composer/Repository/Pear/Chan
1620 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 70 26 09 00 00 0a 55 45 52 26 09 00 00 f2 nelRest11Reader.php&....UER&....
1640 55 62 08 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f Ub.........,...src/Composer/Repo
1660 73 69 74 6f 72 79 2f 50 65 61 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 0a sitory/Pear/ReleaseInfo.php.....
1680 55 45 52 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER....o...........2...src/Compo
16a0 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 61 6e 6e 65 6c 52 ser/Repository/Pear/BaseChannelR
16c0 65 61 64 65 72 2e 70 68 70 36 05 00 00 0a 55 45 52 36 05 00 00 2e 66 69 21 b6 01 00 00 00 00 00 eader.php6....UER6....fi!.......
16e0 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 .4...src/Composer/Repository/Pea
1700 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 2e 70 68 70 c1 09 00 00 0a 55 45 r/ChannelRest10Reader.php.....UE
1720 52 c1 09 00 00 04 4f 80 eb b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R.....O........../...src/Compose
1740 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 r/Repository/RepositoryInterface
1760 2e 70 68 70 d4 01 00 00 0a 55 45 52 d4 01 00 00 f2 90 9f c9 b6 01 00 00 00 00 00 00 2e 00 00 00 .php.....UER....................
1780 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 74 69 66 61 63 74 src/Composer/Repository/Artifact
17a0 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 46 08 00 00 0a 55 45 52 46 08 00 00 ae 0b 38 97 b6 01 Repository.phpF....UERF.....8...
17c0 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 ......-...src/Composer/Repositor
17e0 79 2f 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 47 03 00 00 0a 55 45 52 47 y/PackageRepository.phpG....UERG
1800 03 00 00 ed 04 3a 6b b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....:k........(...src/Composer/
1820 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 d8 05 00 00 0a Package/CompletePackage.php.....
1840 55 45 52 d8 05 00 00 38 47 6c 5d b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER....8Gl]........+...src/Compo
1860 73 65 72 2f 50 61 63 6b 61 67 65 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 ser/Package/Dumper/ArrayDumper.p
1880 68 70 65 0a 00 00 0a 55 45 52 65 0a 00 00 cf cf cd fb b6 01 00 00 00 00 00 00 37 00 00 00 73 72 hpe....UERe...............7...sr
18a0 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 61 6c 69 c/Composer/Package/Loader/Invali
18c0 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 0a 55 45 52 45 02 00 dPackageException.phpE....UERE..
18e0 00 78 62 13 be b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 .xb..........*...src/Composer/Pa
1900 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 00 0a ckage/Loader/JsonLoader.php.....
1920 55 45 52 f9 01 00 00 21 7e 88 7b b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER....!~.{......../...src/Compo
1940 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 ser/Package/Loader/LoaderInterfa
1960 63 65 2e 70 68 70 b2 00 00 00 0a 55 45 52 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 00 2b 00 ce.php.....UER.....}..........+.
1980 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 41 72 ..src/Composer/Package/Loader/Ar
19a0 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 a5 17 00 00 0a 55 45 52 a5 17 00 00 91 fe 00 30 b6 01 00 rayLoader.php.....UER.......0...
19c0 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f .....5...src/Composer/Package/Lo
19e0 61 64 65 72 2f 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 30 29 ader/ValidatingArrayLoader.php0)
1a00 00 00 0a 55 45 52 30 29 00 00 c7 5f 92 d3 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f ...UER0)..._..........1...src/Co
1a20 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b 61 67 mposer/Package/Loader/RootPackag
1a40 65 4c 6f 61 64 65 72 2e 70 68 70 7e 1d 00 00 0a 55 45 52 7e 1d 00 00 02 c5 23 0f b6 01 00 00 00 eLoader.php~....UER~.....#......
1a60 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b .......src/Composer/Package/Lock
1a80 65 72 2e 70 68 70 f4 1a 00 00 0a 55 45 52 f4 1a 00 00 a4 d3 ac 4a b6 01 00 00 00 00 00 00 29 00 er.php.....UER.......J........).
1aa0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 49 6e ..src/Composer/Package/PackageIn
1ac0 74 65 72 66 61 63 65 2e 70 68 70 67 06 00 00 0a 55 45 52 67 06 00 00 60 9d 58 c4 b6 01 00 00 00 terface.phpg....UERg...`.X......
1ae0 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 42 61 73 65 ...$...src/Composer/Package/Base
1b00 50 61 63 6b 61 67 65 2e 70 68 70 5b 0a 00 00 0a 55 45 52 5b 0a 00 00 24 08 b5 d2 b6 01 00 00 00 Package.php[....UER[...$........
1b20 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 56 65 72 73 .......src/Composer/Package/Vers
1b40 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 93 24 00 00 0a 55 45 52 93 24 00 ion/VersionParser.php.$...UER.$.
1b60 00 14 38 49 ab b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 ..8I.........1...src/Composer/Pa
1b80 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 ckage/CompletePackageInterface.p
1ba0 68 70 a1 01 00 00 0a 55 45 52 a1 01 00 00 96 cf 32 97 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 hp.....UER......2.........-...sr
1bc0 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e c/Composer/Package/RootPackageIn
1be0 74 65 72 66 61 63 65 2e 70 68 70 b4 01 00 00 0a 55 45 52 b4 01 00 00 ea 71 4b d0 b6 01 00 00 00 terface.php.....UER.....qK......
1c00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 ...$...src/Composer/Package/Root
1c20 50 61 63 6b 61 67 65 2e 70 68 70 6e 04 00 00 0a 55 45 52 6e 04 00 00 e1 41 43 4f b6 01 00 00 00 Package.phpn....UERn....ACO.....
1c40 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 ...3...src/Composer/Package/Arch
1c60 69 76 65 72 2f 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 0a 55 iver/ArchiverInterface.php.....U
1c80 45 52 ef 00 00 00 07 3c ca b8 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER.....<..........7...src/Compos
1ca0 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 43 6f 6d 70 6f 73 65 72 45 78 63 6c er/Package/Archiver/ComposerExcl
1cc0 75 64 65 46 69 6c 74 65 72 2e 70 68 70 1f 01 00 00 0a 55 45 52 1f 01 00 00 8b 53 5a 30 b6 01 00 udeFilter.php.....UER.....SZ0...
1ce0 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 .........src/Composer/Package/Ar
1d00 63 68 69 76 65 72 2f 50 68 61 72 41 72 63 68 69 76 65 72 2e 70 68 70 5b 03 00 00 0a 55 45 52 5b chiver/PharArchiver.php[....UER[
1d20 03 00 00 ca 35 cd f8 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....5..........3...src/Composer/
1d40 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 Package/Archiver/BaseExcludeFilt
1d60 65 72 2e 70 68 70 9d 06 00 00 0a 55 45 52 9d 06 00 00 90 d5 23 26 b6 01 00 00 00 00 00 00 32 00 er.php.....UER......#&........2.
1d80 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f ..src/Composer/Package/Archiver/
1da0 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 77 03 00 00 0a 55 45 52 77 03 00 00 GitExcludeFilter.phpw....UERw...
1dc0 4c 67 55 bb b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 LgU.........7...src/Composer/Pac
1de0 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e kage/Archiver/ArchivableFilesFin
1e00 64 65 72 2e 70 68 70 65 04 00 00 0a 55 45 52 65 04 00 00 54 ec 8c 7a b6 01 00 00 00 00 00 00 30 der.phpe....UERe...T..z........0
1e20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 ...src/Composer/Package/Archiver
1e40 2f 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2e 70 68 70 04 0a 00 00 0a 55 45 52 04 0a 00 00 d7 /ArchiveManager.php.....UER.....
1e60 14 fe d3 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b ...........1...src/Composer/Pack
1e80 61 67 65 2f 41 72 63 68 69 76 65 72 2f 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 age/Archiver/HgExcludeFilter.php
1ea0 13 05 00 00 0a 55 45 52 13 05 00 00 7e 94 0e b8 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f .....UER....~...........)...src/
1ec0 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 Composer/Package/RootAliasPackag
1ee0 65 2e 70 68 70 de 03 00 00 0a 55 45 52 de 03 00 00 d5 12 3e 05 b6 01 00 00 00 00 00 00 20 00 00 e.php.....UER......>............
1f00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 2e 70 68 .src/Composer/Package/Package.ph
1f20 70 8e 13 00 00 0a 55 45 52 8e 13 00 00 5a be a6 ce b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 p.....UER....Z...........%...src
1f40 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 /Composer/Package/AliasPackage.p
1f60 68 70 45 12 00 00 0a 55 45 52 45 12 00 00 56 6e f3 c0 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 hpE....UERE...Vn..............sr
1f80 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 51 05 00 00 0a c/Composer/Package/Link.phpQ....
1fa0 55 45 52 51 05 00 00 87 cf 39 04 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f UERQ.....9.........7...src/Compo
1fc0 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 45 6d 70 74 79 ser/Package/LinkConstraint/Empty
1fe0 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 ea 01 00 00 0a 55 45 52 ea 01 00 00 00 ec 1b be b6 01 Constraint.php.....UER..........
2000 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c ......7...src/Composer/Package/L
2020 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 inkConstraint/MultiConstraint.ph
2040 70 67 04 00 00 0a 55 45 52 67 04 00 00 78 f5 18 38 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 pg....UERg...x..8........9...src
2060 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 /Composer/Package/LinkConstraint
2080 2f 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 ce 06 00 00 0a 55 45 52 ce 06 /VersionConstraint.php.....UER..
20a0 00 00 6c f0 60 43 b6 01 00 00 00 00 00 00 3a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 ..l.`C........:...src/Composer/P
20c0 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 53 70 65 63 69 66 69 63 43 6f ackage/LinkConstraint/SpecificCo
20e0 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 0a 55 45 52 71 02 00 00 96 53 9a f8 b6 01 00 00 nstraint.phpq....UERq....S......
2100 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e ....?...src/Composer/Package/Lin
2120 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 kConstraint/LinkConstraintInterf
2140 61 63 65 2e 70 68 70 15 01 00 00 0a 55 45 52 15 01 00 00 e5 fe 87 a2 b6 01 00 00 00 00 00 00 16 ace.php.....UER.................
2160 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 3c 0d 00 00 0a 55 45 ...src/Composer/Cache.php<....UE
2180 52 3c 0d 00 00 5d 81 ea 8d b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R<...]...........3...src/Compose
21a0 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 49 6e 74 65 72 r/DependencyResolver/PolicyInter
21c0 66 61 63 65 2e 70 68 70 91 01 00 00 0a 55 45 52 91 01 00 00 42 18 9f b6 b6 01 00 00 00 00 00 00 face.php.....UER....B...........
21e0 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c +...src/Composer/DependencyResol
2200 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 9b 09 00 00 0a 55 45 52 9b 09 00 00 4a 79 0c c0 b6 ver/RuleSet.php.....UER....Jy...
2220 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......6...src/Composer/Dependen
2240 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 cyResolver/SolverBugException.ph
2260 70 98 01 00 00 0a 55 45 52 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 p.....UER....."qN........1...src
2280 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 66 /Composer/DependencyResolver/Def
22a0 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 80 18 00 00 0a 55 45 52 80 18 00 00 31 88 d5 4c b6 01 aultPolicy.php.....UER....1..L..
22c0 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 ......-...src/Composer/Dependenc
22e0 79 52 65 73 6f 6c 76 65 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 51 0f 00 00 0a 55 45 52 51 yResolver/Decisions.phpQ....UERQ
2300 0f 00 00 3f 98 ac 24 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...?..$........1...src/Composer/
2320 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 DependencyResolver/RuleWatchNode
2340 2e 70 68 70 ea 03 00 00 0a 55 45 52 ea 03 00 00 10 5a fe 0e b6 01 00 00 00 00 00 00 3b 00 00 00 .php.....UER.....Z..........;...
2360 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f src/Composer/DependencyResolver/
2380 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 25 04 00 00 0a SolverProblemsException.php%....
23a0 55 45 52 25 04 00 00 54 1a ed 50 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER%...T..P......../...src/Compo
23c0 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e 73 61 63 74 69 ser/DependencyResolver/Transacti
23e0 6f 6e 2e 70 68 70 11 14 00 00 0a 55 45 52 11 14 00 00 93 fe de 87 b6 01 00 00 00 00 00 00 40 00 on.php.....UER................@.
2400 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ..src/Composer/DependencyResolve
2420 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 r/Operation/UninstallOperation.p
2440 68 70 49 02 00 00 0a 55 45 52 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 hpI....UERI...F...........=...sr
2460 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 c/Composer/DependencyResolver/Op
2480 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 68 03 00 00 0a eration/UpdateOperation.phph....
24a0 55 45 52 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f 43 6f 6d 70 6f UERh....S.]........I...src/Compo
24c0 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e ser/DependencyResolver/Operation
24e0 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 /MarkAliasInstalledOperation.php
2500 d0 02 00 00 0a 55 45 52 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 00 73 72 63 2f .....UER....xUZa........>...src/
2520 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 Composer/DependencyResolver/Oper
2540 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 43 02 00 00 0a 55 ation/InstallOperation.phpC....U
2560 45 52 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ERC....\.*........=...src/Compos
2580 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f er/DependencyResolver/Operation/
25a0 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 0a 55 45 52 eb 01 00 00 c4 SolverOperation.php.....UER.....
25c0 a7 dd 94 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 ...........K...src/Composer/Depe
25e0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 ndencyResolver/Operation/MarkAli
2600 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d6 02 00 00 0a 55 asUninstalledOperation.php.....U
2620 45 52 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER...._i..........@...src/Compos
2640 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f er/DependencyResolver/Operation/
2660 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 00 00 0a 55 45 52 d3 00 OperationInterface.php.....UER..
2680 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ....&.........(...src/Composer/D
26a0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 1f 26 00 00 0a 55 ependencyResolver/Pool.php.&...U
26c0 45 52 1f 26 00 00 03 2a dc 63 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER.&...*.c........(...src/Compos
26e0 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e 70 68 70 be 14 er/DependencyResolver/Rule.php..
2700 00 00 0a 55 45 52 be 14 00 00 7f 05 bc 65 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f ...UER.......e........4...src/Co
2720 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 mposer/DependencyResolver/RuleSe
2740 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 4f 15 00 00 0a 55 45 52 4f 15 00 00 5f 3c a0 3d b6 01 tGenerator.phpO....UERO..._<.=..
2760 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 ....../...src/Composer/Dependenc
2780 79 52 65 73 6f 6c 76 65 72 2f 44 65 62 75 67 53 6f 6c 76 65 72 2e 70 68 70 89 06 00 00 0a 55 45 yResolver/DebugSolver.php.....UE
27a0 52 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R................3...src/Compose
27c0 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 49 74 65 72 r/DependencyResolver/RuleSetIter
27e0 61 74 6f 72 2e 70 68 70 14 06 00 00 0a 55 45 52 14 06 00 00 7d f5 c7 f9 b6 01 00 00 00 00 00 00 ator.php.....UER....}...........
2800 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 2...src/Composer/DependencyResol
2820 76 65 72 2f 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 2e 70 68 70 69 01 00 00 0a 55 45 52 69 01 ver/RuleWatchChain.phpi....UERi.
2840 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..h..,........*...src/Composer/D
2860 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 70 b9 35 00 00 ependencyResolver/Solver.php.5..
2880 0a 55 45 52 b9 35 00 00 a6 c2 91 92 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 .UER.5..............+...src/Comp
28a0 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 65 71 75 65 73 74 2e oser/DependencyResolver/Request.
28c0 70 68 70 89 04 00 00 0a 55 45 52 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 2b 00 00 00 73 php.....UER....1..I........+...s
28e0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 rc/Composer/DependencyResolver/P
2900 72 6f 62 6c 65 6d 2e 70 68 70 ae 10 00 00 0a 55 45 52 ae 10 00 00 74 ed 02 47 b6 01 00 00 00 00 roblem.php.....UER....t..G......
2920 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 ..2...src/Composer/DependencyRes
2940 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 e1 06 00 00 0a 55 45 52 olver/RuleWatchGraph.php.....UER
2960 e1 06 00 00 89 72 f4 76 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .....r.v........-...src/Composer
2980 2f 43 6f 6e 66 69 67 2f 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 2e 70 68 /Config/ConfigSourceInterface.ph
29a0 70 8d 01 00 00 0a 55 45 52 8d 01 00 00 21 94 02 70 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 p.....UER....!..p........(...src
29c0 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2f 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 /Composer/Config/JsonConfigSourc
29e0 65 2e 70 68 70 1f 08 00 00 0a 55 45 52 1f 08 00 00 1e 82 08 d0 b6 01 00 00 00 00 00 00 24 00 00 e.php.....UER................$..
2a00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 45 76 65 6e 74 .src/Composer/Plugin/PluginEvent
2a20 73 2e 70 68 70 a4 00 00 00 0a 55 45 52 a4 00 00 00 30 ef de 58 b6 01 00 00 00 00 00 00 24 00 00 s.php.....UER....0..X........$..
2a40 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e .src/Composer/Plugin/CommandEven
2a60 74 2e 70 68 70 bf 02 00 00 0a 55 45 52 bf 02 00 00 19 af ca 92 b6 01 00 00 00 00 00 00 2c 00 00 t.php.....UER................,..
2a80 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 72 65 46 69 6c 65 44 6f 77 6e .src/Composer/Plugin/PreFileDown
2aa0 6c 6f 61 64 45 76 65 6e 74 2e 70 68 70 94 02 00 00 0a 55 45 52 94 02 00 00 96 60 3f 9d b6 01 00 loadEvent.php.....UER.....`?....
2ac0 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 .....'...src/Composer/Plugin/Plu
2ae0 67 69 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f4 00 00 00 0a 55 45 52 f4 00 00 00 0c 31 89 25 ginInterface.php.....UER.....1.%
2b00 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f ........%...src/Composer/Plugin/
2b20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 2e 70 68 70 2f 15 00 00 0a 55 45 52 2f 15 00 00 2e b2 bb PluginManager.php/....UER/......
2b40 48 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 46 61 63 74 6f 72 H............src/Composer/Factor
2b60 79 2e 70 68 70 e2 28 00 00 0a 55 45 52 e2 28 00 00 42 5c a7 3c b6 01 00 00 00 00 00 00 20 00 00 y.php.(...UER.(..B\.<...........
2b80 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 .src/Composer/Util/Filesystem.ph
2ba0 70 bd 19 00 00 0a 55 45 52 bd 19 00 00 73 e3 7f ca b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 p.....UER....s...............src
2bc0 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 48 75 62 2e 70 68 70 e5 09 00 00 0a 55 45 /Composer/Util/GitHub.php.....UE
2be0 52 e5 09 00 00 7e 29 9a 1d b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R....~)..........%...src/Compose
2c00 72 2f 55 74 69 6c 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 57 06 00 00 0a 55 r/Util/ProcessExecutor.phpW....U
2c20 45 52 57 06 00 00 d4 15 20 b8 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ERW...................src/Compos
2c40 65 72 2f 55 74 69 6c 2f 47 69 74 2e 70 68 70 61 02 00 00 0a 55 45 52 61 02 00 00 0e b4 e6 e4 b6 er/Util/Git.phpa....UERa........
2c60 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 52 65 6d .......&...src/Composer/Util/Rem
2c80 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 27 1c 00 00 0a 55 45 52 27 1c 00 00 a7 d0 90 oteFilesystem.php'....UER'......
2ca0 6b b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 k........*...src/Composer/Util/S
2cc0 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 55 0b 00 00 0a 55 45 52 55 treamContextFactory.phpU....UERU
2ce0 0b 00 00 fe f7 5b 6a b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....[j........%...src/Composer/
2d00 55 74 69 6c 2f 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 8d 0b 00 00 0a 55 45 52 Util/ConfigValidator.php.....UER
2d20 8d 0b 00 00 c4 1a 4d 3c b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ......M<........"...src/Composer
2d40 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 0a 55 45 52 14 02 /Util/ErrorHandler.php.....UER..
2d60 00 00 b4 40 85 e6 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 ...@..........+...src/Composer/U
2d80 74 69 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 68 70 36 0a 00 til/SpdxLicenseIdentifier.php6..
2da0 00 0a 55 45 52 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d ..UER6....6.o........$...src/Com
2dc0 70 6f 73 65 72 2f 55 74 69 6c 2f 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 2e 70 68 70 87 06 00 poser/Util/NoProxyPattern.php...
2de0 00 0a 55 45 52 87 06 00 00 fe 32 01 86 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d ..UER.....2..............src/Com
2e00 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 2e 0d 00 00 0a 55 45 52 2e 0d 00 00 da 3b poser/Util/Svn.php.....UER.....;
2e20 49 dd b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 70 6f I.............src/Composer/Compo
2e40 73 65 72 2e 70 68 70 01 09 00 00 0a 55 45 52 01 09 00 00 0a 94 5f 27 b6 01 00 00 00 00 00 00 25 ser.php.....UER......_'........%
2e60 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 4d 61 6e 69 70 75 6c ...src/Composer/Json/JsonManipul
2e80 61 74 6f 72 2e 70 68 70 bc 1e 00 00 0a 55 45 52 bc 1e 00 00 61 a8 21 23 b6 01 00 00 00 00 00 00 ator.php.....UER....a.!#........
2ea0 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c 65 2e 70 ....src/Composer/Json/JsonFile.p
2ec0 68 70 79 14 00 00 0a 55 45 52 79 14 00 00 05 b1 34 43 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 hpy....UERy.....4C........-...sr
2ee0 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 c/Composer/Json/JsonValidationEx
2f00 63 65 70 74 69 6f 6e 2e 70 68 70 32 01 00 00 0a 55 45 52 32 01 00 00 39 62 84 31 b6 01 00 00 00 ception.php2....UER2...9b.1.....
2f20 00 00 00 17 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 70 b8 12 .......src/Composer/Config.php..
2f40 00 00 0a 55 45 52 b8 12 00 00 55 1d 9c ef b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f ...UER....U...........9...src/Co
2f60 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 53 75 62 73 mposer/EventDispatcher/EventSubs
2f80 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 0a 55 45 52 a9 00 00 00 68 criberInterface.php.....UER....h
2fa0 b7 01 30 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e ..0........&...src/Composer/Even
2fc0 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 2e 70 68 70 a1 01 00 00 0a 55 45 52 a1 01 00 tDispatcher/Event.php.....UER...
2fe0 00 ce 94 b6 4c b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 ....L........0...src/Composer/Ev
3000 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 entDispatcher/EventDispatcher.ph
3020 70 8f 12 00 00 0a 55 45 52 8f 12 00 00 77 07 69 16 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 p.....UER....w.i.............src
3040 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 5a 02 00 00 0a 55 /Composer/Script/Event.phpZ....U
3060 45 52 5a 02 00 00 c7 ef e8 19 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ERZ...............$...src/Compos
3080 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 e1 03 00 00 0a 55 er/Script/ScriptEvents.php.....U
30a0 45 52 e1 03 00 00 28 71 50 45 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER....(qPE........$...src/Compos
30c0 65 72 2f 53 63 72 69 70 74 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 6f 00 00 00 0a 55 er/Script/CommandEvent.phpo....U
30e0 45 52 6f 00 00 00 0d b7 14 79 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ERo......y........$...src/Compos
3100 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 f7 01 00 00 0a 55 er/Script/PackageEvent.php.....U
3120 45 52 f7 01 00 00 61 16 b1 09 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 ER....a...........(...src/Compos
3140 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 2b 05 er/Installer/NoopInstaller.php+.
3160 00 00 0a 55 45 52 2b 05 00 00 c0 b7 4d 7d b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ...UER+.....M}......../...src/Co
3180 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 mposer/Installer/MetapackageInst
31a0 61 6c 6c 65 72 2e 70 68 70 9c 04 00 00 0a 55 45 52 9c 04 00 00 c6 12 c5 21 b6 01 00 00 00 00 00 aller.php.....UER.......!.......
31c0 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 65 61 72 .(...src/Composer/Installer/Pear
31e0 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 09 11 00 00 0a 55 45 52 09 11 00 00 a8 08 4d 69 b6 01 00 Installer.php.....UER......Mi...
3200 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f .....+...src/Composer/Installer/
3220 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 1d 06 00 00 0a 55 45 52 1d 06 00 00 ProjectInstaller.php.....UER....
3240 2a 30 40 50 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 *0@P........+...src/Composer/Ins
3260 74 61 6c 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 88 1b 00 00 0a taller/LibraryInstaller.php.....
3280 55 45 52 88 1b 00 00 c5 1c f2 f9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f UER....................src/Compo
32a0 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 ser/Installer/InstallationManage
32c0 72 2e 70 68 70 65 14 00 00 0a 55 45 52 65 14 00 00 b7 9b 10 87 b6 01 00 00 00 00 00 00 2a 00 00 r.phpe....UERe...............*..
32e0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 6c 75 67 69 6e 49 6e .src/Composer/Installer/PluginIn
3300 73 74 61 6c 6c 65 72 2e 70 68 70 3f 06 00 00 0a 55 45 52 3f 06 00 00 5f fe d8 bb b6 01 00 00 00 staller.php?....UER?..._........
3320 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e ...-...src/Composer/Installer/In
3340 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 0a 55 45 52 c5 02 00 00 stallerInterface.php.....UER....
3360 48 53 93 a1 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e HS..........$...src/Composer/Con
3380 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 b5 18 00 00 0a 55 45 52 b5 18 00 00 sole/Application.php.....UER....
33a0 f0 f2 40 fd b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e ..@.........,...src/Composer/Con
33c0 73 6f 6c 65 2f 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 d0 05 00 00 sole/HtmlOutputFormatter.php....
33e0 0a 55 45 52 d0 05 00 00 dd 46 d7 ea b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 .UER.....F..........+...src/Comp
3400 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e oser/Autoload/AutoloadGenerator.
3420 70 68 70 70 3a 00 00 0a 55 45 52 70 3a 00 00 6b 80 12 80 b6 01 00 00 00 00 00 00 2b 00 00 00 73 phpp:...UERp:..k...........+...s
3440 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4d 61 70 47 65 6e rc/Composer/Autoload/ClassMapGen
3460 65 72 61 74 6f 72 2e 70 68 70 de 0a 00 00 0a 55 45 52 de 0a 00 00 b8 e5 f7 5f b6 01 00 00 00 00 erator.php.....UER......._......
3480 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 ......src/Composer/Installer.php
34a0 84 5f 00 00 0a 55 45 52 84 5f 00 00 ee 1d d1 29 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f ._...UER._.....)........%...src/
34c0 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 Composer/Autoload/ClassLoader.ph
34e0 70 0f 1b 00 00 0a 55 45 52 0f 1b 00 00 71 07 a5 f8 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 p.....UER....q...............res
3500 2f 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 69 0b 00 00 0a 55 45 52 69 0b 00 /spdx-identifier.jsoni....UERi..
3520 00 e6 97 52 1a b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 ...R.............res/composer-sc
3540 68 65 6d 61 2e 6a 73 6f 6e fa 41 00 00 0a 55 45 52 fa 41 00 00 9a 06 1d fd b6 01 00 00 00 00 00 hema.json.A...UER.A.............
3560 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 65 6e 69 6e 70 75 74 .....src/Composer/IO/hiddeninput
3580 2e 65 78 65 00 24 00 00 0a 55 45 52 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 .exe.$...UER.$.....v........?...
35a0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/process/Symfony/C
35c0 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 0f omponent/Process/PhpProcess.php.
35e0 03 00 00 0a 55 45 52 0f 03 00 00 38 5a d4 b7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f ....UER....8Z..........E...vendo
3600 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/process/Symfony/Compon
3620 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 ent/Process/ExecutableFinder.php
3640 b3 04 00 00 0a 55 45 52 b3 04 00 00 09 4a ee 9f b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 .....UER.....J..........<...vend
3660 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/process/Symfony/Compo
3680 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 be 3b 00 00 0a 55 45 52 nent/Process/Process.php.;...UER
36a0 be 3b 00 00 90 b2 0f 65 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .;.....e........A...vendor/symfo
36c0 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f ny/process/Symfony/Component/Pro
36e0 63 65 73 73 2f 50 72 6f 63 65 73 73 50 69 70 65 73 2e 70 68 70 62 10 00 00 0a 55 45 52 62 10 00 cess/ProcessPipes.phpb....UERb..
3700 00 04 46 9d b1 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..F..........C...vendor/symfony/
3720 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 process/Symfony/Component/Proces
3740 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 0a 09 00 00 0a 55 45 52 0a 09 00 00 s/ProcessBuilder.php.....UER....
3760 8e 83 64 b5 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 ..d.........A...vendor/symfony/p
3780 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 rocess/Symfony/Component/Process
37a0 2f 50 72 6f 63 65 73 73 55 74 69 6c 73 2e 70 68 70 87 02 00 00 0a 55 45 52 87 02 00 00 3b f0 6a /ProcessUtils.php.....UER....;.j
37c0 ce b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 .........W...vendor/symfony/proc
37e0 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 ess/Symfony/Component/Process/Ex
3800 63 65 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e ception/ProcessTimedOutException
3820 2e 70 68 70 1e 04 00 00 0a 55 45 52 1e 04 00 00 67 46 fb c2 b6 01 00 00 00 00 00 00 51 00 00 00 .php.....UER....gF..........Q...
3840 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/process/Symfony/C
3860 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 omponent/Process/Exception/Excep
3880 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 66 00 00 00 0a 55 45 52 66 00 00 00 5d f6 3e tionInterface.phpf....UERf...].>
38a0 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 T........O...vendor/symfony/proc
38c0 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 ess/Symfony/Component/Process/Ex
38e0 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 ception/RuntimeException.php....
3900 0a 55 45 52 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 .UER.......:........M...vendor/s
3920 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/process/Symfony/Component
3940 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 4c 6f 67 69 63 45 78 63 65 70 74 69 6f /Process/Exception/LogicExceptio
3960 6e 2e 70 68 70 94 00 00 00 0a 55 45 52 94 00 00 00 20 b3 e3 f1 b6 01 00 00 00 00 00 00 55 00 00 n.php.....UER................U..
3980 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f .vendor/symfony/process/Symfony/
39a0 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 72 6f 63 Component/Process/Exception/Proc
39c0 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ed 02 00 00 0a 55 45 52 ed 02 essFailedException.php.....UER..
39e0 00 00 7c ee e7 aa b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..|...........W...vendor/symfony
3a00 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 /process/Symfony/Component/Proce
3a20 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 ss/Exception/InvalidArgumentExce
3a40 70 74 69 6f 6e 2e 70 68 70 a8 00 00 00 0a 55 45 52 a8 00 00 00 d0 c0 2b 5f b6 01 00 00 00 00 00 ption.php.....UER......+_.......
3a60 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 .H...vendor/symfony/process/Symf
3a80 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 68 70 45 78 65 63 75 74 61 ony/Component/Process/PhpExecuta
3aa0 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 b2 02 00 00 0a 55 45 52 b2 02 00 00 c4 19 c9 00 b6 01 00 bleFinder.php.....UER...........
3ac0 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d .....5...vendor/symfony/yaml/Sym
3ae0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 50 61 72 73 65 72 2e 70 68 70 58 33 fony/Component/Yaml/Parser.phpX3
3b00 00 00 0a 55 45 52 58 33 00 00 c2 22 ed 1b b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 6f 72 ...UERX3..."..........8...vendor
3b20 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f /symfony/yaml/Symfony/Component/
3b40 59 61 6d 6c 2f 55 6e 65 73 63 61 70 65 72 2e 70 68 70 06 08 00 00 0a 55 45 52 06 08 00 00 22 b7 Yaml/Unescaper.php.....UER....".
3b60 d8 47 b6 01 00 00 00 00 00 00 33 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d .G........3...vendor/symfony/yam
3b80 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 59 61 6d 6c 2e 70 68 l/Symfony/Component/Yaml/Yaml.ph
3ba0 70 cb 03 00 00 0a 55 45 52 cb 03 00 00 15 e4 f3 0c b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e p.....UER................5...ven
3bc0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 dor/symfony/yaml/Symfony/Compone
3be0 6e 74 2f 59 61 6d 6c 2f 44 75 6d 70 65 72 2e 70 68 70 09 04 00 00 0a 55 45 52 09 04 00 00 17 8d nt/Yaml/Dumper.php.....UER......
3c00 ff c7 b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d ..........G...vendor/symfony/yam
3c20 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 45 78 63 65 70 74 69 l/Symfony/Component/Yaml/Excepti
3c40 6f 6e 2f 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 14 06 00 00 0a 55 45 52 14 06 00 on/ParseException.php.....UER...
3c60 00 b7 45 0b b2 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..E..........K...vendor/symfony/
3c80 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 45 78 63 65 yaml/Symfony/Component/Yaml/Exce
3ca0 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 65 00 00 00 ption/ExceptionInterface.phpe...
3cc0 0a 55 45 52 65 00 00 00 ce 63 ba 07 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 .UERe....c..........I...vendor/s
3ce0 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 ymfony/yaml/Symfony/Component/Ya
3d00 6d 6c 2f 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 ml/Exception/RuntimeException.ph
3d20 70 97 00 00 00 0a 55 45 52 97 00 00 00 87 07 f5 81 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e p.....UER................F...ven
3d40 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 dor/symfony/yaml/Symfony/Compone
3d60 6e 74 2f 59 61 6d 6c 2f 45 78 63 65 70 74 69 6f 6e 2f 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 2e nt/Yaml/Exception/DumpException.
3d80 70 68 70 75 00 00 00 0a 55 45 52 75 00 00 00 65 01 2a 6e b6 01 00 00 00 00 00 00 36 00 00 00 76 phpu....UERu...e.*n........6...v
3da0 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f endor/symfony/yaml/Symfony/Compo
3dc0 6e 65 6e 74 2f 59 61 6d 6c 2f 45 73 63 61 70 65 72 2e 70 68 70 bb 05 00 00 0a 55 45 52 bb 05 00 nent/Yaml/Escaper.php.....UER...
3de0 00 82 2e cd c7 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .............5...vendor/symfony/
3e00 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 49 6e 6c 69 yaml/Symfony/Component/Yaml/Inli
3e20 6e 65 2e 70 68 70 bd 21 00 00 0a 55 45 52 bd 21 00 00 34 56 f6 0b b6 01 00 00 00 00 00 00 48 00 ne.php.!...UER.!..4V..........H.
3e40 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
3e60 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 /Component/Console/Command/HelpC
3e80 6f 6d 6d 61 6e 64 2e 70 68 70 0a 07 00 00 0a 55 45 52 0a 07 00 00 b9 37 31 58 b6 01 00 00 00 00 ommand.php.....UER.....71X......
3ea0 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..D...vendor/symfony/console/Sym
3ec0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 fony/Component/Console/Command/C
3ee0 6f 6d 6d 61 6e 64 2e 70 68 70 65 18 00 00 0a 55 45 52 65 18 00 00 0f 8e 2b 1f b6 01 00 00 00 00 ommand.phpe....UERe.....+.......
3f00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..H...vendor/symfony/console/Sym
3f20 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c fony/Component/Console/Command/L
3f40 69 73 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 79 07 00 00 0a 55 45 52 79 07 00 00 92 3e 7b d4 b6 01 istCommand.phpy....UERy....>{...
3f60 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......M...vendor/symfony/console
3f80 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 /Symfony/Component/Console/Teste
3fa0 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 67 05 00 00 0a 55 45 52 67 r/ApplicationTester.phpg....UERg
3fc0 05 00 00 37 2d 47 c6 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ...7-G.........I...vendor/symfon
3fe0 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
4000 6f 6c 65 2f 54 65 73 74 65 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 ea 04 00 00 ole/Tester/CommandTester.php....
4020 0a 55 45 52 ea 04 00 00 53 a0 d8 6d b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 .UER....S..m........X...vendor/s
4040 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/console/Symfony/Component
4060 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 /Console/Formatter/OutputFormatt
4080 65 72 53 74 79 6c 65 53 74 61 63 6b 2e 70 68 70 08 05 00 00 0a 55 45 52 08 05 00 00 79 08 49 27 erStyleStack.php.....UER....y.I'
40a0 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........S...vendor/symfony/conso
40c0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 le/Symfony/Component/Console/For
40e0 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 55 matter/OutputFormatterStyle.phpU
4100 0c 00 00 0a 55 45 52 55 0c 00 00 7a a8 dc ed b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f ....UERU...z...........\...vendo
4120 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
4140 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d ent/Console/Formatter/OutputForm
4160 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8e 01 00 00 0a 55 45 52 8e atterStyleInterface.php.....UER.
4180 01 00 00 f6 eb c4 3d b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ......=........N...vendor/symfon
41a0 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
41c0 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 ole/Formatter/OutputFormatter.ph
41e0 70 fd 0b 00 00 0a 55 45 52 fd 0b 00 00 3e 57 c8 fe b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e p.....UER....>W..........W...ven
4200 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 dor/symfony/console/Symfony/Comp
4220 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f onent/Console/Formatter/OutputFo
4240 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 98 01 00 00 0a 55 45 52 98 01 00 00 rmatterInterface.php.....UER....
4260 33 6c 7e b4 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 3l~.........@...vendor/symfony/c
4280 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
42a0 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 9a 4c 00 00 0a 55 45 52 9a 4c 00 00 f1 44 c4 6c /Application.php.L...UER.L...D.l
42c0 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........H...vendor/symfony/conso
42e0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 le/Symfony/Component/Console/Inp
4300 75 74 2f 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 2e 70 68 70 9e 05 00 00 0a 55 45 52 9e 05 00 00 ut/InputArgument.php.....UER....
4320 4b 5d ec 69 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 K].i........@...vendor/symfony/c
4340 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
4360 2f 49 6e 70 75 74 2f 49 6e 70 75 74 2e 70 68 70 34 0a 00 00 0a 55 45 52 34 0a 00 00 96 8e dd ae /Input/Input.php4....UER4.......
4380 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........F...vendor/symfony/conso
43a0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 le/Symfony/Component/Console/Inp
43c0 75 74 2f 53 74 72 69 6e 67 49 6e 70 75 74 2e 70 68 70 8f 05 00 00 0a 55 45 52 8f 05 00 00 c4 5d ut/StringInput.php.....UER.....]
43e0 74 68 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e th........F...vendor/symfony/con
4400 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 sole/Symfony/Component/Console/I
4420 6e 70 75 74 2f 49 6e 70 75 74 4f 70 74 69 6f 6e 2e 70 68 70 aa 0b 00 00 0a 55 45 52 aa 0b 00 00 nput/InputOption.php.....UER....
4440 e2 f5 fe 31 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ...1........D...vendor/symfony/c
4460 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
4480 2f 49 6e 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 b3 13 00 00 0a 55 45 52 b3 13 00 00 /Input/ArgvInput.php.....UER....
44a0 18 90 7b 6f b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ..{o........I...vendor/symfony/c
44c0 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
44e0 2f 49 6e 70 75 74 2f 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 0a 55 45 /Input/InputInterface.php.....UE
4500 52 20 03 00 00 39 94 f8 c7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 R....9...........E...vendor/symf
4520 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
4540 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 f7 09 00 00 0a 55 nsole/Input/ArrayInput.php.....U
4560 45 52 f7 09 00 00 e0 22 18 39 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d ER.....".9........J...vendor/sym
4580 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 fony/console/Symfony/Component/C
45a0 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 onsole/Input/InputDefinition.php
45c0 ef 15 00 00 0a 55 45 52 ef 15 00 00 49 20 01 a6 b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 .....UER....I...........:...vend
45e0 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
4600 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 74 0f 00 00 0a 55 45 52 74 0f nent/Console/Shell.phpt....UERt.
4620 00 00 02 c2 d7 2d b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 .....-........B...vendor/symfony
4640 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
4660 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 2e 70 68 70 66 07 00 00 0a 55 45 52 66 07 00 00 le/Output/Output.phpf....UERf...
4680 2f de 57 16 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 /.W.........F...vendor/symfony/c
46a0 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
46c0 2f 4f 75 74 70 75 74 2f 4e 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 04 03 00 00 0a 55 45 52 04 03 /Output/NullOutput.php.....UER..
46e0 00 00 b3 28 8a f7 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...(..........R...vendor/symfony
4700 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
4720 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 le/Output/ConsoleOutputInterface
4740 2e 70 68 70 1c 01 00 00 0a 55 45 52 1c 01 00 00 f8 0e 18 b0 b6 01 00 00 00 00 00 00 48 00 00 00 .php.....UER................H...
4760 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
4780 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 53 74 72 65 61 6d 4f 75 omponent/Console/Output/StreamOu
47a0 74 70 75 74 2e 70 68 70 aa 04 00 00 0a 55 45 52 aa 04 00 00 b2 7f f8 1b b6 01 00 00 00 00 00 00 tput.php.....UER................
47c0 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f K...vendor/symfony/console/Symfo
47e0 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 ny/Component/Console/Output/Outp
4800 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 49 03 00 00 0a 55 45 52 49 03 00 00 c8 e2 e3 42 b6 utInterface.phpI....UERI......B.
4820 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......I...vendor/symfony/consol
4840 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 e/Symfony/Component/Console/Outp
4860 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 2e 70 68 70 46 05 00 00 0a 55 45 52 46 05 00 00 ut/ConsoleOutput.phpF....UERF...
4880 0e b0 61 02 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ..a.........S...vendor/symfony/c
48a0 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
48c0 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 2e /Descriptor/DescriptorInterface.
48e0 70 68 70 ad 00 00 00 0a 55 45 52 ad 00 00 00 99 06 87 65 b6 01 00 00 00 00 00 00 4e 00 00 00 76 php.....UER.......e........N...v
4900 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f endor/symfony/console/Symfony/Co
4920 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 54 65 78 74 44 mponent/Console/Descriptor/TextD
4940 65 73 63 72 69 70 74 6f 72 2e 70 68 70 69 16 00 00 0a 55 45 52 69 16 00 00 b5 a0 c8 c8 b6 01 00 escriptor.phpi....UERi..........
4960 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....M...vendor/symfony/console/
4980 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 Symfony/Component/Console/Descri
49a0 70 74 6f 72 2f 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 34 1a 00 00 0a 55 45 52 34 1a ptor/XmlDescriptor.php4....UER4.
49c0 00 00 95 c5 5b 19 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....[.........R...vendor/symfony
49e0 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
4a00 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 le/Descriptor/MarkdownDescriptor
4a20 2e 70 68 70 9c 0d 00 00 0a 55 45 52 9c 0d 00 00 92 29 17 f2 b6 01 00 00 00 00 00 00 56 00 00 00 .php.....UER.....)..........V...
4a40 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
4a60 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 41 70 70 6c omponent/Console/Descriptor/Appl
4a80 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 2e 70 68 70 f7 07 00 00 0a 55 45 52 f7 07 icationDescription.php.....UER..
4aa0 00 00 29 49 df f0 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..)I..........J...vendor/symfony
4ac0 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
4ae0 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 1d 06 00 00 le/Descriptor/Descriptor.php....
4b00 0a 55 45 52 1d 06 00 00 0a 6e a7 e1 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 .UER.....n..........N...vendor/s
4b20 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/console/Symfony/Component
4b40 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4a 73 6f 6e 44 65 73 63 72 69 70 74 /Console/Descriptor/JsonDescript
4b60 6f 72 2e 70 68 70 2a 0c 00 00 0a 55 45 52 2a 0c 00 00 d3 0f 45 16 b6 01 00 00 00 00 00 00 4b 00 or.php*....UER*.....E.........K.
4b80 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
4ba0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 /Component/Console/Helper/Helper
4bc0 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 0a 55 45 52 ef 00 00 00 3d 65 1b 0c b6 01 00 Interface.php.....UER....=e.....
4be0 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....G...vendor/symfony/console/
4c00 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 Symfony/Component/Console/Helper
4c20 2f 54 61 62 6c 65 48 65 6c 70 65 72 2e 70 68 70 9e 15 00 00 0a 55 45 52 9e 15 00 00 6c b8 5a ce /TableHelper.php.....UER....l.Z.
4c40 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........L...vendor/symfony/conso
4c60 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c le/Symfony/Component/Console/Hel
4c80 70 65 72 2f 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 2e 70 68 70 d5 05 00 00 0a 55 45 52 per/DescriptorHelper.php.....UER
4ca0 d5 05 00 00 9d 03 7e d0 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ......~.........K...vendor/symfo
4cc0 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e ny/console/Symfony/Component/Con
4ce0 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 1e sole/Helper/FormatterHelper.php.
4d00 04 00 00 0a 55 45 52 1e 04 00 00 9e 49 82 81 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f ....UER.....I..........E...vendo
4d20 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
4d40 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 ent/Console/Helper/HelperSet.php
4d60 d3 03 00 00 0a 55 45 52 d3 03 00 00 98 5e 39 74 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 .....UER.....^9t........H...vend
4d80 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
4da0 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 nent/Console/Helper/DialogHelper
4dc0 2e 70 68 70 68 1b 00 00 0a 55 45 52 68 1b 00 00 8c 87 f7 26 b6 01 00 00 00 00 00 00 42 00 00 00 .phph....UERh......&........B...
4de0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
4e00 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 omponent/Console/Helper/Helper.p
4e20 68 70 22 02 00 00 0a 55 45 52 22 02 00 00 17 a8 e4 55 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 hp"....UER"......U........J...ve
4e40 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/console/Symfony/Com
4e60 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 65 ponent/Console/Helper/ProgressHe
4e80 6c 70 65 72 2e 70 68 70 2e 19 00 00 0a 55 45 52 2e 19 00 00 1e 65 0a 49 b6 01 00 00 00 00 00 00 lper.php.....UER.....e.I........
4ea0 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f G...vendor/symfony/console/Symfo
4ec0 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f ny/Component/Console/Event/Conso
4ee0 6c 65 45 76 65 6e 74 2e 70 68 70 c5 02 00 00 0a 55 45 52 c5 02 00 00 d2 78 db 5c b6 01 00 00 00 leEvent.php.....UER.....x.\.....
4f00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...P...vendor/symfony/console/Sy
4f20 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f mfony/Component/Console/Event/Co
4f40 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 2e 70 68 70 74 02 00 00 0a 55 45 52 74 nsoleTerminateEvent.phpt....UERt
4f60 02 00 00 f6 94 7e d2 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e .....~.........P...vendor/symfon
4f80 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
4fa0 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 2e ole/Event/ConsoleExceptionEvent.
4fc0 70 68 70 0c 03 00 00 0a 55 45 52 0c 03 00 00 b2 72 f7 ab b6 01 00 00 00 00 00 00 4e 00 00 00 76 php.....UER.....r..........N...v
4fe0 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f endor/symfony/console/Symfony/Co
5000 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 43 6f 6d mponent/Console/Event/ConsoleCom
5020 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 a4 00 00 00 0a 55 45 52 a4 00 00 00 f5 9e e1 2d b6 01 00 mandEvent.php.....UER.......-...
5040 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f .....B...vendor/symfony/console/
5060 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6e 73 6f 6c Symfony/Component/Console/Consol
5080 65 45 76 65 6e 74 73 2e 70 68 70 e9 00 00 00 0a 55 45 52 e9 00 00 00 52 db d4 65 b6 01 00 00 00 eEvents.php.....UER....R..e.....
50a0 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...9...vendor/symfony/finder/Sym
50c0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 fony/Component/Finder/Finder.php
50e0 c9 20 00 00 0a 55 45 52 c9 20 00 00 c4 0f 94 73 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 .....UER.......s........@...vend
5100 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e or/symfony/finder/Symfony/Compon
5120 65 6e 74 2f 46 69 6e 64 65 72 2f 53 68 65 6c 6c 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 c3 0a 00 00 ent/Finder/Shell/Command.php....
5140 0a 55 45 52 c3 0a 00 00 eb a7 9a 4f b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 .UER.......O........>...vendor/s
5160 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f ymfony/finder/Symfony/Component/
5180 46 69 6e 64 65 72 2f 53 68 65 6c 6c 2f 53 68 65 6c 6c 2e 70 68 70 a2 03 00 00 0a 55 45 52 a2 03 Finder/Shell/Shell.php.....UER..
51a0 00 00 44 85 41 0a b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..D.A.........C...vendor/symfony
51c0 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 /finder/Symfony/Component/Finder
51e0 2f 45 78 70 72 65 73 73 69 6f 6e 2f 52 65 67 65 78 2e 70 68 70 5a 0e 00 00 0a 55 45 52 5a 0e 00 /Expression/Regex.phpZ....UERZ..
5200 00 40 81 b2 7e b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .@..~........B...vendor/symfony/
5220 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f finder/Symfony/Component/Finder/
5240 45 78 70 72 65 73 73 69 6f 6e 2f 47 6c 6f 62 2e 70 68 70 a1 07 00 00 0a 55 45 52 a1 07 00 00 20 Expression/Glob.php.....UER.....
5260 20 56 bf b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 .V.........H...vendor/symfony/fi
5280 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 nder/Symfony/Component/Finder/Ex
52a0 70 72 65 73 73 69 6f 6e 2f 45 78 70 72 65 73 73 69 6f 6e 2e 70 68 70 7b 05 00 00 0a 55 45 52 7b pression/Expression.php{....UER{
52c0 05 00 00 27 c8 bc 10 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ...'...........L...vendor/symfon
52e0 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 y/finder/Symfony/Component/Finde
5300 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 3b r/Expression/ValueInterface.php;
5320 01 00 00 0a 55 45 52 3b 01 00 00 0b ee e3 d3 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f ....UER;...............K...vendo
5340 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
5360 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 nt/Finder/Adapter/AdapterInterfa
5380 63 65 2e 70 68 70 af 03 00 00 0a 55 45 52 af 03 00 00 8b 08 e9 c8 b6 01 00 00 00 00 00 00 49 00 ce.php.....UER................I.
53a0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f ..vendor/symfony/finder/Symfony/
53c0 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 42 73 64 46 69 6e 64 Component/Finder/Adapter/BsdFind
53e0 41 64 61 70 74 65 72 2e 70 68 70 7b 06 00 00 0a 55 45 52 7b 06 00 00 51 2c 44 32 b6 01 00 00 00 Adapter.php{....UER{...Q,D2.....
5400 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...I...vendor/symfony/finder/Sym
5420 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 47 6e fony/Component/Finder/Adapter/Gn
5440 75 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 5e 06 00 00 0a 55 45 52 5e 06 00 00 df 7a 98 72 uFindAdapter.php^....UER^....z.r
5460 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........J...vendor/symfony/finde
5480 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 r/Symfony/Component/Finder/Adapt
54a0 65 72 2f 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 2e 70 68 70 a7 0a 00 00 0a 55 45 52 a7 0a er/AbstractAdapter.php.....UER..
54c0 00 00 fe 0c 6e 86 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....n.........N...vendor/symfony
54e0 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 /finder/Symfony/Component/Finder
5500 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 /Adapter/AbstractFindAdapter.php
5520 01 19 00 00 0a 55 45 52 01 19 00 00 b7 59 cb fc b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 .....UER.....Y..........E...vend
5540 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e or/symfony/finder/Symfony/Compon
5560 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 50 68 70 41 64 61 70 74 65 72 2e 70 68 ent/Finder/Adapter/PhpAdapter.ph
5580 70 2b 07 00 00 0a 55 45 52 2b 07 00 00 26 98 ee d2 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e p+....UER+...&...........7...ven
55a0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f dor/symfony/finder/Symfony/Compo
55c0 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 0a 55 45 52 0d 05 00 00 nent/Finder/Glob.php.....UER....
55e0 7a 9d f8 0a b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 z...........T...vendor/symfony/f
5600 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
5620 74 65 72 61 74 6f 72 2f 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 terator/DepthRangeFilterIterator
5640 2e 70 68 70 f0 01 00 00 0a 55 45 52 f0 01 00 00 df 30 99 04 b6 01 00 00 00 00 00 00 4c 00 00 00 .php.....UER.....0..........L...
5660 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f vendor/symfony/finder/Symfony/Co
5680 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 6f 72 74 61 62 6c 65 mponent/Finder/Iterator/Sortable
56a0 49 74 65 72 61 74 6f 72 2e 70 68 70 de 05 00 00 0a 55 45 52 de 05 00 00 92 1a 94 c7 b6 01 00 00 Iterator.php.....UER............
56c0 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....U...vendor/symfony/finder/Sy
56e0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f mfony/Component/Finder/Iterator/
5700 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 FilecontentFilterIterator.php#..
5720 00 0a 55 45 52 23 03 00 00 da 5f 56 c7 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f ..UER#...._V.........M...vendor/
5740 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
5760 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 /Finder/Iterator/FilePathsIterat
5780 6f 72 2e 70 68 70 8d 05 00 00 0a 55 45 52 8d 05 00 00 fd f2 e4 51 b6 01 00 00 00 00 00 00 53 00 or.php.....UER.......Q........S.
57a0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f ..vendor/symfony/finder/Symfony/
57c0 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 Component/Finder/Iterator/SizeRa
57e0 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 67 02 00 00 0a 55 45 52 67 02 00 ngeFilterIterator.phpg....UERg..
5800 00 21 d4 97 e9 b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .!...........Z...vendor/symfony/
5820 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f finder/Symfony/Component/Finder/
5840 49 74 65 72 61 74 6f 72 2f 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 Iterator/ExcludeDirectoryFilterI
5860 74 65 72 61 74 6f 72 2e 70 68 70 a5 02 00 00 0a 55 45 52 a5 02 00 00 dd 7a 60 2e b6 01 00 00 00 terator.php.....UER.....z`......
5880 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...J...vendor/symfony/finder/Sym
58a0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 fony/Component/Finder/Iterator/F
58c0 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 86 02 00 00 0a 55 45 52 86 02 00 00 30 a3 be ilterIterator.php.....UER....0..
58e0 d4 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 .........V...vendor/symfony/find
5900 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 er/Symfony/Component/Finder/Iter
5920 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e ator/MultiplePcreFilterIterator.
5940 70 68 70 04 03 00 00 0a 55 45 52 04 03 00 00 53 db 43 f5 b6 01 00 00 00 00 00 00 50 00 00 00 76 php.....UER....S.C.........P...v
5960 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
5980 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 43 75 73 74 6f 6d 46 69 6c ponent/Finder/Iterator/CustomFil
59a0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5d 02 00 00 0a 55 45 52 5d 02 00 00 74 e0 b1 b5 b6 terIterator.php]....UER]...t....
59c0 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......R...vendor/symfony/finder
59e0 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 /Symfony/Component/Finder/Iterat
5a00 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 88 02 00 or/FilenameFilterIterator.php...
5a20 00 0a 55 45 52 88 02 00 00 ea 42 83 5a b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f ..UER.....B.Z........S...vendor/
5a40 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
5a60 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 /Finder/Iterator/DateRangeFilter
5a80 49 74 65 72 61 74 6f 72 2e 70 68 70 67 02 00 00 0a 55 45 52 67 02 00 00 b0 c9 65 00 b6 01 00 00 Iterator.phpg....UERg.....e.....
5aa0 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....R...vendor/symfony/finder/Sy
5ac0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f mfony/Component/Finder/Iterator/
5ae0 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 0a 55 FileTypeFilterIterator.php\....U
5b00 45 52 5c 02 00 00 70 91 27 98 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d ER\...p.'.........V...vendor/sym
5b20 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
5b40 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 nder/Iterator/RecursiveDirectory
5b60 49 74 65 72 61 74 6f 72 2e 70 68 70 dc 05 00 00 0a 55 45 52 dc 05 00 00 aa bd e9 fa b6 01 00 00 Iterator.php.....UER............
5b80 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....N...vendor/symfony/finder/Sy
5ba0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f mfony/Component/Finder/Iterator/
5bc0 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 c1 02 00 00 0a 55 45 52 c1 02 PathFilterIterator.php.....UER..
5be0 00 00 5f dc 41 15 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 .._.A.........L...vendor/symfony
5c00 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 /finder/Symfony/Component/Finder
5c20 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 /Comparator/DateComparator.php&.
5c40 00 00 0a 55 45 52 26 03 00 00 e9 68 64 b1 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 ...UER&....hd.........N...vendor
5c60 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
5c80 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 65 72 43 6f 6d 70 61 72 t/Finder/Comparator/NumberCompar
5ca0 61 74 6f 72 2e 70 68 70 79 03 00 00 0a 55 45 52 79 03 00 00 22 60 14 db b6 01 00 00 00 00 00 00 ator.phpy....UERy..."`..........
5cc0 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e H...vendor/symfony/finder/Symfon
5ce0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 43 6f y/Component/Finder/Comparator/Co
5d00 6d 70 61 72 61 74 6f 72 2e 70 68 70 8c 03 00 00 0a 55 45 52 8c 03 00 00 16 77 fe 54 b6 01 00 00 mparator.php.....UER.....w.T....
5d20 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....R...vendor/symfony/finder/Sy
5d40 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e mfony/Component/Finder/Exception
5d60 2f 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 84 00 00 00 0a 55 /AccessDeniedException.php.....U
5d80 45 52 84 00 00 00 bd be 73 9c b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d ER......s.........O...vendor/sym
5da0 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
5dc0 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 nder/Exception/ExceptionInterfac
5de0 65 2e 70 68 70 84 00 00 00 0a 55 45 52 84 00 00 00 1c 47 7a 2d b6 01 00 00 00 00 00 00 5a 00 00 e.php.....UER.....Gz-........Z..
5e00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 .vendor/symfony/finder/Symfony/C
5e20 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 4f 70 65 72 61 74 omponent/Finder/Exception/Operat
5e40 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 8a 00 00 00 0a ionNotPermitedException.php.....
5e60 55 45 52 8a 00 00 00 55 12 38 38 b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 UER....U.88........T...vendor/sy
5e80 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
5ea0 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 inder/Exception/AdapterFailureEx
5ec0 63 65 70 74 69 6f 6e 2e 70 68 70 16 02 00 00 0a 55 45 52 16 02 00 00 6d 8c 5f 2c b6 01 00 00 00 ception.php.....UER....m._,.....
5ee0 00 00 00 59 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...Y...vendor/symfony/finder/Sym
5f00 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f fony/Component/Finder/Exception/
5f20 53 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ShellCommandFailureException.php
5f40 24 02 00 00 0a 55 45 52 24 02 00 00 43 94 73 d3 b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 $....UER$...C.s.........>...vend
5f60 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e or/symfony/finder/Symfony/Compon
5f80 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 70 fb 02 00 00 0a 55 ent/Finder/SplFileInfo.php.....U
5fa0 45 52 fb 02 00 00 91 05 86 36 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c ER.......6........4...vendor/sel
5fc0 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 55 6e 64 d/jsonlint/src/Seld/JsonLint/Und
5fe0 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 0a 55 45 52 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 efined.php>....UER>....q........
6000 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 ..5...vendor/seld/jsonlint/src/S
6020 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a 73 6f 6e 50 61 72 73 65 72 2e 70 68 70 b8 2c 00 00 0a eld/JsonLint/JsonParser.php.,...
6040 55 45 52 b8 2c 00 00 56 bc 5c 0d b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 UER.,..V.\.........0...vendor/se
6060 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4c 65 ld/jsonlint/src/Seld/JsonLint/Le
6080 78 65 72 2e 70 68 70 bf 0f 00 00 0a 55 45 52 bf 0f 00 00 ab 0b ba 59 b6 01 00 00 00 00 00 00 3b xer.php.....UER.......Y........;
60a0 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 ...vendor/seld/jsonlint/src/Seld
60c0 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1e 01 /JsonLint/ParsingException.php..
60e0 00 00 0a 55 45 52 1e 01 00 00 89 b2 10 f1 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 ...UER................I...vendor
6100 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a /justinrainbow/json-schema/src/J
6120 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 2e sonSchema/Constraints/Undefined.
6140 70 68 70 78 06 00 00 0a 55 45 52 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 00 00 44 00 00 00 76 phpx....UERx...h..q........D...v
6160 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f endor/justinrainbow/json-schema/
6180 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 54 79 70 65 2e src/JsonSchema/Constraints/Type.
61a0 70 68 70 d4 05 00 00 0a 55 45 52 d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 00 00 46 00 00 00 76 php.....UER......+F........F...v
61c0 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f endor/justinrainbow/json-schema/
61e0 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 63 68 65 6d src/JsonSchema/Constraints/Schem
6200 61 2e 70 68 70 d4 01 00 00 0a 55 45 52 d4 01 00 00 b9 3a 66 4d b6 01 00 00 00 00 00 00 46 00 00 a.php.....UER.....:fM........F..
6220 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d .vendor/justinrainbow/json-schem
6240 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d a/src/JsonSchema/Constraints/Num
6260 62 65 72 2e 70 68 70 57 02 00 00 0a 55 45 52 57 02 00 00 2e 31 f2 e7 b6 01 00 00 00 00 00 00 46 ber.phpW....UERW....1..........F
6280 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 ...vendor/justinrainbow/json-sch
62a0 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4f ema/src/JsonSchema/Constraints/O
62c0 62 6a 65 63 74 2e 70 68 70 94 07 00 00 0a 55 45 52 94 07 00 00 63 e8 5a fb b6 01 00 00 00 00 00 bject.php.....UER....c.Z........
62e0 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 .S...vendor/justinrainbow/json-s
6300 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 chema/src/JsonSchema/Constraints
6320 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 24 01 00 00 0a 55 45 52 /ConstraintInterface.php$....UER
6340 24 01 00 00 03 67 d6 ec b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 $....g..........J...vendor/justi
6360 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 nrainbow/json-schema/src/JsonSch
6380 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 15 0a ema/Constraints/Constraint.php..
63a0 00 00 0a 55 45 52 15 0a 00 00 3e 1d e3 18 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 ...UER....>...........J...vendor
63c0 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a /justinrainbow/json-schema/src/J
63e0 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6c 6c 65 63 74 69 6f 6e sonSchema/Constraints/Collection
6400 2e 70 68 70 56 08 00 00 0a 55 45 52 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 00 00 00 44 00 00 00 .phpV....UERV....<..........D...
6420 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 vendor/justinrainbow/json-schema
6440 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e 75 6d /src/JsonSchema/Constraints/Enum
6460 2e 70 68 70 86 01 00 00 0a 55 45 52 86 01 00 00 24 28 6d be b6 01 00 00 00 00 00 00 46 00 00 00 .php.....UER....$(m.........F...
6480 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 vendor/justinrainbow/json-schema
64a0 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 74 72 69 /src/JsonSchema/Constraints/Stri
64c0 6e 67 2e 70 68 70 98 02 00 00 0a 55 45 52 98 02 00 00 b4 f5 97 6b b6 01 00 00 00 00 00 00 3d 00 ng.php.....UER.......k........=.
64e0 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
6500 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 5b ma/src/JsonSchema/Validator.php[
6520 01 00 00 0a 55 45 52 5b 01 00 00 38 11 97 f6 b6 01 00 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f ....UER[...8...............vendo
6540 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 91 00 00 00 0a 55 45 52 91 00 00 00 d2 d7 e7 ed b6 01 r/autoload.php.....UER..........
6560 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f ......'...vendor/composer/autolo
6580 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 34 02 00 00 0a 55 45 52 34 02 00 00 f5 85 c2 ad_namespaces.php4....UER4......
65a0 17 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 .........%...vendor/composer/aut
65c0 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 46 87 00 00 0a 55 45 52 46 87 00 00 23 b4 oload_classmap.phpF....UERF...#.
65e0 d2 1e b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 ..........!...vendor/composer/au
6600 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 6b 04 00 00 0a 55 45 52 6b 04 00 00 88 71 fa 68 b6 toload_real.phpk....UERk....q.h.
6620 01 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 63 6c 75 .......!...vendor/composer/inclu
6640 64 65 5f 70 61 74 68 73 2e 70 68 70 9f 01 00 00 0a 55 45 52 9f 01 00 00 db 1a 87 31 b6 01 00 00 de_paths.php.....UER.......1....
6660 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 ........vendor/composer/ClassLoa
6680 64 65 72 2e 70 68 70 b1 0b 00 00 0a 55 45 52 b1 0b 00 00 73 6a 58 b5 b6 01 00 00 00 00 00 00 0c der.php.....UER....sjX..........
66a0 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 6e 04 00 00 0a 55 45 52 6e 04 00 00 1f 96 85 57 b6 ...bin/composern....UERn......W.
66c0 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 00 0a 55 45 52 33 04 00 00 0b 81 ...........LICENSE3....UER3.....
66e0 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 2.........<?php............funct
6700 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 24 66 69 6c 65 29 0a 7b 0a 72 65 74 ion.includeIfExists($file).{.ret
6720 75 72 6e 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 20 3f 20 69 6e 63 6c 75 64 65 urn.file_exists($file).?.include
6740 20 24 66 69 6c 65 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 64 65 72 .$file.:.false;.}..if.((!$loader
6760 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f .=.includeIfExists(__DIR__.'/../
6780 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 26 26 20 28 21 24 6c 6f 61 vendor/autoload.php')).&&.(!$loa
67a0 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f der.=.includeIfExists(__DIR__.'/
67c0 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 29 20 7b 0a 65 63 68 6f ../../../autoload.php'))).{.echo
67e0 20 27 59 6f 75 20 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 .'You.must.set.up.the.project.de
6800 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f pendencies,.run.the.following.co
6820 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 63 75 72 6c 20 2d 73 53 20 68 74 74 70 mmands:'.PHP_EOL..'curl.-sS.http
6840 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 69 6e 73 74 61 6c 6c 65 72 20 7c 20 s://getcomposer.org/installer.|.
6860 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 php'.PHP_EOL..'php.composer.phar
6880 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 72 .install'.PHP_EOL;.exit(1);.}..r
68a0 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eturn.$loader;.<?php............
68c0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 namespace.Composer\IO;..use.Symf
68e0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
6900 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
6920 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
6940 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
6960 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 Helper\HelperSet;........class.C
6980 6f 6e 73 6f 6c 65 49 4f 20 65 78 74 65 6e 64 73 20 42 61 73 65 49 4f 0a 7b 0a 70 72 6f 74 65 63 onsoleIO.extends.BaseIO.{.protec
69a0 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 ted.$input;.protected.$output;.p
69c0 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 rotected.$helperSet;.protected.$
69e0 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b lastMessage;.private.$startTime;
6a00 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
6a20 72 75 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 ruct(InputInterface.$input,.Outp
6a40 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 utInterface.$output,.HelperSet.$
6a60 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 helperSet).{.$this->input.=.$inp
6a80 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 ut;.$this->output.=.$output;.$th
6aa0 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 70 is->helperSet.=.$helperSet;.}..p
6ac0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 ublic.function.enableDebugging($
6ae0 73 74 61 72 74 54 69 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 startTime).{.$this->startTime.=.
6b00 24 73 74 61 72 74 54 69 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $startTime;.}.....public.functio
6b20 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 n.isInteractive().{.return.$this
6b40 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a ->input->isInteractive();.}.....
6b60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a public.function.isDecorated().{.
6b80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 return.$this->output->isDecorate
6ba0 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 d();.}.....public.function.isVer
6bc0 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 bose().{.return.$this->output->g
6be0 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 etVerbosity().>=.OutputInterface
6c00 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ::VERBOSITY_VERBOSE;.}.....publi
6c20 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 c.function.isVeryVerbose().{.ret
6c40 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 urn.$this->output->getVerbosity(
6c60 29 20 3e 3d 20 33 3b 20 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ).>=.3;...}.....public.function.
6c80 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 isDebug().{.return.$this->output
6ca0 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 34 3b 20 0a 20 7d 0a 0a 0a 0a 0a 70 ->getVerbosity().>=.4;...}.....p
6cc0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 ublic.function.write($messages,.
6ce0 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 $newline.=.true).{.if.(null.!==.
6d00 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 $this->startTime).{.$messages.=.
6d20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 24 6d 65 73 73 61 67 65 73 5b 30 5d 20 (array).$messages;.$messages[0].
6d40 3d 20 73 70 72 69 6e 74 66 28 0a 27 5b 25 2e 31 66 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 0a =.sprintf(.'[%.1fMB/%.2fs].%s',.
6d60 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 memory_get_usage()./.1024./.1024
6d80 2c 0a 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 ,.microtime(true).-.$this->start
6da0 54 69 6d 65 2c 0a 24 6d 65 73 73 61 67 65 73 5b 30 5d 0a 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f Time,.$messages[0].);.}.$this->o
6dc0 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 utput->write($messages,.$newline
6de0 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 );.$this->lastMessage.=.join($ne
6e00 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 wline.?."\n".:.'',.(array).$mess
6e20 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 ages);.}.....public.function.ove
6e40 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 rwrite($messages,.$newline.=.tru
6e60 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d e,.$size.=.null).{...$messages.=
6e80 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 .join($newline.?."\n".:.'',.(arr
6ea0 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 ay).$messages);....if.(!isset($s
6ec0 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 ize)).{...$size.=.strlen(strip_t
6ee0 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 ags($this->lastMessage));.}...$t
6f00 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 his->write(str_repeat("\x08",.$s
6f20 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d ize),.false);....$this->write($m
6f40 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 essages,.false);..$fill.=.$size.
6f60 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b -.strlen(strip_tags($messages));
6f80 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 .if.($fill.>.0).{...$this->write
6fa0 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b (str_repeat('.',.$fill),.false);
6fc0 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 ...$this->write(str_repeat("\x08
6fe0 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 ",.$fill),.false);.}..if.($newli
7000 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d ne).{.$this->write('');.}.$this-
7020 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a >lastMessage.=.$messages;.}.....
7040 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 public.function.ask($question,.$
7060 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e default.=.null).{.return.$this->
7080 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 28 24 74 helperSet->get('dialog')->ask($t
70a0 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 his->output,.$question,.$default
70c0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 );.}.....public.function.askConf
70e0 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 irmation($question,.$default.=.t
7100 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e rue).{.return.$this->helperSet->
7120 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 get('dialog')->askConfirmation($
7140 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c this->output,.$question,.$defaul
7160 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 t);.}.....public.function.askAnd
7180 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 Validate($question,.$validator,.
71a0 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 $attempts.=.false,.$default.=.nu
71c0 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 ll).{.return.$this->helperSet->g
71e0 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 74 68 et('dialog')->askAndValidate($th
7200 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f is->output,.$question,.$validato
7220 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 r,.$attempts,.$default);.}.....p
7240 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 ublic.function.askAndHideAnswer(
7260 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f $question).{...if.(defined('PHP_
7280 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 WINDOWS_VERSION_BUILD')).{.$exe.
72a0 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a =.__DIR__.'\\hiddeninput.exe';..
72c0 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f ..if.('phar:'.===.substr(__FILE_
72e0 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 _,.0,.5)).{.$tmpExe.=.sys_get_te
7300 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 mp_dir().'/hiddeninput.exe';....
7320 0a 20 24 73 6f 75 72 63 65 20 3d 20 66 6f 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 ..$source.=.fopen(__DIR__.'\\hid
7340 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 deninput.exe',.'r');.$target.=.f
7360 6f 70 65 6e 28 24 74 6d 70 45 78 65 2c 20 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 open($tmpExe,.'w+');.stream_copy
7380 5f 74 6f 5f 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 66 63 _to_stream($source,.$target);.fc
73a0 6c 6f 73 65 28 24 73 6f 75 72 63 65 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 29 3b 0a lose($source);.fclose($target);.
73c0 75 6e 73 65 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 24 65 78 65 20 3d unset($source,.$target);..$exe.=
73e0 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 .$tmpExe;.}..$this->write($quest
7400 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c ion,.false);.$value.=.rtrim(shel
7420 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b l_exec($exe));.$this->write('');
7440 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b ....if.(isset($tmpExe)).{.unlink
7460 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a ($tmpExe);.}..return.$value;.}..
7480 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 if.(file_exists('/usr/bin/env'))
74a0 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 .{...$test.=."/usr/bin/env.%s.-c
74c0 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 .'echo.OK'.2>./dev/null";.foreac
74e0 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 h.(array('bash',.'zsh',.'ksh',.'
7500 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 csh').as.$sh).{.if.('OK'.===.rtr
7520 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 im(shell_exec(sprintf($test,.$sh
7540 29 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a )))).{.$shell.=.$sh;.break;.}.}.
7560 69 66 20 28 69 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 if.(isset($shell)).{.$this->writ
7580 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 e($question,.false);.$readCmd.=.
75a0 28 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 29 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 ($shell.===.'csh').?.'set.mypass
75c0 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 word.=.$<'.:.'read.-r.mypassword
75e0 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f ';.$command.=.sprintf("/usr/bin/
7600 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 env.%s.-c.'stty.-echo;.%s;.stty.
7620 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c echo;.echo.\$mypassword'",.$shel
7640 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 l,.$readCmd);.$value.=.rtrim(she
7660 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 ll_exec($command));.$this->write
7680 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 ('');..return.$value;.}.}....ret
76a0 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 3c urn.$this->ask($question);.}.}.<
76c0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
76e0 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 65 78 74 65 6e 64 er\IO;.......class.NullIO.extend
7700 73 20 42 61 73 65 49 4f 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 s.BaseIO.{....public.function.is
7720 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a Interactive().{.return.false;.}.
7740 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a ....public.function.isVerbose().
7760 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e {.return.false;.}.....public.fun
7780 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 ction.isVeryVerbose().{.return.f
77a0 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 alse;.}.....public.function.isDe
77c0 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c bug().{.return.false;.}.....publ
77e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 ic.function.isDecorated().{.retu
7800 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rn.false;.}.....public.function.
7820 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 write($messages,.$newline.=.true
7840 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 ).{.}.....public.function.overwr
7860 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 ite($messages,.$newline.=.true,.
7880 24 73 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $size.=.80).{.}.....public.funct
78a0 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 ion.ask($question,.$default.=.nu
78c0 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ll).{.return.$default;.}.....pub
78e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 lic.function.askConfirmation($qu
7900 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 estion,.$default.=.true).{.retur
7920 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$default;.}.....public.functio
7940 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c n.askAndValidate($question,.$val
7960 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 idator,.$attempts.=.false,.$defa
7980 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d ult.=.null).{.return.$default;.}
79a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 .....public.function.askAndHideA
79c0 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a nswer($question).{.return.null;.
79e0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
7a00 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 omposer\IO;..use.Composer\Config
7a20 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a ;.......interface.IOInterface.{.
7a40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 .....public.function.isInteracti
7a60 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 ve();.......public.function.isVe
7a80 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 rbose();.......public.function.i
7aa0 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e sVeryVerbose();.......public.fun
7ac0 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ction.isDebug();.......public.fu
7ae0 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 nction.isDecorated();........pub
7b00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e lic.function.write($messages,.$n
7b20 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ewline.=.true);.........public.f
7b40 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 unction.overwrite($messages,.$ne
7b60 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 3b 0a 0a 0a 0a 0a 0a wline.=.true,.$size.=.80);......
7b80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 ......public.function.ask($quest
7ba0 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion,.$default.=.null);..........
7bc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f ..public.function.askConfirmatio
7be0 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 3b 0a 0a n($question,.$default.=.true);..
7c00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ................public.function.
7c20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 askAndValidate($question,.$valid
7c40 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c ator,.$attempts.=.false,.$defaul
7c60 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 t.=.null);.........public.functi
7c80 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a on.askAndHideAnswer($question);.
7ca0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 ......public.function.getAuthent
7cc0 69 63 61 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ications();.........public.funct
7ce0 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 ion.hasAuthentication($repositor
7d00 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 yName);.........public.function.
7d20 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d getAuthentication($repositoryNam
7d40 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 e);.........public.function.setA
7d60 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 uthentication($repositoryName,.$
7d80 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a username,.$password.=.null);....
7da0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 ...public.function.loadConfigura
7dc0 74 69 6f 6e 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a tion(Config.$config);.}.<?php...
7de0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a .........namespace.Composer\IO;.
7e00 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
7e20 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
7e40 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 \Component\Console\Output\Output
7e60 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 Interface;.use.Symfony\Component
7e80 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 43 \Console\Helper\HelperSet;.use.C
7ea0 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 omposer\Config;..abstract.class.
7ec0 42 61 73 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a BaseIO.implements.IOInterface.{.
7ee0 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 20 3d 20 61 72 72 protected.$authentications.=.arr
7f00 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 ay();.....public.function.getAut
7f20 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 hentications().{.return.$this->a
7f40 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e uthentications;.}.....public.fun
7f60 63 74 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 ction.hasAuthentication($reposit
7f80 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 oryName).{.return.isset($this->a
7fa0 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 uthentications[$repositoryName])
7fc0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 ;.}.....public.function.getAuthe
7fe0 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 69 66 20 ntication($repositoryName).{.if.
8000 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 (isset($this->authentications[$r
8020 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d epositoryName])).{.return.$this-
8040 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 >authentications[$repositoryName
8060 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e ];.}..return.array('username'.=>
8080 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a .null,.'password'.=>.null);.}...
80a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 ..public.function.setAuthenticat
80c0 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 ion($repositoryName,.$username,.
80e0 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 65 $password.=.null).{.$this->authe
8100 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 20 3d 20 61 72 ntications[$repositoryName].=.ar
8120 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 6d 65 2c 20 27 70 61 ray('username'.=>.$username,.'pa
8140 73 73 77 6f 72 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ssword'.=>.$password);.}.....pub
8160 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 43 lic.function.loadConfiguration(C
8180 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 24 74 6f 6b 65 6e 73 20 3d onfig.$config).{...if.($tokens.=
81a0 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 7b .$config->get('github-oauth')).{
81c0 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 .foreach.($tokens.as.$domain.=>.
81e0 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d $token).{.if.(!preg_match('{^[a-
8200 7a 30 2d 39 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 z0-9]+$}',.$token)).{.throw.new.
8220 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 72 20 \UnexpectedValueException('Your.
8240 67 69 74 68 75 62 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e github.oauth.token.for.'.$domain
8260 2e 27 20 63 6f 6e 74 61 69 6e 73 20 69 6e 76 61 6c 69 64 20 63 68 61 72 61 63 74 65 72 73 3a 20 .'.contains.invalid.characters:.
8280 22 27 2e 24 74 6f 6b 65 6e 2e 27 22 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 65 74 41 75 74 68 "'.$token.'"');.}.$this->setAuth
82a0 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f entication($domain,.$token,.'x-o
82c0 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a auth-basic');.}.}.}.}.<?php.....
82e0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 .......namespace.Composer\IO;..u
8300 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 se.Symfony\Component\Console\Out
8320 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f put\StreamOutput;.use.Symfony\Co
8340 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 mponent\Console\Formatter\Output
8360 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c FormatterInterface;.use.Symfony\
8380 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e Component\Console\Input\StringIn
83a0 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f put;.use.Symfony\Component\Conso
83c0 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 le\Helper\HelperSet;.....class.B
83e0 75 66 66 65 72 49 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 49 4f 0a 7b 0a 0a 0a 0a 0a ufferIO.extends.ConsoleIO.{.....
8400 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e .public.function.__construct($in
8420 70 75 74 20 3d 20 27 27 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 put.=.'',.$verbosity.=.null,.Out
8440 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 putFormatterInterface.$formatter
8460 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e .=.null).{.$input.=.new.StringIn
8480 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 put($input);.$input->setInteract
84a0 69 76 65 28 66 61 6c 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 ive(false);..$output.=.new.Strea
84c0 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 72 mOutput(fopen('php://memory',.'r
84e0 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 3d 3d 20 6e 75 6c 6c 20 3f 20 53 74 72 65 61 w'),.$verbosity.===.null.?.Strea
8500 6d 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 mOutput::VERBOSITY_NORMAL.:.$ver
8520 62 6f 73 69 74 79 2c 20 21 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 74 65 72 29 2c 20 24 66 6f 72 bosity,.!empty($formatter),.$for
8540 6d 61 74 74 65 72 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 matter);..parent::__construct($i
8560 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 nput,.$output,.new.HelperSet(arr
8580 61 79 28 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 ay()));.}..public.function.getOu
85a0 74 70 75 74 28 29 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 tput().{.fseek($this->output->ge
85c0 74 53 74 72 65 61 6d 28 29 2c 20 30 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 74 72 65 61 6d tStream(),.0);..$output.=.stream
85e0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 _get_contents($this->output->get
8600 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 Stream());..$output.=.preg_repla
8620 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 28 3f 3c 3d 5e 7c 5c 6e 7c 5c 78 30 38 29 28 2e 2b 3f ce_callback("{(?<=^|\n|\x08)(.+?
8640 29 28 5c 78 30 38 2b 29 7d 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 )(\x08+)}",.function.($matches).
8660 7b 0a 24 70 72 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 {.$pre.=.strip_tags($matches[1])
8680 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 72 65 29 20 3d 3d 3d 20 73 74 72 6c 65 6e 28 24 ;..if.(strlen($pre).===.strlen($
86a0 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 20 72 matches[2])).{.return.'';.}....r
86c0 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 22 5c 6e 22 3b 0a 7d eturn.rtrim($matches[1])."\n";.}
86e0 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d ,.$output);..return.$output;.}.}
8700 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
8720 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 oser\Command;..use.Composer\Scri
8740 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d pt\ScriptEvents;.use.Symfony\Com
8760 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 ponent\Console\Input\InputInterf
8780 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
87a0 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e le\Input\InputOption;.use.Symfon
87c0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 y\Component\Console\Input\InputA
87e0 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rgument;.use.Symfony\Component\C
8800 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a onsole\Output\OutputInterface;..
8820 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 ...class.RunScriptCommand.extend
8840 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 s.Command.{.protected.function.c
8860 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 75 onfigure().{.$this.->setName('ru
8880 6e 2d 73 63 72 69 70 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e n-script').->setDescription('Run
88a0 20 74 68 65 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 .the.scripts.defined.in.composer
88c0 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a .json.').->setDefinition(array(.
88e0 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 2c 20 49 6e 70 75 new.InputArgument('script',.Inpu
8900 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 53 63 72 69 70 74 20 6e 61 6d tArgument::REQUIRED,.'Script.nam
8920 65 20 74 6f 20 72 75 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 e.to.run.'),.new.InputOption('de
8940 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e v',.null,.InputOption::VALUE_NON
8960 45 2c 20 27 53 65 74 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e 65 77 20 49 6e E,.'Sets.the.dev.mode.'),.new.In
8980 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f putOption('no-dev',.null,.InputO
89a0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 ption::VALUE_NONE,.'Disables.the
89c0 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f .dev.mode.'),.)).->setHelp(<<<EO
89e0 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f T.The.<info>run-script</info>.co
8a00 6d 6d 61 6e 64 20 72 75 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f mmand.runs.scripts.defined.in.co
8a20 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 mposer.json:..<info>php.composer
8a40 2e 70 68 61 72 20 72 75 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 .phar.run-script.post-update-cmd
8a60 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e </info>.EOT.).;.}..protected.fun
8a80 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ction.execute(InputInterface.$in
8aa0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
8ac0 24 73 63 72 69 70 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 $script.=.$input->getArgument('s
8ae0 63 72 69 70 74 27 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 73 63 72 69 70 74 2c 20 cript');.if.(!in_array($script,.
8b00 61 72 72 61 79 28 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c array(.ScriptEvents::PRE_INSTALL
8b20 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c _CMD,.ScriptEvents::POST_INSTALL
8b40 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 _CMD,.ScriptEvents::PRE_UPDATE_C
8b60 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d MD,.ScriptEvents::POST_UPDATE_CM
8b80 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c D,.ScriptEvents::PRE_STATUS_CMD,
8ba0 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 2c 0a .ScriptEvents::POST_STATUS_CMD,.
8bc0 29 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 ))).{.if.(defined('Composer\Scri
8be0 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 pt\ScriptEvents::'.str_replace('
8c00 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 70 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 -',.'_',.strtoupper($script)))).
8c20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
8c40 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 63 61 6e 6e 6f ption(sprintf('Script."%s".canno
8c60 74 20 62 65 20 72 75 6e 20 77 69 74 68 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 2c 20 24 73 63 t.be.run.with.this.command',.$sc
8c80 72 69 70 74 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ript));.}..throw.new.\InvalidArg
8ca0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 umentException(sprintf('Script."
8cc0 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 2c 20 24 73 63 72 69 70 74 29 29 3b 0a %s".does.not.exist',.$script));.
8ce0 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 45 76 65 6e }..$this->getComposer()->getEven
8d00 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 tDispatcher()->dispatchCommandEv
8d20 65 6e 74 28 24 73 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 ent($script,.$input->getOption('
8d40 64 65 76 27 29 20 7c 7c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d dev').||.!$input->getOption('no-
8d60 64 65 76 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d dev'));.}.}.<?php............nam
8d80 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Command;..use.Co
8da0 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 mposer\Composer;.use.Composer\Fa
8dc0 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 ctory;.use.Composer\Downloader\T
8de0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ransportException;.use.Composer\
8e00 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Plugin\CommandEvent;.use.Compose
8e20 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f r\Plugin\PluginEvents;.use.Compo
8e40 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 43 6f ser\Util\ConfigValidator;.use.Co
8e60 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 mposer\Util\RemoteFilesystem;.us
8e80 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 e.Composer\Util\StreamContextFac
8ea0 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tory;.use.Symfony\Component\Cons
8ec0 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 ole\Input\InputInterface;.use.Sy
8ee0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f mfony\Component\Console\Output\O
8f00 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 67 6e 6f utputInterface;.....class.Diagno
8f20 73 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 seCommand.extends.Command.{.prot
8f40 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 61 69 6c 75 72 65 73 20 ected.$rfs;.protected.$failures.
8f60 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 =.0;..protected.function.configu
8f80 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 69 61 67 6e 6f 73 65 re().{.$this.->setName('diagnose
8fa0 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 61 67 6e 6f 73 65 73 20 74 ').->setDescription('Diagnoses.t
8fc0 68 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 65 6e 74 69 66 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 he.system.to.identify.common.err
8fe0 6f 72 73 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 ors.').->setHelp(<<<EOT.The.<inf
9000 6f 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 o>diagnose</info>.command.checks
9020 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 74 6f 20 68 65 6c 70 20 64 65 62 75 67 67 69 6e 67 .common.errors.to.help.debugging
9040 20 70 72 6f 62 6c 65 6d 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 .problems...EOT.).;.}..protected
9060 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
9080 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
90a0 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 ).{.$this->rfs.=.new.RemoteFiles
90c0 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 2d ystem($this->getIO());..$output-
90e0 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 70 6c 61 74 66 6f 72 6d 20 73 65 74 74 69 6e >write('Checking.platform.settin
9100 67 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 gs:.');.$this->outputResult($out
9120 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 29 3b 0a 0a 24 put,.$this->checkPlatform());..$
9140 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 74 70 20 63 6f 6e output->write('Checking.http.con
9160 6e 65 63 74 69 76 69 74 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 nectivity:.');.$this->outputResu
9180 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 28 29 29 3b lt($output,.$this->checkHttp());
91a0 0a 0a 24 6f 70 74 73 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 67 65 74 5f 6f 70 74 ..$opts.=.stream_context_get_opt
91c0 69 6f 6e 73 28 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f ions(StreamContextFactory::getCo
91e0 6e 74 65 78 74 28 27 68 74 74 70 3a 2f 2f 65 78 61 6d 70 6c 65 2e 6f 72 67 27 29 29 3b 0a 69 66 ntext('http://example.org'));.if
9200 20 28 21 65 6d 70 74 79 28 24 6f 70 74 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f 78 79 27 5d 29 .(!empty($opts['http']['proxy'])
9220 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 ).{.$output->write('Checking.HTT
9240 50 20 70 72 6f 78 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 P.proxy:.');.$this->outputResult
9260 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 28 ($output,.$this->checkHttpProxy(
9280 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 ));.$output->write('Checking.HTT
92a0 50 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 65 71 75 65 73 74 5f 66 75 6c 6c P.proxy.support.for.request_full
92c0 75 72 69 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 uri:.');.$this->outputResult($ou
92e0 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 tput,.$this->checkHttpProxyFullU
9300 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 riRequestParam());.$output->writ
9320 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 53 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 e('Checking.HTTPS.proxy.support.
9340 66 6f 72 20 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e for.request_fulluri:.');.$this->
9360 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 outputResult($output,.$this->che
9380 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 ckHttpsProxyFullUriRequestParam(
93a0 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d ));.}..$composer.=.$this->getCom
93c0 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 poser(false);.if.($composer).{.$
93e0 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 commandEvent.=.new.CommandEvent(
9400 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 69 61 67 6e 6f 73 65 PluginEvents::COMMAND,.'diagnose
9420 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e ',.$input,.$output);.$composer->
9440 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 getEventDispatcher()->dispatch($
9460 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e commandEvent->getName(),.$comman
9480 64 45 76 65 6e 74 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 dEvent);..$output->write('Checki
94a0 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 ng.composer.json:.');.$this->out
94c0 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 43 putResult($output,.$this->checkC
94e0 6f 6d 70 6f 73 65 72 53 63 68 65 6d 61 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 omposerSchema());.}..if.($compos
9500 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f er).{.$config.=.$composer->getCo
9520 6e 66 69 67 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f nfig();.}.else.{.$config.=.Facto
9540 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 61 75 74 ry::createConfig();.}..if.($oaut
9560 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 h.=.$config->get('github-oauth')
9580 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 61 75 74 68 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d ).{.foreach.($oauth.as.$domain.=
95a0 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 >.$token).{.$output->write('Chec
95c0 6b 69 6e 67 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 6f 61 75 74 68 20 61 63 63 65 73 73 3a 20 27 king.'.$domain.'.oauth.access:.'
95e0 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 );.$this->outputResult($output,.
9600 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c $this->checkGithubOauth($domain,
9620 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 .$token));.}.}..$output->write('
9640 43 68 65 63 6b 69 6e 67 20 64 69 73 6b 20 66 72 65 65 20 73 70 61 63 65 3a 20 27 29 3b 0a 24 74 Checking.disk.free.space:.');.$t
9660 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 his->outputResult($output,.$this
9680 2d 3e 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 29 3b 0a 0a 24 6f 75 ->checkDiskSpace($config));..$ou
96a0 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 76 tput->write('Checking.composer.v
96c0 65 72 73 69 6f 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 ersion:.');.$this->outputResult(
96e0 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 29 3b $output,.$this->checkVersion());
9700 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 3b 0a 7d 0a 0a 70 72 69 ..return.$this->failures;.}..pri
9720 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 43 6f 6d 70 6f 73 65 72 53 63 68 65 6d vate.function.checkComposerSchem
9740 61 28 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 56 61 6c a().{.$validator.=.new.ConfigVal
9760 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 28 24 65 72 idator($this->getIO());.list($er
9780 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 rors,.$publishErrors,.$warnings)
97a0 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 46 61 63 74 6f 72 79 3a .=.$validator->validate(Factory:
97c0 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 29 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 :getComposerFile());..if.($error
97e0 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 7c 7c 20 24 77 61 72 6e 69 6e 67 73 s.||.$publishErrors.||.$warnings
9800 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d ).{.$messages.=.array(.'error'.=
9820 3e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 >.array_merge($errors,.$publishE
9840 72 72 6f 72 73 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a rrors),.'warning'.=>.$warnings,.
9860 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 );..$output.=.'';.foreach.($mess
9880 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 6f 72 65 61 ages.as.$style.=>.$msgs).{.forea
98a0 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 ch.($msgs.as.$msg).{.$output..=.
98c0 27 3c 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 '<'...$style...'>'...$msg...'</'
98e0 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 7d 0a 0a ...$style...'>'...PHP_EOL;.}.}..
9900 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e return.rtrim($output);.}..return
9920 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b .true;.}..private.function.check
9940 48 74 74 70 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c Http().{.$protocol.=.extension_l
9960 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 oaded('openssl').?.'https'.:.'ht
9980 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 tp';.try.{.$json.=.$this->rfs->g
99a0 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f etContents('packagist.org',.$pro
99c0 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 tocol...'://packagist.org/packag
99e0 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 es.json',.false);.}.catch.(\Exce
9a00 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ption.$e).{.return.$e;.}..return
9a20 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b .true;.}..private.function.check
9a40 48 74 74 70 50 72 6f 78 79 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 HttpProxy().{.$protocol.=.extens
9a60 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 ion_loaded('openssl').?.'https'.
9a80 3a 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 64 65 63 :.'http';.try.{.$json.=.json_dec
9aa0 6f 64 65 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 ode($this->rfs->getContents('pac
9ac0 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 kagist.org',.$protocol...'://pac
9ae0 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 kagist.org/packages.json',.false
9b00 29 2c 20 74 72 75 65 29 3b 0a 24 68 61 73 68 20 3d 20 72 65 73 65 74 28 24 6a 73 6f 6e 5b 27 70 ),.true);.$hash.=.reset($json['p
9b20 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 3b 0a 24 68 61 73 68 20 3d 20 24 68 61 rovider-includes']);.$hash.=.$ha
9b40 73 68 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 sh['sha256'];.$path.=.str_replac
9b60 65 28 27 25 68 61 73 68 25 27 2c 20 24 68 61 73 68 2c 20 6b 65 79 28 24 6a 73 6f 6e 5b 27 70 72 e('%hash%',.$hash,.key($json['pr
9b80 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 3b 0a 24 70 72 6f 76 69 64 65 72 20 3d ovider-includes']));.$provider.=
9ba0 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 .$this->rfs->getContents('packag
9bc0 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b 61 67 ist.org',.$protocol...'://packag
9be0 69 73 74 2e 6f 72 67 2f 27 2e 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 68 61 ist.org/'.$path,.false);..if.(ha
9c00 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 70 72 6f 76 69 64 65 72 29 20 21 3d 3d 20 24 68 61 73 sh('sha256',.$provider).!==.$has
9c20 68 29 20 7b 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 61 74 20 79 6f 75 72 20 h).{.return.'It.seems.that.your.
9c40 70 72 6f 78 79 20 69 73 20 6d 6f 64 69 66 79 69 6e 67 20 68 74 74 70 20 74 72 61 66 66 69 63 20 proxy.is.modifying.http.traffic.
9c60 6f 6e 20 74 68 65 20 66 6c 79 27 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 on.the.fly';.}.}.catch.(\Excepti
9c80 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 on.$e).{.return.$e;.}..return.tr
9ca0 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 ue;.}.........private.function.c
9cc0 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d heckHttpProxyFullUriRequestParam
9ce0 28 29 0a 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 ().{.$url.=.'http://packagist.or
9d00 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 g/packages.json';.try.{.$this->r
9d20 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c fs->getContents('packagist.org',
9d40 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 .$url,.false);.}.catch.(Transpor
9d60 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 tException.$e).{.try.{.$this->rf
9d80 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 s->getContents('packagist.org',.
9da0 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 $url,.false,.array('http'.=>.arr
9dc0 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 ay('request_fulluri'.=>.false)))
9de0 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 ;.}.catch.(TransportException.$e
9e00 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 72 74 20 74 68 65 ).{.return.'Unable.to.assert.the
9e20 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 65 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 20 .situation,.maybe.packagist.org.
9e40 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b is.down.('.$e->getMessage().')';
9e60 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 61 20 .}..return.'It.seems.there.is.a.
9e80 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 2c 20 problem.with.your.proxy.server,.
9ea0 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 try.setting.the."HTTP_PROXY_REQU
9ec0 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 61 6e 64 20 22 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 EST_FULLURI".and."HTTPS_PROXY_RE
9ee0 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 QUEST_FULLURI".environment.varia
9f00 62 6c 65 73 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 bles.to."false"';.}..return.true
9f20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 ;.}.........private.function.che
9f40 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 ckHttpsProxyFullUriRequestParam(
9f60 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 ).{.if.(!extension_loaded('opens
9f80 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6f 70 65 sl')).{.return.'You.need.the.ope
9fa0 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 74 68 69 nssl.extension.installed.for.thi
9fc0 73 20 63 68 65 63 6b 27 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 s.check';.}..$url.=.'https://api
9fe0 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 53 65 6c 64 61 65 6b 2f 6a 73 6f 6e 6c 69 .github.com/repos/Seldaek/jsonli
a000 6e 74 2f 7a 69 70 62 61 6c 6c 2f 31 2e 30 2e 30 27 3b 0a 74 72 79 20 7b 0a 24 72 66 63 52 65 73 nt/zipball/1.0.0';.try.{.$rfcRes
a020 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 61 ult.=.$this->rfs->getContents('a
a040 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 pi.github.com',.$url,.false);.}.
a060 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a catch.(TransportException.$e).{.
a080 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 61 try.{.$this->rfs->getContents('a
a0a0 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 pi.github.com',.$url,.false,.arr
a0c0 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 6c 6c ay('http'.=>.array('request_full
a0e0 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 uri'.=>.false)));.}.catch.(Trans
a100 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e 61 62 portException.$e).{.return.'Unab
a120 6c 65 20 74 6f 20 61 73 73 65 72 74 20 74 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 le.to.assert.the.situation,.mayb
a140 65 20 67 69 74 68 75 62 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 e.github.is.down.('.$e->getMessa
a160 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 ge().')';.}..return.'It.seems.th
a180 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f 78 79 ere.is.a.problem.with.your.proxy
a1a0 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 53 5f .server,.try.setting.the."HTTPS_
a1c0 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e 6d 65 PROXY_REQUEST_FULLURI".environme
a1e0 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 nt.variable.to."false"';.}..retu
a200 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 rn.true;.}..private.function.che
a220 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 0a 7b ckGithubOauth($domain,.$token).{
a240 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 .$this->getIO()->setAuthenticati
a260 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 on($domain,.$token,.'x-oauth-bas
a280 69 63 27 29 3b 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 64 6f 6d 61 69 6e 20 3d 3d 3d 20 27 ic');.try.{.$url.=.$domain.===.'
a2a0 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 27 2e 24 64 6f github.com'.?.'https://api.'.$do
a2c0 6d 61 69 6e 2e 27 2f 75 73 65 72 2f 72 65 70 6f 73 27 20 3a 20 27 68 74 74 70 73 3a 2f 2f 27 2e main.'/user/repos'.:.'https://'.
a2e0 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 76 33 2f 75 73 65 72 2f 72 65 70 6f 73 27 3b 0a 0a 72 $domain.'/api/v3/user/repos';..r
a300 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 64 eturn.$this->rfs->getContents($d
a320 6f 6d 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 20 3f 20 74 72 75 65 20 3a 20 27 55 6e omain,.$url,.false).?.true.:.'Un
a340 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 27 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 expected.error';.}.catch.(\Excep
a360 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 tion.$e).{.if.($e.instanceof.Tra
a380 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 nsportException.&&.$e->getCode()
a3a0 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 6e 67 3e 54 68 65 .===.401).{.return.'<warning>The
a3c0 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 73 65 65 .oauth.token.for.'.$domain.'.see
a3e0 6d 73 20 69 6e 76 61 6c 69 64 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 ms.invalid,.run."composer.config
a400 20 2d 2d 67 6c 6f 62 61 6c 20 2d 2d 75 6e 73 65 74 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 .--global.--unset.github-oauth.'
a420 2e 24 64 6f 6d 61 69 6e 2e 27 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f 77 61 72 6e 69 6e .$domain.'".to.remove.it</warnin
a440 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 g>';.}..return.$e;.}.}..private.
a460 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 function.checkDiskSpace($config)
a480 0a 7b 0a 24 6d 69 6e 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 69 66 .{.$minSpaceFree.=.1024*1024;.if
a4a0 20 28 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 .((($df.=.@disk_free_space($dir.
a4c0 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 61 6c =.$config->get('home'))).!==.fal
a4e0 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 28 28 se.&&.$df.<.$minSpaceFree).||.((
a500 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 $df.=.@disk_free_space($dir.=.$c
a520 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d 20 66 onfig->get('vendor-dir'))).!==.f
a540 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b alse.&&.$df.<.$minSpaceFree).).{
a560 0a 72 65 74 75 72 6e 20 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b 20 68 6f 73 74 69 6e 67 .return.'<error>The.disk.hosting
a580 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 0a 72 .'.$dir.'.is.full</error>';.}..r
a5a0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 eturn.true;.}..private.function.
a5c0 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 checkVersion().{.$protocol.=.ext
a5e0 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 ension_loaded('openssl').?.'http
a600 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 74 68 69 s'.:.'http';.$latest.=.trim($thi
a620 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 s->rfs->getContents('getcomposer
a640 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 .org',.$protocol...'://getcompos
a660 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 28 43 er.org/version',.false));..if.(C
a680 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 20 26 26 20 omposer::VERSION.!==.$latest.&&.
a6a0 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 27 34 36 65 35 35 35 34 31 65 Composer::VERSION.!==.'46e55541e
a6c0 37 33 32 35 36 62 38 61 35 61 63 62 39 64 62 61 34 65 31 61 66 36 32 30 39 64 66 64 66 35 33 27 73256b8a5acb9dba4e1af6209dfdf53'
a6e0 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 72 20 61 72 65 20 6e 6f ).{.return.'<warning>Your.are.no
a700 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 3c 2f 77 61 t.running.the.latest.version</wa
a720 72 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 rning>';.}..return.true;.}..priv
a740 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 52 65 73 75 6c 74 28 4f 75 74 70 75 74 ate.function.outputResult(Output
a760 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 65 73 75 6c 74 29 0a 7b 0a 69 66 Interface.$output,.$result).{.if
a780 20 28 74 72 75 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 .(true.===.$result).{.$output->w
a7a0 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4f 4b 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 riteln('<info>OK</info>');.}.els
a7c0 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 2b 2b 3b 0a 24 6f 75 74 70 75 74 2d 3e e.{.$this->failures++;.$output->
a7e0 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 46 41 49 4c 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a writeln('<error>FAIL</error>');.
a800 69 66 20 28 24 72 65 73 75 6c 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 45 78 63 65 70 74 69 6f if.($result.instanceof.\Exceptio
a820 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 27 2e 67 65 74 5f 63 6c n).{.$output->writeln('['.get_cl
a840 61 73 73 28 24 72 65 73 75 6c 74 29 2e 27 5d 20 27 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 ass($result).'].'.$result->getMe
a860 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 73 75 6c 74 29 20 7b 0a 24 ssage());.}.elseif.($result).{.$
a880 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 73 75 6c 74 29 3b 0a 7d 0a 7d 0a 7d 0a output->writeln($result);.}.}.}.
a8a0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 .private.function.checkPlatform(
a8c0 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 6f 75 74 20 3d 20 66 75 6e 63 74 69 6f ).{.$output.=.'';.$out.=.functio
a8e0 6e 20 28 24 6d 73 67 2c 20 24 73 74 79 6c 65 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 29 20 n.($msg,.$style).use.(&$output).
a900 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 27 3c 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 24 6d 73 67 {.$output..=.'<'.$style.'>'.$msg
a920 2e 27 3c 2f 27 2e 24 73 74 79 6c 65 2e 27 3e 27 3b 0a 7d 3b 0a 0a 0a 20 24 65 72 72 6f 72 73 20 .'</'.$style.'>';.};....$errors.
a940 3d 20 61 72 72 61 79 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a =.array();.$warnings.=.array();.
a960 0a 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 .$iniPath.=.php_ini_loaded_file(
a980 29 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 66 61 6c 73 65 3b 0a 69 );.$displayIniMessage.=.false;.i
a9a0 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 f.($iniPath).{.$iniMessage.=.PHP
a9c0 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 _EOL.PHP_EOL.'The.php.ini.used.b
a9e0 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 y.your.command-line.PHP.is:.'...
aa00 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d $iniPath;.}.else.{.$iniMessage.=
aa20 20 50 48 50 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 .PHP_EOL.PHP_EOL.'A.php.ini.file
aa40 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 .does.not.exist..You.will.have.t
aa60 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 3d o.create.one.';.}.$iniMessage..=
aa80 20 50 48 50 5f 45 4f 4c 2e 27 49 66 20 79 6f 75 20 63 61 6e 20 6e 6f 74 20 6d 6f 64 69 66 79 20 .PHP_EOL.'If.you.can.not.modify.
aaa0 74 68 65 20 69 6e 69 20 66 69 6c 65 2c 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 75 6e 20 60 the.ini.file,.you.can.also.run.`
aac0 70 68 70 20 2d 64 20 6f 70 74 69 6f 6e 3d 76 61 6c 75 65 60 20 74 6f 20 6d 6f 64 69 66 79 20 69 php.-d.option=value`.to.modify.i
aae0 6e 69 20 76 61 6c 75 65 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 ni.values.on.the.fly..You.can.us
ab00 65 20 2d 64 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 27 3b 0a 0a 69 66 20 28 21 69 6e 69 e.-d.multiple.times.';..if.(!ini
ab20 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f _get('allow_url_fopen')).{.$erro
ab40 72 73 5b 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a rs['allow_url_fopen'].=.true;.}.
ab60 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e .if.(version_compare(PHP_VERSION
ab80 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 68 70 27 ,.'5.3.2',.'<')).{.$errors['php'
aba0 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 ].=.PHP_VERSION;.}..if.(!isset($
abc0 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 errors['php']).&&.version_compar
abe0 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a e(PHP_VERSION,.'5.3.4',.'<')).{.
ac00 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a $warnings['php'].=.PHP_VERSION;.
ac20 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 }..if.(!extension_loaded('openss
ac40 6c 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 6f 70 65 6e 73 73 6c 27 5d 20 3d 20 74 72 l')).{.$warnings['openssl'].=.tr
ac60 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 61 70 63 2e 65 6e 61 62 6c 65 5f 63 ue;.}..if.(ini_get('apc.enable_c
ac80 6c 69 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 61 70 63 5f 63 6c 69 27 5d 20 3d 20 74 li')).{.$warnings['apc_cli'].=.t
aca0 72 75 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f rue;.}..ob_start();.phpinfo(INFO
acc0 5f 47 45 4e 45 52 41 4c 29 3b 0a 24 70 68 70 69 6e 66 6f 20 3d 20 6f 62 5f 67 65 74 5f 63 6c 65 _GENERAL);.$phpinfo.=.ob_get_cle
ace0 61 6e 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 6f 6e 66 69 67 75 72 65 an();.if.(preg_match('{Configure
ad00 20 43 6f 6d 6d 61 6e 64 28 3f 3a 20 2a 3c 2f 74 64 3e 3c 74 64 20 63 6c 61 73 73 3d 22 76 22 3e .Command(?:.*</td><td.class="v">
ad20 7c 20 2a 3d 3e 20 2a 29 28 2e 2a 3f 29 28 3f 3a 3c 2f 74 64 3e 7c 24 29 7d 6d 27 2c 20 24 70 68 |.*=>.*)(.*?)(?:</td>|$)}m',.$ph
ad40 70 69 6e 66 6f 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 66 69 67 75 72 65 20 3d 20 24 pinfo,.$match)).{.$configure.=.$
ad60 6d 61 74 63 68 5b 31 5d 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 match[1];..if.(false.!==.strpos(
ad80 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 27 29 $configure,.'--enable-sigchild')
ada0 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 73 69 67 63 68 69 6c 64 27 5d 20 3d 20 74 72 75 65 ).{.$warnings['sigchild'].=.true
adc0 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 ;.}..if.(false.!==.strpos($confi
ade0 67 75 72 65 2c 20 27 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 65 72 73 27 29 29 20 7b 0a gure,.'--with-curlwrappers')).{.
ae00 24 77 61 72 6e 69 6e 67 73 5b 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 5d 20 3d 20 74 72 75 65 $warnings['curlwrappers'].=.true
ae20 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 65 72 72 6f 72 73 29 29 20 7b 0a 66 6f ;.}.}..if.(!empty($errors)).{.fo
ae40 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 65 72 72 6f 72 20 3d 3e 20 24 63 75 72 reach.($errors.as.$error.=>.$cur
ae60 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 72 72 6f 72 29 20 7b 0a 63 61 73 65 20 27 rent).{.switch.($error).{.case.'
ae80 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 50 48 50 20 php':.$text.=.PHP_EOL."Your.PHP.
aea0 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 74 6f 6f 20 6f 6c 64 2c 20 79 6f 75 20 6d 75 73 ({$current}).is.too.old,.you.mus
aec0 74 20 75 70 67 72 61 64 65 20 74 6f 20 50 48 50 20 35 2e 33 2e 32 20 6f 72 20 68 69 67 68 65 72 t.upgrade.to.PHP.5.3.2.or.higher
aee0 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 .";.break;..case.'allow_url_fope
af00 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 61 6c 6c 6f 77 5f 75 n':.$text.=.PHP_EOL."The.allow_u
af20 72 6c 5f 66 6f 70 65 6e 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e rl_fopen.setting.is.incorrect.".
af40 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f PHP_EOL;.$text..=."Add.the.follo
af60 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 wing.to.the.end.of.your.`php.ini
af80 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 61 6c 6c 6f 77 `:".PHP_EOL;.$text..=."....allow
afa0 5f 75 72 6c 5f 66 6f 70 65 6e 20 3d 20 4f 6e 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 _url_fopen.=.On";.$displayIniMes
afc0 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 sage.=.true;.break;.}.$out($text
afe0 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 50 48 50 5f 45 4f ,.'error');.}..$output..=.PHP_EO
b000 4c 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 77 61 72 6e 69 6e 67 73 29 29 20 7b 0a 66 L;.}..if.(!empty($warnings)).{.f
b020 6f 72 65 61 63 68 20 28 24 77 61 72 6e 69 6e 67 73 20 61 73 20 24 77 61 72 6e 69 6e 67 20 3d 3e oreach.($warnings.as.$warning.=>
b040 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 77 61 72 6e 69 6e 67 29 20 7b .$current).{.switch.($warning).{
b060 0a 63 61 73 65 20 27 61 70 63 5f 63 6c 69 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c .case.'apc_cli':.$text.=.PHP_EOL
b080 2e 22 54 68 65 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 73 65 74 74 69 6e 67 20 69 73 20 ."The.apc.enable_cli.setting.is.
b0a0 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 incorrect.".PHP_EOL;.$text..=."A
b0c0 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 dd.the.following.to.the.end.of.y
b0e0 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e our.`php.ini`:".PHP_EOL;.$text..
b100 3d 20 22 20 20 20 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 3d 20 4f 66 66 22 3b 0a 24 64 =."....apc.enable_cli.=.Off";.$d
b120 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a isplayIniMessage.=.true;.break;.
b140 0a 63 61 73 65 20 27 73 69 67 63 68 69 6c 64 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f .case.'sigchild':.$text.=.PHP_EO
b160 4c 2e 22 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c L."PHP.was.compiled.with.--enabl
b180 65 2d 73 69 67 63 68 69 6c 64 20 77 68 69 63 68 20 63 61 6e 20 63 61 75 73 65 20 69 73 73 75 65 e-sigchild.which.can.cause.issue
b1a0 73 20 6f 6e 20 73 6f 6d 65 20 70 6c 61 74 66 6f 72 6d 73 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 s.on.some.platforms.".PHP_EOL;.$
b1c0 74 65 78 74 20 2e 3d 20 22 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 text..=."Recompile.it.without.th
b1e0 69 73 20 66 6c 61 67 20 69 66 20 70 6f 73 73 69 62 6c 65 2c 20 73 65 65 20 61 6c 73 6f 3a 22 2e is.flag.if.possible,.see.also:".
b200 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 68 74 74 70 73 3a 2f 2f 62 PHP_EOL;.$text..=."....https://b
b220 75 67 73 2e 70 68 70 2e 6e 65 74 2f 62 75 67 2e 70 68 70 3f 69 64 3d 32 32 39 39 39 22 3b 0a 62 ugs.php.net/bug.php?id=22999";.b
b240 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 3a 0a 24 74 65 78 reak;..case.'curlwrappers':.$tex
b260 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 t.=.PHP_EOL."PHP.was.compiled.wi
b280 74 68 20 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 65 72 73 20 77 68 69 63 68 20 77 69 6c th.--with-curlwrappers.which.wil
b2a0 6c 20 63 61 75 73 65 20 69 73 73 75 65 73 20 77 69 74 68 20 48 54 54 50 20 61 75 74 68 65 6e 74 l.cause.issues.with.HTTP.authent
b2c0 69 63 61 74 69 6f 6e 20 61 6e 64 20 47 69 74 48 75 62 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 ication.and.GitHub.".PHP_EOL;.$t
b2e0 65 78 74 20 2e 3d 20 22 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 69 ext..=."Recompile.it.without.thi
b300 73 20 66 6c 61 67 20 69 66 20 70 6f 73 73 69 62 6c 65 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 s.flag.if.possible";.break;..cas
b320 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 e.'openssl':.$text.=.PHP_EOL."Th
b340 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2c 20 e.openssl.extension.is.missing,.
b360 77 68 69 63 68 20 77 69 6c 6c 20 72 65 64 75 63 65 20 74 68 65 20 73 65 63 75 72 69 74 79 20 61 which.will.reduce.the.security.a
b380 6e 64 20 73 74 61 62 69 6c 69 74 79 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 22 2e 50 48 50 5f 45 nd.stability.of.Composer.".PHP_E
b3a0 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 66 20 70 6f 73 73 69 62 6c 65 20 79 6f 75 20 73 68 OL;.$text..=."If.possible.you.sh
b3c0 6f 75 6c 64 20 65 6e 61 62 6c 65 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 ould.enable.it.or.recompile.php.
b3e0 77 69 74 68 20 2d 2d 77 69 74 68 2d 6f 70 65 6e 73 73 6c 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 with.--with-openssl";.break;..ca
b400 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 se.'php':.$text.=.PHP_EOL."Your.
b420 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 71 75 69 74 65 20 6f 6c 64 2c 20 75 PHP.({$current}).is.quite.old,.u
b440 70 67 72 61 64 69 6e 67 20 74 6f 20 50 48 50 20 35 2e 33 2e 34 20 6f 72 20 68 69 67 68 65 72 20 pgrading.to.PHP.5.3.4.or.higher.
b460 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 is.recommended.".PHP_EOL;.$text.
b480 2e 3d 20 22 43 6f 6d 70 6f 73 65 72 20 77 6f 72 6b 73 20 77 69 74 68 20 35 2e 33 2e 32 2b 20 66 .=."Composer.works.with.5.3.2+.f
b4a0 6f 72 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2c 20 62 75 74 20 74 68 65 72 65 20 6d 69 67 68 74 20 or.most.people,.but.there.might.
b4c0 62 65 20 65 64 67 65 20 63 61 73 65 20 69 73 73 75 65 73 2e 22 3b 0a 62 72 65 61 6b 3b 0a 7d 0a be.edge.case.issues.";.break;.}.
b4e0 24 6f 75 74 28 24 74 65 78 74 2c 20 27 77 61 72 6e 69 6e 67 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 $out($text,.'warning');.}.}..if.
b500 28 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 28 24 69 6e 69 ($displayIniMessage).{.$out($ini
b520 4d 65 73 73 61 67 65 2c 20 27 77 61 72 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 Message,.'warning');.}..return.!
b540 24 77 61 72 6e 69 6e 67 73 20 26 26 20 21 24 65 72 72 6f 72 73 20 3f 20 74 72 75 65 20 3a 20 24 $warnings.&&.!$errors.?.true.:.$
b560 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d output;.}.}.<?php............nam
b580 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Command;..use.Co
b5a0 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c mposer\Factory;.use.Composer\IO\
b5c0 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 IOInterface;.use.Composer\Depend
b5e0 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c encyResolver\Pool;.use.Composer\
b600 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f Package\LinkConstraint\VersionCo
b620 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nstraint;.use.Composer\Repositor
b640 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 53 79 6d 66 y\CompositeRepository;..use.Symf
b660 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
b680 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 tArgument;.use.Symfony\Component
b6a0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
b6c0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
b6e0 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\InputOption;.use.Symfony\Comp
b700 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
b720 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 face;.......class.ArchiveCommand
b740 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .extends.Command.{.protected.fun
b760 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e ction.configure().{.$this.->setN
b780 61 6d 65 28 27 61 72 63 68 69 76 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 ame('archive').->setDescription(
b7a0 27 43 72 65 61 74 65 20 61 6e 20 61 72 63 68 69 76 65 20 6f 66 20 74 68 69 73 20 63 6f 6d 70 6f 'Create.an.archive.of.this.compo
b7c0 73 65 72 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 ser.package').->setDefinition(ar
b7e0 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 ray(.new.InputArgument('package'
b800 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 ,.InputArgument::OPTIONAL,.'The.
b820 70 61 63 6b 61 67 65 20 74 6f 20 61 72 63 68 69 76 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 package.to.archive.instead.of.th
b840 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 e.current.project'),.new.InputAr
b860 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a gument('version',.InputArgument:
b880 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 20 :OPTIONAL,.'The.package.version.
b8a0 74 6f 20 61 72 63 68 69 76 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 to.archive'),.new.InputOption('f
b8c0 6f 72 6d 61 74 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f ormat',.'f',.InputOption::VALUE_
b8e0 52 45 51 55 49 52 45 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 69 REQUIRED,.'Format.of.the.resulti
b900 6e 67 20 61 72 63 68 69 76 65 3a 20 74 61 72 20 6f 72 20 7a 69 70 27 2c 20 27 74 61 72 27 29 2c ng.archive:.tar.or.zip',.'tar'),
b920 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 69 72 27 2c 20 66 61 6c 73 65 2c 20 49 .new.InputOption('dir',.false,.I
b940 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 57 72 69 nputOption::VALUE_REQUIRED,.'Wri
b960 74 65 20 74 68 65 20 61 72 63 68 69 76 65 20 74 6f 20 74 68 69 73 20 64 69 72 65 63 74 6f 72 79 te.the.archive.to.this.directory
b980 27 2c 20 27 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 ',.'.'),.)).->setHelp(<<<EOT.The
b9a0 20 3c 69 6e 66 6f 3e 61 72 63 68 69 76 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 .<info>archive</info>.command.cr
b9c0 65 61 74 65 73 20 61 6e 20 61 72 63 68 69 76 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 eates.an.archive.of.the.specifie
b9e0 64 20 66 6f 72 6d 61 74 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 73 20 61 6e d.format.containing.the.files.an
ba00 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 66 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 70 72 d.directories.of.the.Composer.pr
ba20 6f 6a 65 63 74 20 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 0a 70 61 63 6b 61 67 65 20 69 oject.or.the.specified.package.i
ba40 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 77 72 69 74 n.the.specified.version.and.writ
ba60 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 64 69 72 65 63 74 6f 72 79 es.it.to.the.specified.directory
ba80 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 72 63 68 69 ...<info>php.composer.phar.archi
baa0 76 65 20 5b 2d 2d 66 6f 72 6d 61 74 3d 7a 69 70 5d 20 5b 2d 2d 64 69 72 3d 2f 66 6f 6f 5d 20 5b ve.[--format=zip].[--dir=/foo].[
bac0 70 61 63 6b 61 67 65 20 5b 76 65 72 73 69 6f 6e 5d 5d 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 package.[version]]</info>..EOT.)
bae0 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .;.}..protected.function.execute
bb00 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
bb20 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d terface.$output).{.return.$this-
bb40 3e 61 72 63 68 69 76 65 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 74 >archive(.$this->getIO(),.$input
bb60 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 ->getArgument('package'),.$input
bb80 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 ->getArgument('version'),.$input
bba0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 ->getOption('format'),.$input->g
bbc0 65 74 4f 70 74 69 6f 6e 28 27 64 69 72 27 29 0a 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 etOption('dir').);.}..protected.
bbe0 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f function.archive(IOInterface.$io
bc00 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 ,.$packageName.=.null,.$version.
bc20 3d 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 20 3d 20 27 74 61 72 27 2c 20 24 64 65 73 74 20 3d =.null,.$format.=.'tar',.$dest.=
bc40 20 27 2e 27 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 .'.').{.$config.=.Factory::creat
bc60 65 43 6f 6e 66 69 67 28 29 3b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 eConfig();.$factory.=.new.Factor
bc80 79 3b 0a 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e y;.$downloadManager.=.$factory->
bca0 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 createDownloadManager($io,.$conf
bcc0 69 67 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d ig);.$archiveManager.=.$factory-
bce0 3e 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 2c 20 24 >createArchiveManager($config,.$
bd00 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e downloadManager);..if.($packageN
bd20 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 ame).{.$package.=.$this->selectP
bd40 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 ackage($io,.$packageName,.$versi
bd60 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b on);..if.(!$package).{.return.1;
bd80 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 .}.}.else.{.$package.=.$this->ge
bda0 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 0a 24 69 tComposer()->getPackage();.}..$i
bdc0 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 69 6e 67 20 74 68 65 20 61 72 63 o->write('<info>Creating.the.arc
bde0 68 69 76 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2d hive.</info>');.$archiveManager-
be00 3e 61 72 63 68 69 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 64 65 73 >archive($package,.$format,.$des
be20 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 t);..return.0;.}..protected.func
be40 74 69 6f 6e 20 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 tion.selectPackage(IOInterface.$
be60 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c io,.$packageName,.$version.=.nul
be80 6c 29 0a 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 l).{.$io->write('<info>Searching
bea0 20 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 .for.the.specified.package.</inf
bec0 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 o>');..if.($composer.=.$this->ge
bee0 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d tComposer(false)).{.$localRepo.=
bf00 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 .$composer->getRepositoryManager
bf20 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 ()->getLocalRepository();.$repos
bf40 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 .=.new.CompositeRepository(array
bf60 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f _merge(array($localRepo),.$compo
bf80 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 ser->getRepositoryManager()->get
bfa0 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 Repositories()));.}.else.{.$defa
bfc0 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c ultRepos.=.Factory::createDefaul
bfe0 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 tRepositories($this->getIO());.$
c000 69 6f 2d 3e 77 72 69 74 65 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e io->write('No.composer.json.foun
c020 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 61 72 d.in.the.current.directory,.sear
c040 63 68 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 ching.packages.from.'...implode(
c060 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 ',.',.array_keys($defaultRepos))
c080 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 );.$repos.=.new.CompositeReposit
c0a0 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e ory($defaultRepos);.}..$pool.=.n
c0c0 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 ew.Pool();.$pool->addRepository(
c0e0 24 72 65 70 6f 73 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 24 76 65 72 73 69 6f $repos);..$constraint.=.($versio
c100 6e 29 20 3f 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c n).?.new.VersionConstraint('>=',
c120 20 24 76 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 .$version).:.null;.$packages.=.$
c140 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c pool->whatProvides($packageName,
c160 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 63 6b 61 .$constraint);..if.(count($packa
c180 67 65 73 29 20 3e 20 31 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 73 ges).>.1).{.$package.=.$packages
c1a0 5b 30 5d 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 6d 75 6c [0];.$io->write('<info>Found.mul
c1c0 74 69 70 6c 65 20 6d 61 74 63 68 65 73 2c 20 73 65 6c 65 63 74 65 64 20 27 2e 24 70 61 63 6b 61 tiple.matches,.selected.'.$packa
c1e0 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 ge->getPrettyString().'.</info>'
c200 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 41 6c 74 65 72 6e 61 74 69 76 65 73 20 77 65 72 65 );.$io->write('Alternatives.were
c220 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 .'.implode(',.',.array_map(funct
c240 69 6f 6e 20 28 24 70 29 20 7b 20 72 65 74 75 72 6e 20 24 70 2d 3e 67 65 74 50 72 65 74 74 79 53 ion.($p).{.return.$p->getPrettyS
c260 74 72 69 6e 67 28 29 3b 20 7d 2c 20 24 70 61 63 6b 61 67 65 73 29 29 2e 27 2e 27 29 3b 0a 24 69 tring();.},.$packages)).'.');.$i
c280 6f 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 50 6c 65 61 73 65 20 75 73 65 20 61 20 o->write('<comment>Please.use.a.
c2a0 6d 6f 72 65 20 73 70 65 63 69 66 69 63 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 70 69 63 6b more.specific.constraint.to.pick
c2c0 20 61 20 64 69 66 66 65 72 65 6e 74 20 70 61 63 6b 61 67 65 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 .a.different.package.</comment>'
c2e0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 70 61 63 6b 61 );.}.elseif.($packages).{.$packa
c300 67 65 20 3d 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c ge.=.$packages[0];.$io->write('<
c320 69 6e 66 6f 3e 46 6f 75 6e 64 20 61 6e 20 65 78 61 63 74 20 6d 61 74 63 68 20 27 2e 24 70 61 63 info>Found.an.exact.match.'.$pac
c340 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f kage->getPrettyString().'.</info
c360 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 >');.}.else.{.$io->write('<error
c380 3e 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6d 61 74 63 68 69 >Could.not.find.a.package.matchi
c3a0 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a ng.'.$packageName.'.</error>');.
c3c0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 .return.false;.}..return.$packag
c3e0 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 e;.}.}.<?php............namespac
c400 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Command;..use.Compose
c420 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 r\Composer;.use.Composer\Console
c440 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f \Application;.use.Composer\IO\IO
c460 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 Interface;.use.Composer\IO\NullI
c480 4f 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 O;.use.Symfony\Component\Console
c4a0 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 3b \Command\Command.as.BaseCommand;
c4c0 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 20 65 ........abstract.class.Command.e
c4e0 78 74 65 6e 64 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 xtends.BaseCommand.{....private.
c500 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a $composer;.....private.$io;.....
c520 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 ...public.function.getComposer($
c540 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 required.=.true,.$disablePlugins
c560 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .=.false).{.if.(null.===.$this->
c580 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 composer).{.$application.=.$this
c5a0 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 ->getApplication();.if.($applica
c5c0 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a tion.instanceof.Application).{..
c5e0 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e $this->composer.=.$application->
c600 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 2c 20 24 64 69 73 61 62 6c 65 50 getComposer($required,.$disableP
c620 6c 75 67 69 6e 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a lugins);.}.elseif.($required).{.
c640 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f throw.new.\RuntimeException(.'Co
c660 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 uld.not.create.a.Composer\Compos
c680 65 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 6a 65 63 74 20 27 2e 0a er.instance,.you.must.inject.'..
c6a0 27 6f 6e 65 20 69 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 75 73 65 64 'one.if.this.command.is.not.used
c6c0 20 77 69 74 68 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 .with.a.Composer\Console\Applica
c6e0 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 27 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 tion.instance'.);.}.}..return.$t
c700 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->composer;.}.....public.func
c720 74 69 6f 6e 20 73 65 74 43 6f 6d 70 6f 73 65 72 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f tion.setComposer(Composer.$compo
c740 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 ser).{.$this->composer.=.$compos
c760 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 er;.}.....public.function.getIO(
c780 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f 29 20 7b 0a 24 61 ).{.if.(null.===.$this->io).{.$a
c7a0 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 pplication.=.$this->getApplicati
c7c0 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f on();.if.($application.instanceo
c7e0 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 61 f.Application).{..$this->io.=.$a
c800 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 pplication->getIO();.}.else.{.$t
c820 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 his->io.=.new.NullIO();.}.}..ret
c840 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this->io;.}.....public.func
c860 74 69 6f 6e 20 73 65 74 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 tion.setIO(IOInterface.$io).{.$t
c880 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a his->io.=.$io;.}.}.<?php........
c8a0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
c8c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 .use.Composer\Config;.use.Compos
c8e0 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c er\Factory;.use.Composer\Install
c900 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 72 6f 6a 65 er;.use.Composer\Installer\Proje
c920 63 74 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c ctInstaller;.use.Composer\Instal
c940 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d ler\InstallationManager;.use.Com
c960 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 poser\IO\IOInterface;.use.Compos
c980 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 er\Package\BasePackage;.use.Comp
c9a0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 oser\Package\LinkConstraint\Vers
c9c0 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 ionConstraint;.use.Composer\Depe
c9e0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ndencyResolver\Pool;.use.Compose
ca00 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 r\DependencyResolver\Operation\I
ca20 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 nstallOperation;.use.Composer\Re
ca40 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 pository\ComposerRepository;.use
ca60 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 .Composer\Repository\CompositeRe
ca80 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 pository;.use.Composer\Repositor
caa0 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 y\FilesystemRepository;.use.Comp
cac0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 oser\Repository\InstalledFilesys
cae0 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 temRepository;.use.Composer\Scri
cb00 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d pt\ScriptEvents;.use.Symfony\Com
cb20 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 ponent\Console\Input\InputArgume
cb40 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c nt;.use.Symfony\Component\Consol
cb60 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
cb80 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
cba0 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 tOption;.use.Symfony\Component\C
cbc0 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 onsole\Output\OutputInterface;.u
cbe0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 se.Symfony\Component\Finder\Find
cc00 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a er;.use.Composer\Json\JsonFile;.
cc20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f use.Composer\Config\JsonConfigSo
cc40 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 urce;.use.Composer\Util\Filesyst
cc60 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 em;.use.Composer\Util\RemoteFile
cc80 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 system;.use.Composer\Package\Ver
cca0 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 sion\VersionParser;..........cla
ccc0 73 73 20 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ss.CreateProjectCommand.extends.
cce0 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e Command.{.protected.function.con
cd00 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 figure().{.$this.->setName('crea
cd20 74 65 2d 70 72 6f 6a 65 63 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 te-project').->setDescription('C
cd40 72 65 61 74 65 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 reate.new.project.from.a.package
cd60 20 69 6e 74 6f 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 .into.given.directory.').->setDe
cd80 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e finition(array(.new.InputArgumen
cda0 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 t('package',.InputArgument::OPTI
cdc0 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c ONAL,.'Package.name.to.be.instal
cde0 6c 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 led'),.new.InputArgument('direct
ce00 6f 72 79 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 ory',.InputArgument::OPTIONAL,.'
ce20 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 Directory.where.the.files.should
ce40 20 62 65 20 63 72 65 61 74 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 .be.created'),.new.InputArgument
ce60 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f ('version',.InputArgument::OPTIO
ce80 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 NAL,.'Version,.will.defaults.to.
cea0 6c 61 74 65 73 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 latest'),.new.InputOption('stabi
cec0 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 lity',.'s',.InputOption::VALUE_R
cee0 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f EQUIRED,.'Minimum-stability.allo
cf00 77 65 64 20 28 75 6e 6c 65 73 73 20 61 20 76 65 72 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 wed.(unless.a.version.is.specifi
cf20 65 64 29 2e 27 2c 20 27 73 74 61 62 6c 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f ed).',.'stable'),.new.InputOptio
cf40 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 n('prefer-source',.null,.InputOp
cf60 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c tion::VALUE_NONE,.'Forces.instal
cf80 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e lation.from.package.sources.when
cfa0 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 .possible,.including.VCS.informa
cfc0 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 tion.'),.new.InputOption('prefer
cfe0 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 -dist',.null,.InputOption::VALUE
d000 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d _NONE,.'Forces.installation.from
d020 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 .package.dist.even.for.dev.versi
d040 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 ons.'),.new.InputOption('reposit
d060 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c ory-url',.null,.InputOption::VAL
d080 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 72 UE_REQUIRED,.'Pick.a.different.r
d0a0 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 70 61 epository.url.to.look.for.the.pa
d0c0 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c ckage.'),.new.InputOption('dev',
d0e0 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 .null,.InputOption::VALUE_NONE,.
d100 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 'Enables.installation.of.require
d120 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c -dev.packages.(enabled.by.defaul
d140 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 2e 27 29 2c 0a 6e 65 77 20 t,.only.present.for.BC).'),.new.
d160 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 InputOption('no-dev',.null,.Inpu
d180 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 69 tOption::VALUE_NONE,.'Disables.i
d1a0 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 nstallation.of.require-dev.packa
d1c0 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 ges.'),.new.InputOption('no-plug
d1e0 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ins',.null,.InputOption::VALUE_N
d200 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 62 6c 65 20 70 6c 75 67 69 6e 73 ONE,.'Whether.to.disable.plugins
d220 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d .'),.new.InputOption('no-custom-
d240 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a installers',.null,.InputOption::
d260 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d VALUE_NONE,.'DEPRECATED:.Use.no-
d280 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 plugins.instead.'),.new.InputOpt
d2a0 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 ion('no-scripts',.null,.InputOpt
d2c0 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 ion::VALUE_NONE,.'Whether.to.pre
d2e0 76 65 6e 74 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 73 63 vent.execution.of.all.defined.sc
d300 72 69 70 74 73 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 ripts.in.the.root.package.'),.ne
d320 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c w.InputOption('no-progress',.nul
d340 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 l,.InputOption::VALUE_NONE,.'Do.
d360 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c not.output.download.progress.'),
d380 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 2c 20 6e 75 6c .new.InputOption('keep-vcs',.nul
d3a0 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 l,.InputOption::VALUE_NONE,.'Whe
d3c0 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 74 69 6f 6e 20 76 63 73 20 66 6f 6c ther.to.prevent.deletion.vcs.fol
d3e0 64 65 72 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 der.'),.new.InputOption('no-inst
d400 61 6c 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e all',.null,.InputOption::VALUE_N
d420 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 20 69 6e 73 74 61 6c 6c 61 74 69 ONE,.'Whether.to.skip.installati
d440 6f 6e 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 on.of.the.package.dependencies.'
d460 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f ),.)).->setHelp(<<<EOT.The.<info
d480 3e 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 >create-project</info>.command.c
d4a0 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 67 69 76 65 reates.a.new.project.from.a.give
d4c0 6e 0a 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e 20 n.package.into.a.new.directory..
d4e0 49 66 20 65 78 65 63 75 74 65 64 20 77 69 74 68 6f 75 74 20 70 61 72 61 6d 73 20 61 6e 64 20 69 If.executed.without.params.and.i
d500 6e 20 61 20 64 69 72 65 63 74 6f 72 79 0a 77 69 74 68 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 n.a.directory.with.a.composer.js
d520 6f 6e 20 66 69 6c 65 20 69 74 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 61 63 6b 61 67 65 73 on.file.it.installs.the.packages
d540 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 2e 0a 0a 59 6f 75 20 63 .for.the.current.project...You.c
d560 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 6f 6f 74 73 74 72 61 70 an.use.this.command.to.bootstrap
d580 20 6e 65 77 20 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 20 61 20 63 6c 65 61 6e 0a 76 .new.projects.or.setup.a.clean.v
d5a0 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 ersion-controlled.installation.f
d5c0 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 0a 0a or.developers.of.your.project...
d5e0 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 72 65 61 74 65 2d 70 <info>php.composer.phar.create-p
d600 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 74 61 72 67 65 74 2d 64 69 72 roject.vendor/project.target-dir
d620 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e ectory.[version]</info>..You.can
d640 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 77 69 74 68 20 74 .also.specify.the.version.with.t
d660 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 3d 20 6f 72 20 3a 20 61 73 20 he.package.name.using.=.or.:.as.
d680 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 75 6e 73 74 61 62 6c 65 20 separator...To.install.unstable.
d6a0 70 61 63 6b 61 67 65 73 2c 20 65 69 74 68 65 72 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 packages,.either.specify.the.ver
d6c0 73 69 6f 6e 20 79 6f 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 65 20 74 68 65 0a 2d 2d 73 74 61 62 sion.you.want,.or.use.the.--stab
d6e0 69 6c 69 74 79 3d 64 65 76 20 28 77 68 65 72 65 20 64 65 76 20 63 61 6e 20 62 65 20 6f 6e 65 20 ility=dev.(where.dev.can.be.one.
d700 6f 66 20 52 43 2c 20 62 65 74 61 2c 20 61 6c 70 68 61 20 6f 72 20 64 65 76 29 2e 0a 0a 54 6f 20 of.RC,.beta,.alpha.or.dev)...To.
d720 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 6c 65 20 76 65 72 73 69 setup.a.developer.workable.versi
d740 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 6a 65 63 74 on.you.should.create.the.project
d760 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f 6c 6c 65 64 20 63 6f 64 .using.the.source.controlled.cod
d780 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 70 72 65 66 e.by.appending.the.<info>'--pref
d7a0 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 er-source'</info>.flag...To.inst
d7c0 61 6c 6c 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f 73 all.a.package.from.another.repos
d7e0 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f 6e 65 20 79 6f 75 0a 63 itory.than.the.default.one.you.c
d800 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 6f 73 69 74 6f 72 79 2d an.pass.the.<info>'--repository-
d820 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 79 2e 6f 72 67 27 3c 2f 69 6e url=http://myrepository.org'</in
d840 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 fo>.flag...EOT.).;.}..protected.
d860 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 function.execute(InputInterface.
d880 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 $input,.OutputInterface.$output)
d8a0 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 .{.$config.=.Factory::createConf
d8c0 69 67 28 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 ig();..$preferSource.=.false;.$p
d8e0 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 referDist.=.false;.switch.($conf
d900 69 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a ig->get('preferred-install')).{.
d920 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 case.'source':.$preferSource.=.t
d940 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 rue;.break;.case.'dist':.$prefer
d960 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a Dist.=.true;.break;.case.'auto':
d980 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d .default:...break;.}.if.($input-
d9a0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 >getOption('prefer-source').||.$
d9c0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 input->getOption('prefer-dist'))
d9e0 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 .{.$preferSource.=.$input->getOp
da00 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 tion('prefer-source');.$preferDi
da20 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 st.=.$input->getOption('prefer-d
da40 69 73 74 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 ist');.}..if.($input->getOption(
da60 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 6f 75 74 70 'no-custom-installers')).{.$outp
da80 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 ut->writeln('<warning>You.are.us
daa0 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 ing.the.deprecated.option."no-cu
dac0 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e stom-installers"..Use."no-plugin
dae0 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d s".instead.</warning>');.$input-
db00 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a >setOption('no-plugins',.true);.
db20 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 }..return.$this->installProject(
db40 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 63 6f 6e 66 69 67 2c 0a 24 69 6e 70 75 74 .$this->getIO(),.$config,.$input
db60 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 ->getArgument('package'),.$input
db80 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 29 2c 0a 24 69 6e 70 ->getArgument('directory'),.$inp
dba0 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 ut->getArgument('version'),.$inp
dbc0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 2c 0a 24 70 72 65 ut->getOption('stability'),.$pre
dbe0 66 65 72 53 6f 75 72 63 65 2c 0a 24 70 72 65 66 65 72 44 69 73 74 2c 0a 21 24 69 6e 70 75 74 2d ferSource,.$preferDist,.!$input-
dc00 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 >getOption('no-dev'),.$input->ge
dc20 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 2c 0a 24 69 6e 70 75 tOption('repository-url'),.$inpu
dc40 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 2c 0a 24 69 6e 70 t->getOption('no-plugins'),.$inp
dc60 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 2c 0a 24 69 6e ut->getOption('no-scripts'),.$in
dc80 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 2c 0a 24 69 6e 70 put->getOption('keep-vcs'),.$inp
dca0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 2c 0a 24 69 ut->getOption('no-progress'),.$i
dcc0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 29 0a 29 3b nput->getOption('no-install').);
dce0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 .}..public.function.installProje
dd00 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 ct(IOInterface.$io,.$config,.$pa
dd20 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 ckageName,.$directory.=.null,.$p
dd40 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 61 62 69 6c 69 74 79 ackageVersion.=.null,.$stability
dd60 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c .=.'stable',.$preferSource.=.fal
dd80 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c se,.$preferDist.=.false,.$instal
dda0 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 lDevPackages.=.false,.$repositor
ddc0 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 yUrl.=.null,.$disablePlugins.=.f
dde0 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 56 alse,.$noScripts.=.false,.$keepV
de00 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 2c cs.=.false,.$noProgress.=.false,
de20 20 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6f 6c 64 43 77 64 20 3d .$noInstall.=.false).{.$oldCwd.=
de40 20 67 65 74 63 77 64 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 21 3d 3d .getcwd();..if.($packageName.!==
de60 20 6e 75 6c 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 24 74 68 .null).{.$installedFromVcs.=.$th
de80 69 73 2d 3e 69 6e 73 74 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 63 6f 6e is->installRootPackage($io,.$con
dea0 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 2c 20 24 fig,.$packageName,.$directory,.$
dec0 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 2c 20 24 70 72 65 packageVersion,.$stability,.$pre
dee0 66 65 72 53 6f 75 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 2c 20 24 69 6e 73 74 61 6c 6c ferSource,.$preferDist,.$install
df00 44 65 76 50 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 24 64 69 DevPackages,.$repositoryUrl,.$di
df20 73 61 62 6c 65 50 6c 75 67 69 6e 73 2c 20 24 6e 6f 53 63 72 69 70 74 73 2c 20 24 6b 65 65 70 56 sablePlugins,.$noScripts,.$keepV
df40 63 73 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 cs,.$noProgress);.}.else.{.$inst
df60 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 alledFromVcs.=.false;.}..$compos
df80 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 6e 75 6c 6c 2c 20 er.=.Factory::create($io,.null,.
dfa0 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 $disablePlugins);.$fs.=.new.File
dfc0 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 system();..if.($noScripts.===.fa
dfe0 6c 73 65 29 20 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 lse).{...$composer->getEventDisp
e000 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 atcher()->dispatchCommandEvent(S
e020 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 criptEvents::POST_ROOT_PACKAGE_I
e040 4e 53 54 41 4c 4c 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a NSTALL,.$installDevPackages);.}.
e060 0a 0a 20 69 66 20 28 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 ...if.($noInstall.===.false).{.$
e080 69 6e 73 74 61 6c 6c 65 72 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 installer.=.Installer::create($i
e0a0 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 65 74 50 72 o,.$composer);.$installer->setPr
e0c0 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 eferSource($preferSource).->setP
e0e0 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d referDist($preferDist).->setDevM
e100 6f 64 65 28 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 52 75 ode($installDevPackages).->setRu
e120 6e 53 63 72 69 70 74 73 28 20 21 20 24 6e 6f 53 63 72 69 70 74 73 29 3b 0a 0a 69 66 20 28 24 64 nScripts(.!.$noScripts);..if.($d
e140 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 64 69 73 isablePlugins).{.$installer->dis
e160 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 ablePlugins();.}..if.(!$installe
e180 72 2d 3e 72 75 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 68 61 73 56 r->run()).{.return.1;.}.}..$hasV
e1a0 63 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b 0a 69 66 20 28 21 24 6b 65 cs.=.$installedFromVcs;.if.(!$ke
e1c0 65 70 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 0a 26 26 20 28 0a epVcs.&&.$installedFromVcs.&&.(.
e1e0 21 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7c 7c 20 24 69 6f 2d 3e 61 73 !$io->isInteractive().||.$io->as
e200 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 6f 3e 44 6f 20 79 6f 75 20 77 61 6e 74 kConfirmation('<info>Do.you.want
e220 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 56 43 53 20 28 2e 67 69 .to.remove.the.existing.VCS.(.gi
e240 74 2c 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d t,..svn..).history?</info>.[<com
e260 6d 65 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 2c 20 74 72 75 65 29 0a 29 0a ment>Y,n</comment>]?.',.true).).
e280 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 28 29 3b 0a 24 66 69 6e ).{.$finder.=.new.Finder();.$fin
e2a0 64 65 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 63 74 6f 72 69 65 73 28 29 2d 3e 69 6e der->depth(0)->directories()->in
e2c0 28 67 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 2d 3e 69 67 (getcwd())->ignoreVCS(false)->ig
e2e0 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 noreDotFiles(false);.foreach.(ar
e300 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 ray('.svn',.'_svn',.'CVS',.'_dar
e320 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 cs',.'.arch-params',.'.monotone'
e340 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 20 61 73 20 24 76 63 73 ,.'.bzr',.'.git',.'.hg').as.$vcs
e360 4e 61 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 6d 65 28 24 76 63 73 4e 61 6d 65 29 3b Name).{.$finder->name($vcsName);
e380 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 69 72 73 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 .}..try.{.$dirs.=.iterator_to_ar
e3a0 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 66 69 6e 64 65 72 29 3b 0a 66 6f ray($finder);.unset($finder);.fo
e3c0 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 24 66 73 reach.($dirs.as.$dir).{.if.(!$fs
e3e0 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 ->removeDirectory($dir)).{.throw
e400 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f .new.\RuntimeException('Could.no
e420 74 20 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c t.remove.'.$dir);.}.}.}.catch.(\
e440 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 Exception.$e).{.$io->write('<err
e460 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 20 77 68 69 6c 65 20 72 65 6d 6f 76 or>An.error.occurred.while.remov
e480 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 74 61 64 61 74 61 3a 20 27 2e 24 65 2d 3e 67 65 74 4d ing.the.VCS.metadata:.'.$e->getM
e4a0 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 68 61 73 56 63 73 essage().'</error>');.}..$hasVcs
e4c0 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 68 61 73 56 63 73 29 20 7b 0a 24 .=.false;.}....if.(!$hasVcs).{.$
e4e0 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 package.=.$composer->getPackage(
e500 29 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 );.$configSource.=.new.JsonConfi
e520 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a gSource(new.JsonFile('composer.j
e540 73 6f 6e 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 son'));.foreach.(BasePackage::$s
e560 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6d upportedLinkTypes.as.$type.=>.$m
e580 65 74 61 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 eta).{.foreach.($package->{'get'
e5a0 2e 24 6d 65 74 61 5b 27 6d 65 74 68 6f 64 27 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a .$meta['method']}().as.$link).{.
e5c0 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 if.($link->getPrettyConstraint()
e5e0 20 3d 3d 3d 20 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 29 20 7b 0a 24 63 6f 6e 66 69 67 53 6f .===.'self.version').{.$configSo
e600 75 72 63 65 2d 3e 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 urce->addLink($type,.$link->getT
e620 61 72 67 65 74 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 arget(),.$package->getPrettyVers
e640 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 ion());.}.}.}.}..if.($noScripts.
e660 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 ===.false).{...$composer->getEve
e680 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 ntDispatcher()->dispatchCommandE
e6a0 76 65 6e 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 vent(ScriptEvents::POST_CREATE_P
e6c0 52 4f 4a 45 43 54 5f 43 4d 44 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 ROJECT_CMD,.$installDevPackages)
e6e0 3b 0a 7d 0a 0a 63 68 64 69 72 28 24 6f 6c 64 43 77 64 29 3b 0a 24 76 65 6e 64 6f 72 43 6f 6d 70 ;.}..chdir($oldCwd);.$vendorComp
e700 6f 73 65 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 oserDir.=.$composer->getConfig()
e720 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 27 3b ->get('vendor-dir').'/composer';
e740 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 20 .if.(is_dir($vendorComposerDir).
e760 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 &&.$fs->isDirEmpty($vendorCompos
e780 65 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 erDir)).{.@rmdir($vendorComposer
e7a0 44 69 72 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 Dir);.$vendorDir.=.$composer->ge
e7c0 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 3b 0a 69 66 tConfig()->get('vendor-dir');.if
e7e0 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 20 26 26 20 24 66 73 2d 3e 69 73 44 .(is_dir($vendorDir).&&.$fs->isD
e800 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 irEmpty($vendorDir)).{.@rmdir($v
e820 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f endorDir);.}.}..return.0;.}..pro
e840 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 tected.function.installRootPacka
e860 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 ge(IOInterface.$io,.$config,.$pa
e880 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 ckageName,.$directory.=.null,.$p
e8a0 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 61 62 69 6c 69 74 79 ackageVersion.=.null,.$stability
e8c0 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c .=.'stable',.$preferSource.=.fal
e8e0 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c se,.$preferDist.=.false,.$instal
e900 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 lDevPackages.=.false,.$repositor
e920 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 yUrl.=.null,.$disablePlugins.=.f
e940 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 56 alse,.$noScripts.=.false,.$keepV
e960 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 29 cs.=.false,.$noProgress.=.false)
e980 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 .{.$stability.=.strtolower($stab
e9a0 69 6c 69 74 79 29 3b 0a 69 66 20 28 24 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 29 ility);.if.($stability.===.'rc')
e9c0 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 27 52 43 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 .{.$stability.=.'RC';.}.if.(!iss
e9e0 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 et(BasePackage::$stabilities[$st
ea00 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ability])).{.throw.new.\InvalidA
ea20 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 73 74 61 62 69 6c rgumentException('Invalid.stabil
ea40 69 74 79 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 73 74 61 62 69 6c 69 74 79 2e 27 29 2c 20 6d ity.provided.('.$stability.'),.m
ea60 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 ust.be.one.of:.'.implode(',.',.a
ea80 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 rray_keys(BasePackage::$stabilit
eaa0 69 65 73 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 ies)));.}..if.(null.===.$reposit
eac0 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 oryUrl).{.$sourceRepo.=.new.Comp
eae0 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 ositeRepository(Factory::createD
eb00 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 efaultRepositories($io,.$config)
eb20 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f );.}.elseif.("json".===.pathinfo
eb40 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 ($repositoryUrl,.PATHINFO_EXTENS
eb60 49 4f 4e 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 ION)).{.$sourceRepo.=.new.Filesy
eb80 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 72 65 70 stemRepository(new.JsonFile($rep
eba0 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d ositoryUrl,.new.RemoteFilesystem
ebc0 28 24 69 6f 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 ($io)));.}.elseif.(0.===.strpos(
ebe0 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 73 6f 75 72 $repositoryUrl,.'http')).{.$sour
ec00 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 ceRepo.=.new.ComposerRepository(
ec20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 array('url'.=>.$repositoryUrl),.
ec40 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 $io,.$config);.}.else.{.throw.ne
ec60 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 w.\InvalidArgumentException("Inv
ec80 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 61 73 20 74 alid.repository.url.given..Has.t
eca0 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 20 75 72 6c o.be.a..json.file.or.an.http.url
ecc0 2e 22 29 3b 0a 7d 0a 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 .");.}..$parser.=.new.VersionPar
ece0 73 65 72 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 ser();.$candidates.=.array();.$r
ed00 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 equirements.=.$parser->parseName
ed20 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 VersionPairs(array($packageName)
ed40 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 75 69 72 65 6d 65 );.$name.=.strtolower($requireme
ed60 6e 74 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 56 65 nts[0]['name']);.if.(!$packageVe
ed80 72 73 69 6f 6e 20 26 26 20 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b rsion.&&.isset($requirements[0][
eda0 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 'version'])).{.$packageVersion.=
edc0 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a .$requirements[0]['version'];.}.
ede0 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f .$pool.=.new.Pool($packageVersio
ee00 6e 20 3f 20 27 64 65 76 27 20 3a 20 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 24 70 6f 6f 6c 2d 3e n.?.'dev'.:.$stability);.$pool->
ee20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 73 6f 75 72 63 65 52 65 70 6f 29 3b 0a 0a 24 63 6f addRepository($sourceRepo);..$co
ee40 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 6e 65 77 nstraint.=.$packageVersion.?.new
ee60 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 72 73 65 72 2d .VersionConstraint('=',.$parser-
ee80 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 29 20 3a 20 6e >normalize($packageVersion)).:.n
eea0 75 6c 6c 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 ull;.$candidates.=.$pool->whatPr
eec0 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 ovides($name,.$constraint);.fore
eee0 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 6e ach.($candidates.as.$key.=>.$can
ef00 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d didate).{.if.($candidate->getNam
ef20 65 28 29 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 e().!==.$name).{.unset($candidat
ef40 65 73 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 es[$key]);.}.}..if.(!$candidates
ef60 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
ef80 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 ception("Could.not.find.package.
efa0 24 6e 61 6d 65 22 20 2e 20 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 $name"...($packageVersion.?.".wi
efc0 74 68 20 76 65 72 73 69 6f 6e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 20 3a 20 22 th.version.$packageVersion.".:."
efe0 20 77 69 74 68 20 73 74 61 62 69 6c 69 74 79 20 24 73 74 61 62 69 6c 69 74 79 2e 22 29 29 3b 0a .with.stability.$stability."));.
f000 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 70 }..if.(null.===.$directory).{.$p
f020 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 24 arts.=.explode("/",.$name,.2);.$
f040 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 59 directory.=.getcwd()...DIRECTORY
f060 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a _SEPARATOR...array_pop($parts);.
f080 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 }....$package.=.reset($candidate
f0a0 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e s);.foreach.($candidates.as.$can
f0c0 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 didate).{.if.(version_compare($p
f0e0 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 ackage->getVersion(),.$candidate
f100 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ->getVersion(),.'<')).{.$package
f120 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 .=.$candidate;.}.}.unset($candid
f140 61 74 65 73 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c ates);..$io->write('<info>Instal
f160 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 ling.'...$package->getName()...'
f180 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 .('...VersionParser::formatVersi
f1a0 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 66 61 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 on($package,.false)...')</info>'
f1c0 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6f 2d 3e );..if.($disablePlugins).{.$io->
f1e0 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 50 6c 75 67 69 6e 73 20 68 61 76 65 20 62 65 65 6e 20 64 write('<info>Plugins.have.been.d
f200 69 73 61 62 6c 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 isabled.</info>');.}..if.(0.===.
f220 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f strpos($package->getPrettyVersio
f240 6e 28 29 2c 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 n(),.'dev-').&&.in_array($packag
f260 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c e->getSourceType(),.array('git',
f280 20 27 68 67 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 .'hg'))).{.$package->setSourceRe
f2a0 66 65 72 65 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 ference(substr($package->getPret
f2c0 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 24 74 68 69 73 tyVersion(),.4));.}..$dm.=.$this
f2e0 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f ->createDownloadManager($io,.$co
f300 6e 66 69 67 29 3b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 nfig);.$dm->setPreferSource($pre
f320 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 ferSource).->setPreferDist($pref
f340 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 6e 6f erDist).->setOutputProgress(!$no
f360 50 72 6f 67 72 65 73 73 29 3b 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 3d 20 Progress);..$projectInstaller.=.
f380 6e 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 64 69 72 65 63 74 6f 72 79 2c new.ProjectInstaller($directory,
f3a0 20 24 64 6d 29 3b 0a 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c .$dm);.$im.=.$this->createInstal
f3c0 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c lationManager();.$im->addInstall
f3e0 65 72 28 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 69 6d 2d 3e 69 6e 73 74 er($projectInstaller);.$im->inst
f400 61 6c 6c 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 all(new.InstalledFilesystemRepos
f420 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 itory(new.JsonFile('php://memory
f440 27 29 29 2c 20 6e 65 77 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 ')),.new.InstallOperation($packa
f460 67 65 29 29 3b 0a 24 69 6d 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 24 69 ge));.$im->notifyInstalls();..$i
f480 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 nstalledFromVcs.=.'source'.===.$
f4a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 package->getInstallationSource()
f4c0 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 64 20 70 72 6f ;..$io->write('<info>Created.pro
f4e0 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c 2f 69 6e 66 6f ject.in.'...$directory...'</info
f500 3e 27 29 3b 0a 63 68 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 70 75 74 65 6e 76 28 >');.chdir($directory);..putenv(
f520 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 70 61 63 6b 61 67 'COMPOSER_ROOT_VERSION='.$packag
f540 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 e->getPrettyVersion());..return.
f560 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 $installedFromVcs;.}..protected.
f580 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 function.createDownloadManager(I
f5a0 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a OInterface.$io,.Config.$config).
f5c0 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 {.$factory.=.new.Factory();..ret
f5e0 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 urn.$factory->createDownloadMana
f600 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 ger($io,.$config);.}..protected.
f620 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 function.createInstallationManag
f640 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 er().{.return.new.InstallationMa
f660 6e 61 67 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 nager();.}.}.<?php............na
f680 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 mespace.Composer\Command;..use.S
f6a0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
f6c0 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nputInterface;.use.Symfony\Compo
f6e0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 nent\Console\Output\OutputInterf
f700 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ace;.....class.AboutCommand.exte
f720 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e nds.Command.{.protected.function
f740 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
f760 61 62 6f 75 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 74 20 about').->setDescription('Short.
f780 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d 3e 73 information.about.Composer').->s
f7a0 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 etHelp(<<<EOT.<info>php.composer
f7c0 2e 70 68 61 72 20 61 62 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 .phar.about</info>.EOT.).;.}..pr
f7e0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e otected.function.execute(InputIn
f800 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
f820 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 $output).{.$output->writeln(<<<E
f840 4f 54 0a 3c 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 OT.<info>Composer.-.Package.Mana
f860 67 65 6d 65 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 gement.for.PHP</info>.<comment>C
f880 6f 6d 70 6f 73 65 72 20 69 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 6d 61 6e 61 67 65 72 20 omposer.is.a.dependency.manager.
f8a0 74 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 tracking.local.dependencies.of.y
f8c0 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 our.projects.and.libraries..See.
f8e0 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 http://getcomposer.org/.for.more
f900 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 0a .information.</comment>.EOT.);..
f920 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
f940 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 omposer\Command;..use.Composer\C
f960 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 omposer;.use.Composer\Dependency
f980 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 Resolver\Pool;.use.Composer\Depe
f9a0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 ndencyResolver\DefaultPolicy;.us
f9c0 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Factory;.use.Composer
f9e0 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 \Package\CompletePackageInterfac
fa00 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c e;.use.Composer\Package\Version\
fa20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 VersionParser;.use.Composer\Plug
fa40 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c in\CommandEvent;.use.Composer\Pl
fa60 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ugin\PluginEvents;.use.Symfony\C
fa80 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
faa0 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
fac0 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 sole\Input\InputArgument;.use.Sy
fae0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e mfony\Component\Console\Input\In
fb00 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 putOption;.use.Symfony\Component
fb20 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b \Console\Output\OutputInterface;
fb40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 .use.Composer\Repository\ArrayRe
fb60 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 pository;.use.Composer\Repositor
fb80 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f y\CompositeRepository;.use.Compo
fba0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 ser\Repository\ComposerRepositor
fbc0 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 y;.use.Composer\Repository\Platf
fbe0 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f ormRepository;.use.Composer\Repo
fc00 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a sitory\RepositoryInterface;.....
fc20 0a 63 6c 61 73 73 20 53 68 6f 77 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.ShowCommand.extends.Comma
fc40 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a nd.{.protected.$versionParser;..
fc60 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b protected.function.configure().{
fc80 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 29 0a 2d 3e 73 65 74 44 65 .$this.->setName('show').->setDe
fca0 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 scription('Show.information.abou
fcc0 74 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 t.packages').->setDefinition(arr
fce0 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c ay(.new.InputArgument('package',
fd00 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 .InputArgument::OPTIONAL,.'Packa
fd20 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 ge.to.inspect'),.new.InputArgume
fd40 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 nt('version',.InputArgument::OPT
fd60 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 IONAL,.'Version.or.version.const
fd80 72 61 69 6e 74 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 raint.to.inspect'),.new.InputOpt
fda0 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f ion('installed',.'i',.InputOptio
fdc0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 70 n::VALUE_NONE,.'List.installed.p
fde0 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ackages.only'),.new.InputOption(
fe00 27 70 6c 61 74 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 'platform',.'p',.InputOption::VA
fe20 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 LUE_NONE,.'List.platform.package
fe40 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c s.only'),.new.InputOption('avail
fe60 61 62 6c 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e able',.'a',.InputOption::VALUE_N
fe80 4f 4e 45 2c 20 27 4c 69 73 74 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 6f 6e ONE,.'List.available.packages.on
fea0 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 27 73 ly'),.new.InputOption('self',.'s
fec0 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f ',.InputOption::VALUE_NONE,.'Sho
fee0 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 w.the.root.package.information')
ff00 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 2c 20 27 ,.new.InputOption('name-only',.'
ff20 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 N',.InputOption::VALUE_NONE,.'Li
ff40 73 74 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6f 6e 6c 79 27 29 2c 0a 29 29 0a 2d 3e 73 65 st.package.names.only'),.)).->se
ff60 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 68 6f 77 20 63 6f 6d 6d 61 6e 64 20 64 69 tHelp(<<<EOT.The.show.command.di
ff80 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 splays.detailed.information.abou
ffa0 74 20 61 20 70 61 63 6b 61 67 65 2c 20 6f 72 0a 6c 69 73 74 73 20 61 6c 6c 20 70 61 63 6b 61 67 t.a.package,.or.lists.all.packag
ffc0 65 73 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 es.available...EOT.).;.}..protec
ffe0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 ted.function.execute(InputInterf
10000 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
10020 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 put).{.$this->versionParser.=.ne
10040 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 w.VersionParser;....$platformRep
10060 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 63 6f o.=.new.PlatformRepository;..$co
10080 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 mposer.=.$this->getComposer(fals
100a0 65 29 3b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 e);.if.($input->getOption('self'
100c0 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 )).{.$package.=.$this->getCompos
100e0 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e er()->getPackage();.$repos.=.$in
10100 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 stalledRepo.=.new.ArrayRepositor
10120 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 y(array($package));.}.elseif.($i
10140 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 nput->getOption('platform')).{.$
10160 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f repos.=.$installedRepo.=.$platfo
10180 72 6d 52 65 70 6f 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 rmRepo;.}.elseif.($input->getOpt
101a0 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e ion('installed')).{.$repos.=.$in
101c0 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 stalledRepo.=.$this->getComposer
101e0 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c ()->getRepositoryManager()->getL
10200 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 ocalRepository();.}.elseif.($inp
10220 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 29 20 7b 0a 24 69 ut->getOption('available')).{.$i
10240 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 69 66 nstalledRepo.=.$platformRepo;.if
10260 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 .($composer).{.$repos.=.new.Comp
10280 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 ositeRepository($composer->getRe
102a0 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 positoryManager()->getRepositori
102c0 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 es());.}.else.{.$defaultRepos.=.
102e0 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 Factory::createDefaultRepositori
10300 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 es($this->getIO());.$repos.=.new
10320 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 .CompositeRepository($defaultRep
10340 6f 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 os);.$output->writeln('No.compos
10360 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 er.json.found.in.the.current.dir
10380 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 ectory,.showing.available.packag
103a0 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f es.from.'...implode(',.',.array_
103c0 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 keys($defaultRepos)));.}.}.elsei
103e0 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f f.($composer).{.$localRepo.=.$co
10400 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e mposer->getRepositoryManager()->
10420 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 getLocalRepository();.$installed
10440 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 Repo.=.new.CompositeRepository(a
10460 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 rray($localRepo,.$platformRepo))
10480 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f ;.$repos.=.new.CompositeReposito
104a0 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 ry(array_merge(array($installedR
104c0 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 epo),.$composer->getRepositoryMa
104e0 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 nager()->getRepositories()));.}.
10500 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a else.{.$defaultRepos.=.Factory::
10520 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d createDefaultRepositories($this-
10540 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 4e 6f 20 >getIO());.$output->writeln('No.
10560 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 composer.json.found.in.the.curre
10580 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 nt.directory,.showing.available.
105a0 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 packages.from.'...implode(',.',.
105c0 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e array_keys($defaultRepos)));.$in
105e0 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 stalledRepo.=.$platformRepo;.$re
10600 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 pos.=.new.CompositeRepository(ar
10620 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c ray_merge(array($installedRepo),
10640 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 .$defaultRepos));.}..if.($compos
10660 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e er).{.$commandEvent.=.new.Comman
10680 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 dEvent(PluginEvents::COMMAND,.'s
106a0 68 6f 77 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 how',.$input,.$output);.$compose
106c0 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 r->getEventDispatcher()->dispatc
106e0 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d h($commandEvent->getName(),.$com
10700 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 mandEvent);.}....if.($input->get
10720 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 70 Argument('package').||.!empty($p
10740 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ackage)).{.$versions.=.array();.
10760 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 if.(empty($package)).{.list($pac
10780 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 kage,.$versions).=.$this->getPac
107a0 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c 20 24 69 6e kage($installedRepo,.$repos,.$in
107c0 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 20 24 69 6e put->getArgument('package'),.$in
107e0 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 3b 0a 0a 69 put->getArgument('version'));..i
10800 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c f.(!$package).{.throw.new.\Inval
10820 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 idArgumentException('Package.'.$
10840 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2e 27 20 input->getArgument('package').'.
10860 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e not.found');.}.}.else.{.$version
10880 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 s.=.array($package->getPrettyVer
108a0 73 69 6f 6e 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 sion().=>.$package->getVersion()
108c0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 74 2c 20 24 );.}..$this->printMeta($input,.$
108e0 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e output,.$package,.$versions,.$in
10900 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 stalledRepo,.$repos);.$this->pri
10920 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 ntLinks($input,.$output,.$packag
10940 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b e,.'requires');.$this->printLink
10960 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 64 65 s($input,.$output,.$package,.'de
10980 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 3b 0a 69 vRequires',.'requires.(dev)');.i
109a0 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 24 6f f.($package->getSuggests()).{.$o
109c0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 67 67 65 73 74 73 utput->writeln("\n<info>suggests
109e0 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 </info>");.foreach.($package->ge
10a00 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 73 75 67 67 65 73 74 65 64 20 3d 3e 20 24 72 65 tSuggests().as.$suggested.=>.$re
10a20 61 73 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 73 75 67 67 65 73 ason).{.$output->writeln($sugges
10a40 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 72 65 61 73 6f 6e 20 2e 20 27 ted...'.<comment>'...$reason...'
10a60 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 </comment>');.}.}.$this->printLi
10a80 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 nks($input,.$output,.$package,.'
10aa0 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 provides');.$this->printLinks($i
10ac0 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 63 6f 6e 66 6c 69 nput,.$output,.$package,.'confli
10ae0 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c cts');.$this->printLinks($input,
10b00 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b .$output,.$package,.'replaces');
10b20 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 ..return;.}....$packages.=.array
10b40 28 29 3b 0a 0a 69 66 20 28 24 72 65 70 6f 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f ();..if.($repos.instanceof.Compo
10b60 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f siteRepository).{.$repos.=.$repo
10b80 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 s->getRepositories();.}.elseif.(
10ba0 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 !is_array($repos)).{.$repos.=.ar
10bc0 72 61 79 28 24 72 65 70 6f 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 ray($repos);.}..foreach.($repos.
10be0 61 73 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 24 72 65 70 6f 20 3d 3d 3d 20 24 70 6c 61 74 66 as.$repo).{.if.($repo.===.$platf
10c00 6f 72 6d 52 65 70 6f 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f ormRepo).{.$type.=.'<info>platfo
10c20 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 0a 24 72 65 70 6f 20 3d 3d rm</info>:';.}.elseif.(.$repo.==
10c40 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 0a 7c 7c 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 =.$installedRepo.||.($installedR
10c60 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f epo.instanceof.CompositeReposito
10c80 72 79 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 72 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 ry.&&.in_array($repo,.$installed
10ca0 52 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 20 74 72 75 65 29 29 0a Repo->getRepositories(),.true)).
10cc0 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e ).{.$type.=.'<info>installed</in
10ce0 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e fo>:';.}.else.{.$type.=.'<commen
10d00 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 24 t>available</comment>:';.}.if.($
10d20 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f repo.instanceof.ComposerReposito
10d40 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 66 ry.&&.$repo->hasProviders()).{.f
10d60 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 oreach.($repo->getProviderNames(
10d80 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 ).as.$name).{.$packages[$type][$
10da0 6e 61 6d 65 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 name].=.$name;.}.}.else.{.foreac
10dc0 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b h.($repo->getPackages().as.$pack
10de0 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 age).{.if.(!isset($packages[$typ
10e00 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 21 69 73 5f e][$package->getName()]).||.!is_
10e20 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 object($packages[$type][$package
10e40 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 ->getName()]).||.version_compare
10e60 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e ($packages[$type][$package->getN
10e80 61 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e ame()]->getVersion(),.$package->
10ea0 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 getVersion(),.'<').).{.$packages
10ec0 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 [$type][$package->getName()].=.$
10ee0 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 74 72 65 65 20 3d 20 21 24 69 6e 70 75 package;.}.}.}.}..$tree.=.!$inpu
10f00 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 20 26 26 20 21 24 69 6e t->getOption('platform').&&.!$in
10f20 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 20 26 26 20 21 put->getOption('installed').&&.!
10f40 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 3b 0a $input->getOption('available');.
10f60 24 69 6e 64 65 6e 74 20 3d 20 24 74 72 65 65 20 3f 20 27 20 20 27 20 3a 20 27 27 3b 0a 66 6f 72 $indent.=.$tree.?.'..'.:.'';.for
10f80 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 each.(array('<info>platform</inf
10fa0 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 2c 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c o>:'.=>.true,.'<comment>availabl
10fc0 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 e</comment>:'.=>.false,.'<info>i
10fe0 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 nstalled</info>:'.=>.true).as.$t
11000 79 70 65 20 3d 3e 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 ype.=>.$showVersion).{.if.(isset
11020 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 69 66 20 28 24 74 72 65 65 29 ($packages[$type])).{.if.($tree)
11040 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 70 65 29 3b 0a 7d 0a 6b 73 .{.$output->writeln($type);.}.ks
11060 6f 72 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e 61 6d 65 4c 65 6e ort($packages[$type]);..$nameLen
11080 67 74 68 20 3d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 gth.=.$versionLength.=.0;.foreac
110a0 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 h.($packages[$type].as.$package)
110c0 20 7b 0a 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6e .{.if.(is_object($package)).{.$n
110e0 61 6d 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 73 74 72 ameLength.=.max($nameLength,.str
11100 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 29 3b len($package->getPrettyName()));
11120 0a 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 76 65 72 73 69 6f 6e 4c 65 .$versionLength.=.max($versionLe
11140 6e 67 74 68 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 ngth,.strlen($this->versionParse
11160 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 29 3b 0a 7d 20 r->formatVersion($package)));.}.
11180 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 else.{.$nameLength.=.max($nameLe
111a0 6e 67 74 68 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 6c 69 73 74 28 24 77 69 64 74 68 ngth,.$package);.}.}.list($width
111c0 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 ).=.$this->getApplication()->get
111e0 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d TerminalDimensions();.if.(null.=
11200 3d 3d 20 24 77 69 64 74 68 29 20 7b 0a 0a 20 0a 20 24 77 69 64 74 68 20 3d 20 50 48 50 5f 49 4e ==.$width).{.....$width.=.PHP_IN
11220 54 5f 4d 41 58 3b 0a 7d 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 T_MAX;.}.if.(defined('PHP_WINDOW
11240 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 77 69 64 74 68 2d 2d 3b 0a 7d S_VERSION_BUILD')).{.$width--;.}
11260 0a 0a 24 77 72 69 74 65 56 65 72 73 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 ..$writeVersion.=.!$input->getOp
11280 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 24 73 68 6f 77 56 65 72 73 69 6f tion('name-only').&&.$showVersio
112a0 6e 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 n.&&.($nameLength.+.$versionLeng
112c0 74 68 20 2b 20 33 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 24 77 72 69 74 65 44 65 73 63 72 69 70 th.+.3.<=.$width);.$writeDescrip
112e0 74 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d tion.=.!$input->getOption('name-
11300 6f 6e 6c 79 27 29 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 28 24 73 68 6f 77 56 only').&&.($nameLength.+.($showV
11320 65 72 73 69 6f 6e 20 3f 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3a 20 30 29 20 2b 20 32 ersion.?.$versionLength.:.0).+.2
11340 34 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 4.<=.$width);.foreach.($packages
11360 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 5f 6f 62 [$type].as.$package).{.if.(is_ob
11380 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 ject($package)).{.$output->write
113a0 28 24 69 6e 64 65 6e 74 20 2e 20 73 74 72 5f 70 61 64 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ($indent...str_pad($package->get
113c0 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c PrettyName(),.$nameLength,.'.'),
113e0 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 77 72 69 74 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 .false);..if.($writeVersion).{.$
11400 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 73 74 72 5f 70 61 64 28 24 74 68 69 output->write('.'...str_pad($thi
11420 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 s->versionParser->formatVersion(
11440 24 70 61 63 6b 61 67 65 29 2c 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c $package),.$versionLength,.'.'),
11460 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 6f .false);.}..if.($writeDescriptio
11480 6e 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b n).{.$description.=.strtok($pack
114a0 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a age->getDescription(),."\r\n");.
114c0 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 20 2d 20 24 6e 61 6d 65 4c 65 6e 67 74 $remaining.=.$width.-.$nameLengt
114e0 68 20 2d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2d 20 34 3b 0a 69 66 20 28 73 74 72 6c h.-.$versionLength.-.4;.if.(strl
11500 65 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 24 72 65 6d 61 69 6e 69 6e 67 29 20 7b en($description).>.$remaining).{
11520 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 .$description.=.substr($descript
11540 69 6f 6e 2c 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 2d 20 33 29 20 2e 20 27 2e 2e 2e 27 3b ion,.0,.$remaining.-.3)...'...';
11560 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 64 65 73 63 72 69 70 .}.$output->write('.'...$descrip
11580 74 69 6f 6e 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 tion);.}.}.else.{.$output->write
115a0 28 24 69 6e 64 65 6e 74 20 2e 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d ($indent...$package);.}.$output-
115c0 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 69 66 20 28 24 74 72 65 65 29 20 7b 0a 24 6f 75 >writeln('');.}.if.($tree).{.$ou
115e0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a tput->writeln('');.}.}.}.}......
11600 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b ......protected.function.getPack
11620 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c age(RepositoryInterface.$install
11640 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 edRepo,.RepositoryInterface.$rep
11660 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6e os,.$name,.$version.=.null).{.$n
11680 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 63 6f 6e 73 74 72 ame.=.strtolower($name);.$constr
116a0 61 69 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 63 6f aint.=.null;.if.($version).{.$co
116c0 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d nstraint.=.$this->versionParser-
116e0 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a >parseConstraints($version);.}..
11700 24 70 6f 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 28 29 3b 0a 24 $policy.=.new.DefaultPolicy();.$
11720 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 pool.=.new.Pool('dev');.$pool->a
11740 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 6d 61 74 63 68 65 64 50 ddRepository($repos);..$matchedP
11760 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 ackage.=.null;.$versions.=.array
11780 28 29 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 ();.$matches.=.$pool->whatProvid
117a0 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 es($name,.$constraint);.foreach.
117c0 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 ($matches.as.$index.=>.$package)
117e0 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d .{...if.($package->getName().!==
11800 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d .$name).{.unset($matches[$index]
11820 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 );.continue;.}....if.(null.===.$
11840 76 65 72 73 69 6f 6e 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 version.&&.$installedRepo->hasPa
11860 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 ckage($package)).{.$matchedPacka
11880 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 5b 24 70 61 63 ge.=.$package;.}..$versions[$pac
118a0 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 kage->getPrettyVersion()].=.$pac
118c0 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e kage->getVersion();.$matches[$in
118e0 64 65 78 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 dex].=.$package->getId();.}....i
11900 66 20 28 21 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 26 26 20 24 6d 61 74 63 68 65 73 20 f.(!$matchedPackage.&&.$matches.
11920 26 26 20 24 70 72 65 66 65 72 65 64 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 &&.$prefered.=.$policy->selectPr
11940 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 24 eferedPackages($pool,.array(),.$
11960 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 matches)).{.$matchedPackage.=.$p
11980 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 72 65 66 65 72 65 64 5b ool->literalToPackage($prefered[
119a0 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 68 65 64 50 61 63 0]);.}..return.array($matchedPac
119c0 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 kage,.$versions);.}.....protecte
119e0 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 49 6e 74 65 72 66 d.function.printMeta(InputInterf
11a00 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
11a20 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 put,.CompletePackageInterface.$p
11a40 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 ackage,.array.$versions,.Reposit
11a60 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 oryInterface.$installedRepo,.Rep
11a80 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 24 6f 75 74 70 ositoryInterface.$repos).{.$outp
11aa0 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 3c 2f 69 6e 66 6f 3e 20 20 ut->writeln('<info>name</info>..
11ac0 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 ...:.'...$package->getPrettyName
11ae0 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 65 73 ());.$output->writeln('<info>des
11b00 63 72 69 70 2e 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 crip.</info>.:.'...$package->get
11b20 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e Description());.$output->writeln
11b40 28 27 3c 69 6e 66 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 6a 6f ('<info>keywords</info>.:.'...jo
11b60 69 6e 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 in(',.',.$package->getKeywords()
11b80 20 3f 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 56 65 72 73 69 .?:.array()));.$this->printVersi
11ba0 6f 6e 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 ons($input,.$output,.$package,.$
11bc0 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 versions,.$installedRepo,.$repos
11be0 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c );.$output->writeln('<info>type<
11c00 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 /info>.....:.'...$package->getTy
11c20 70 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6c pe());.$output->writeln('<info>l
11c40 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 icense</info>..:.'...implode(',.
11c60 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 6f 75 ',.$package->getLicense()));.$ou
11c80 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 tput->writeln('<info>source</inf
11ca0 6f 3e 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e o>...:.'...sprintf('[%s].<commen
11cc0 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 t>%s</comment>.%s',.$package->ge
11ce0 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 tSourceType(),.$package->getSour
11d00 63 65 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ceUrl(),.$package->getSourceRefe
11d20 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e rence()));.$output->writeln('<in
11d40 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 fo>dist</info>.....:.'...sprintf
11d60 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 ('[%s].<comment>%s</comment>.%s'
11d80 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b ,.$package->getDistType(),.$pack
11da0 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 age->getDistUrl(),.$package->get
11dc0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 DistReference()));.$output->writ
11de0 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e eln('<info>names</info>....:.'..
11e00 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .implode(',.',.$package->getName
11e20 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 s()));..if.($package->getSupport
11e40 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e ()).{.$output->writeln("\n<info>
11e60 73 75 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b support</info>");.foreach.($pack
11e80 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 age->getSupport().as.$type.=>.$v
11ea0 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 alue).{.$output->writeln('<comme
11ec0 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 nt>'...$type...'</comment>.:.'.$
11ee0 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 value);.}.}..if.($package->getAu
11f00 74 6f 6c 6f 61 64 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e toload()).{.$output->writeln("\n
11f20 3c 69 6e 66 6f 3e 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 <info>autoload</info>");.foreach
11f40 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 .($package->getAutoload().as.$ty
11f60 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 pe.=>.$autoloads).{.$output->wri
11f80 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f teln('<comment>'...$type...'</co
11fa0 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 mment>');..if.($type.===.'psr-0'
11fc0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 ).{.foreach.($autoloads.as.$name
11fe0 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 28 24 .=>.$path).{.$output->writeln(($
12000 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 69 73 5f 61 72 72 61 name.?:.'*')...'.=>.'...(is_arra
12020 79 28 24 70 61 74 68 29 20 3f 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 74 68 29 20 y($path).?.implode(',.',.$path).
12040 3a 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 :.($path.?:.'.')));.}.}.elseif.(
12060 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 6f 75 74 70 75 74 2d $type.===.'classmap').{.$output-
12080 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 61 75 74 6f 6c 6f 61 64 >writeln(implode(',.',.$autoload
120a0 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 s));.}.}.if.($package->getInclud
120c0 65 50 61 74 68 73 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 ePaths()).{.$output->writeln('<c
120e0 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b omment>include-path</comment>');
12100 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 .$output->writeln(implode(',.',.
12120 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 29 3b 0a 7d $package->getIncludePaths()));.}
12140 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e .}.}.....protected.function.prin
12160 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c tVersions(InputInterface.$input,
12180 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 .OutputInterface.$output,.Comple
121a0 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 tePackageInterface.$package,.arr
121c0 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 ay.$versions,.RepositoryInterfac
121e0 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 e.$installedRepo,.RepositoryInte
12200 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 75 61 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 rface.$repos).{.uasort($versions
12220 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 ,.'version_compare');.$versions.
12240 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 =.array_keys(array_reverse($vers
12260 69 6f 6e 73 29 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 ions));....if.($installedRepo->h
12280 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 asPackage($package)).{.$installe
122a0 64 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 dVersion.=.$package->getPrettyVe
122c0 72 73 69 6f 6e 28 29 3b 0a 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 6e rsion();.$key.=.array_search($in
122e0 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 stalledVersion,.$versions);.if.(
12300 66 61 6c 73 65 20 21 3d 3d 20 24 6b 65 79 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 6b 65 79 false.!==.$key).{.$versions[$key
12320 5d 20 3d 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 ].=.'<info>*.'...$installedVersi
12340 6f 6e 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d on...'</info>';.}.}..$versions.=
12360 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 0a 24 6f 75 74 .implode(',.',.$versions);..$out
12380 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e put->writeln('<info>versions</in
123a0 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a fo>.:.'...$versions);.}.........
123c0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 ..protected.function.printLinks(
123e0 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
12400 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 erface.$output,.CompletePackageI
12420 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 74 nterface.$package,.$linkType,.$t
12440 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 3f itle.=.null).{.$title.=.$title.?
12460 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 :.$linkType;.if.($links.=.$packa
12480 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 29 ge->{'get'.ucfirst($linkType)}()
124a0 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 ).{.$output->writeln("\n<info>".
124c0 2e 20 24 74 69 74 6c 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ..$title..."</info>");..foreach.
124e0 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 ($links.as.$link).{.$output->wri
12500 74 65 6c 6e 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d teln($link->getTarget()...'.<com
12520 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 ment>'...$link->getPrettyConstra
12540 69 6e 74 28 29 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c int()...'</comment>');.}.}.}.}.<
12560 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
12580 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c er\Command;..use.Composer\Instal
125a0 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 ler;.use.Composer\Plugin\Command
125c0 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 Event;.use.Composer\Plugin\Plugi
125e0 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 nEvents;.use.Symfony\Component\C
12600 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 onsole\Input\InputInterface;.use
12620 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
12640 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e \InputOption;.use.Symfony\Compon
12660 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b ent\Console\Input\InputArgument;
12680 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
126a0 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 utput\OutputInterface;......clas
126c0 73 20 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a s.UpdateCommand.extends.Command.
126e0 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 {.protected.function.configure()
12700 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 .{.$this.->setName('update').->s
12720 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 etDescription('Updates.your.depe
12740 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 ndencies.to.the.latest.version.a
12760 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 ccording.to.composer.json,.and.u
12780 70 64 61 74 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 pdates.the.composer.lock.file.')
127a0 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 .->setDefinition(array(.new.Inpu
127c0 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d tArgument('packages',.InputArgum
127e0 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f ent::IS_ARRAY.|.InputArgument::O
12800 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 PTIONAL,.'Packages.that.should.b
12820 65 20 75 70 64 61 74 65 64 2c 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 e.updated,.if.not.provided.all.p
12840 61 63 6b 61 67 65 73 20 61 72 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ackages.are.'),.new.InputOption(
12860 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 'prefer-source',.null,.InputOpti
12880 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 on::VALUE_NONE,.'Forces.installa
128a0 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 tion.from.package.sources.when.p
128c0 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 ossible,.including.VCS.informati
128e0 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 on.'),.new.InputOption('prefer-d
12900 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ist',.null,.InputOption::VALUE_N
12920 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 ONE,.'Forces.installation.from.p
12940 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e ackage.dist.even.for.dev.version
12960 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c s.'),.new.InputOption('dry-run',
12980 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 .null,.InputOption::VALUE_NONE,.
129a0 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 'Outputs.the.operations.but.will
129c0 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c .not.execute.anything.(implicitl
129e0 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 y.enables.--verbose).'),.new.Inp
12a00 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f utOption('dev',.null,.InputOptio
12a20 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 n::VALUE_NONE,.'Enables.installa
12a40 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e tion.of.require-dev.packages.(en
12a60 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 abled.by.default,.only.present.f
12a80 6f 72 20 42 43 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 or.BC).'),.new.InputOption('no-d
12aa0 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ev',.null,.InputOption::VALUE_NO
12ac0 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 NE,.'Disables.installation.of.re
12ae0 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 quire-dev.packages.'),.new.Input
12b00 4f 70 74 69 6f 6e 28 27 6c 6f 63 6b 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e Option('lock',.null,.InputOption
12b20 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 6e 6c 79 20 75 70 64 61 74 65 73 20 74 68 65 20 ::VALUE_NONE,.'Only.updates.the.
12b40 6c 6f 63 6b 20 66 69 6c 65 20 68 61 73 68 20 74 6f 20 73 75 70 70 72 65 73 73 20 77 61 72 6e 69 lock.file.hash.to.suppress.warni
12b60 6e 67 20 61 62 6f 75 74 20 74 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 62 65 69 6e 67 20 6f 75 74 ng.about.the.lock.file.being.out
12b80 20 6f 66 20 64 61 74 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f .of.date.'),.new.InputOption('no
12ba0 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 -plugins',.null,.InputOption::VA
12bc0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 69 6e 73 2e LUE_NONE,.'Disables.all.plugins.
12be0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 '),.new.InputOption('no-custom-i
12c00 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 nstallers',.null,.InputOption::V
12c20 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 ALUE_NONE,.'DEPRECATED:.Use.no-p
12c40 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 lugins.instead.'),.new.InputOpti
12c60 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 on('no-scripts',.null,.InputOpti
12c80 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 on::VALUE_NONE,.'Skips.the.execu
12ca0 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 tion.of.all.scripts.defined.in.c
12cc0 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f omposer.json.file.'),.new.InputO
12ce0 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 ption('no-progress',.null,.Input
12d00 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 Option::VALUE_NONE,.'Do.not.outp
12d20 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 ut.download.progress.'),.new.Inp
12d40 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 utOption('verbose',.'v|vv|vvv',.
12d60 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 73 20 InputOption::VALUE_NONE,.'Shows.
12d80 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f 6d 6d 69 more.details.including.new.commi
12da0 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 63 6b 61 ts.pulled.in.when.updating.packa
12dc0 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a ges.'),.new.InputOption('optimiz
12de0 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a e-autoloader',.'o',.InputOption:
12e00 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f 61 64 65 :VALUE_NONE,.'Optimize.autoloade
12e20 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 0a 29 29 0a 2d 3e r.during.autoloader.dump').)).->
12e40 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c setHelp(<<<EOT.The.<info>update<
12e60 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 /info>.command.reads.the.compose
12e80 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 r.json.file.from.the.current.dir
12ea0 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 ectory,.processes.it,.and.update
12ec0 73 2c 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 s,.removes.or.installs.all.the.d
12ee0 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 ependencies...<info>php.composer
12f00 2e 70 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 .phar.update</info>..To.limit.th
12f20 65 20 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b e.update.operation.to.a.few.pack
12f40 61 67 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 ages,.you.can.list.the.package(s
12f60 29 0a 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c ).you.want.to.update.as.such:..<
12f80 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 info>php.composer.phar.update.ve
12fa0 6e 64 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e ndor/package1.foo/mypackage.[...
12fc0 5d 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ]</info>.EOT.).;.}..protected.fu
12fe0 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 nction.execute(InputInterface.$i
13000 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
13020 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f .if.($input->getOption('no-custo
13040 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 m-installers')).{.$output->write
13060 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 ln('<warning>You.are.using.the.d
13080 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 eprecated.option."no-custom-inst
130a0 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 allers"..Use."no-plugins".instea
130c0 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f d.</warning>');.$input->setOptio
130e0 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f n('no-plugins',.true);.}..$compo
13100 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 75 65 2c 20 24 ser.=.$this->getComposer(true,.$
13120 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 3b input->getOption('no-plugins'));
13140 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 .$composer->getDownloadManager()
13160 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 ->setOutputProgress(!$input->get
13180 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 Option('no-progress'));.$io.=.$t
131a0 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e his->getIO();..$commandEvent.=.n
131c0 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f ew.CommandEvent(PluginEvents::CO
131e0 4d 4d 41 4e 44 2c 20 27 75 70 64 61 74 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 MMAND,.'update',.$input,.$output
13200 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 );.$composer->getEventDispatcher
13220 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e ()->dispatch($commandEvent->getN
13240 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c ame(),.$commandEvent);..$install
13260 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f .=.Installer::create($io,.$compo
13280 73 65 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 ser);..$preferSource.=.false;.$p
132a0 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 referDist.=.false;.switch.($comp
132c0 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 oser->getConfig()->get('preferre
132e0 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 d-install')).{.case.'source':.$p
13300 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 referSource.=.true;.break;.case.
13320 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 'dist':.$preferDist.=.true;.brea
13340 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b k;.case.'auto':.default:...break
13360 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 ;.}.if.($input->getOption('prefe
13380 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 r-source').||.$input->getOption(
133a0 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 'prefer-dist')).{.$preferSource.
133c0 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 =.$input->getOption('prefer-sour
133e0 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ce');.$preferDist.=.$input->getO
13400 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c ption('prefer-dist');.}..$instal
13420 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 l.->setDryRun($input->getOption(
13440 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 'dry-run')).->setVerbose($input-
13460 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 >getOption('verbose')).->setPref
13480 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 erSource($preferSource).->setPre
134a0 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 ferDist($preferDist).->setDevMod
134c0 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 0a e(!$input->getOption('no-dev')).
134e0 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ->setRunScripts(!$input->getOpti
13500 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 on('no-scripts')).->setOptimizeA
13520 75 74 6f 6c 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 utoloader($input->getOption('opt
13540 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 imize-autoloader')).->setUpdate(
13560 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 true).->setUpdateWhitelist($inpu
13580 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 6f 63 6b 27 29 20 3f 20 61 72 72 61 79 28 27 6c 6f t->getOption('lock').?.array('lo
135a0 63 6b 27 29 20 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b ck').:.$input->getArgument('pack
135c0 61 67 65 73 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ages')).;..if.($input->getOption
135e0 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 ('no-plugins')).{.$install->disa
13600 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c blePlugins();.}..return.$install
13620 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ->run().?.0.:.1;.}.}.<?php......
13640 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 ......namespace.Composer\Command
13660 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 ;..use.Symfony\Component\Console
13680 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
136a0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
136c0 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Argument;.use.Symfony\Component\
136e0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 Console\Input\InputOption;.use.S
13700 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
13720 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f OutputInterface;.use.Composer\Co
13740 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f nfig;.use.Composer\Config\JsonCo
13760 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 nfigSource;.use.Composer\Factory
13780 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a ;.use.Composer\Json\JsonFile;...
137a0 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 ...class.ConfigCommand.extends.C
137c0 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a ommand.{....protected.$config;..
137e0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 ...protected.$configFile;.....pr
13800 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 otected.$configSource;.....prote
13820 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 cted.function.configure().{.$thi
13840 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6f 6e 66 69 67 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 s.->setName('config').->setDescr
13860 69 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 73 27 29 0a 2d 3e 73 iption('Set.config.options').->s
13880 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 etDefinition(array(.new.InputOpt
138a0 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ion('global',.'g',.InputOption::
138c0 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 VALUE_NONE,.'Apply.command.to.th
138e0 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 6c 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 e.global.config.file'),.new.Inpu
13900 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 27 65 27 2c 20 49 6e 70 75 74 4f 70 74 69 tOption('editor',.'e',.InputOpti
13920 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 65 64 69 74 6f 72 27 29 2c 0a on::VALUE_NONE,.'Open.editor'),.
13940 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c 20 6e 75 6c 6c 2c 20 49 new.InputOption('unset',.null,.I
13960 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 55 6e 73 65 74 20 74 nputOption::VALUE_NONE,.'Unset.t
13980 68 65 20 67 69 76 65 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 he.given.setting-key'),.new.Inpu
139a0 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e tOption('list',.'l',.InputOption
139c0 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f ::VALUE_NONE,.'List.configuratio
139e0 6e 20 73 65 74 74 69 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 n.settings'),.new.InputOption('f
13a00 69 6c 65 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 ile',.'f',.InputOption::VALUE_RE
13a20 51 55 49 52 45 44 2c 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 6f 6f 73 65 20 61 QUIRED,.'If.you.want.to.choose.a
13a40 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 63 6f 6e 66 .different.composer.json.or.conf
13a60 69 67 2e 6a 73 6f 6e 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 2c 0a 6e 65 77 20 ig.json',.'composer.json'),.new.
13a80 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 2c 20 6e 75 6c InputArgument('setting-key',.nul
13aa0 6c 2c 20 27 53 65 74 74 69 6e 67 20 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 l,.'Setting.key'),.new.InputArgu
13ac0 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d ment('setting-value',.InputArgum
13ae0 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 2c 20 27 53 65 74 74 69 6e 67 20 76 61 6c 75 65 27 29 2c ent::IS_ARRAY,.'Setting.value'),
13b00 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 69 73 20 63 6f 6d 6d 61 6e .)).->setHelp(<<<EOT.This.comman
13b20 64 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 65 64 69 74 20 73 6f 6d 65 20 62 61 73 69 63 20 d.allows.you.to.edit.some.basic.
13b40 63 6f 6d 70 6f 73 65 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 65 69 74 68 65 72 20 74 68 65 0a composer.settings.in.either.the.
13b60 6c 6f 63 61 6c 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 74 68 65 20 local.composer.json.file.or.the.
13b80 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 54 6f 20 65 64 69 global.config.json.file...To.edi
13ba0 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 3a 0a 0a t.the.global.config.json.file:..
13bc0 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 ....<comment>%command.full_name%
13be0 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 61 64 64 20 61 20 72 65 .--global</comment>..To.add.a.re
13c00 70 6f 73 69 74 6f 72 79 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 pository:......<comment>%command
13c20 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 76 63 73 .full_name%.repositories.foo.vcs
13c40 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 .http://bar.com</comment>..You.c
13c60 61 6e 20 61 64 64 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 an.add.a.repository.to.the.globa
13c80 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 20 62 79 20 70 61 73 73 69 6e 67 20 69 6e l.config.json.file.by.passing.in
13ca0 20 74 68 65 0a 3c 69 6e 66 6f 3e 2d 2d 67 6c 6f 62 61 6c 3c 2f 69 6e 66 6f 3e 20 6f 70 74 69 6f .the.<info>--global</info>.optio
13cc0 6e 2e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 66 69 6c 65 20 69 6e 20 61 6e 20 65 78 74 65 72 n...To.edit.the.file.in.an.exter
13ce0 6e 61 6c 20 65 64 69 74 6f 72 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 nal.editor:......<comment>%comma
13d00 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 3c 2f 63 6f 6d 6d 65 6e 74 3e nd.full_name%.--editor</comment>
13d20 0a 0a 54 6f 20 63 68 6f 6f 73 65 20 79 6f 75 72 20 65 64 69 74 6f 72 20 79 6f 75 20 63 61 6e 20 ..To.choose.your.editor.you.can.
13d40 73 65 74 20 74 68 65 20 22 45 44 49 54 4f 52 22 20 65 6e 76 20 76 61 72 69 61 62 6c 65 2e 0a 0a set.the."EDITOR".env.variable...
13d60 54 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76 To.get.a.list.of.configuration.v
13d80 61 6c 75 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 alues.in.the.file:......<comment
13da0 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 6c 69 73 74 3c 2f 63 6f 6d >%command.full_name%.--list</com
13dc0 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 70 61 73 73 20 6d 6f 72 65 20 ment>..You.can.always.pass.more.
13de0 74 68 61 6e 20 6f 6e 65 20 6f 70 74 69 6f 6e 2e 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 than.one.option..As.an.example,.
13e00 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 64 69 74 20 74 68 65 0a 67 6c 6f 62 61 6c 20 63 if.you.want.to.edit.the.global.c
13e20 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 onfig.json.file.......<comment>%
13e40 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 20 2d 2d 67 6c command.full_name%.--editor.--gl
13e60 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f obal</comment>.EOT.).;.}.....pro
13e80 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 tected.function.initialize(Input
13ea0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
13ec0 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 e.$output).{.if.($input->getOpti
13ee0 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 on('global').&&.'composer.json'.
13f00 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 29 20 7b !==.$input->getOption('file')).{
13f20 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 2d 2d .throw.new.\RuntimeException('--
13f40 66 69 6c 65 20 61 6e 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 63 6f 6d file.and.--global.can.not.be.com
13f60 62 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 bined');.}..$this->config.=.Fact
13f80 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 0a 20 0a 20 24 63 6f 6e 66 69 ory::createConfig();......$confi
13fa0 67 46 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 gFile.=.$input->getOption('globa
13fc0 6c 27 29 0a 3f 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 l').?.($this->config->get('home'
13fe0 29 20 2e 20 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 0a 3a 20 24 69 6e 70 75 74 2d 3e 67 65 )...'/config.json').:.$input->ge
14000 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 tOption('file');..$this->configF
14020 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 3b ile.=.new.JsonFile($configFile);
14040 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 .$this->configSource.=.new.JsonC
14060 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a onfigSource($this->configFile);.
14080 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c ...if.($input->getOption('global
140a0 27 29 20 26 26 20 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 ').&&.!$this->configFile->exists
140c0 28 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 ()).{.touch($this->configFile->g
140e0 65 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 77 72 etPath());.$this->configFile->wr
14100 69 74 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 ite(array('config'.=>.new.\Array
14120 4f 62 6a 65 63 74 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 Object));.@chmod($this->configFi
14140 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 le->getPath(),.0600);.}..if.(!$t
14160 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 his->configFile->exists()).{.thr
14180 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 63 6f 6d ow.new.\RuntimeException('No.com
141a0 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 poser.json.found.in.the.current.
141c0 64 69 72 65 63 74 6f 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 directory');.}.}.....protected.f
141e0 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 unction.execute(InputInterface.$
14200 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a input,.OutputInterface.$output).
14220 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f {...if.($input->getOption('edito
14240 72 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 67 65 74 65 6e 76 28 27 45 44 49 54 4f 52 27 r')).{.$editor.=.getenv('EDITOR'
14260 29 3b 0a 69 66 20 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 );.if.(!$editor).{.if.(defined('
14280 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 PHP_WINDOWS_VERSION_BUILD')).{.$
142a0 65 64 69 74 6f 72 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 editor.=.'notepad';.}.else.{.for
142c0 65 61 63 68 20 28 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 27 6e 61 6e 6f 27 2c each.(array('vim',.'vi',.'nano',
142e0 20 27 70 69 63 6f 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a .'pico',.'ed').as.$candidate).{.
14300 69 66 20 28 65 78 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b if.(exec('which.'.$candidate)).{
14320 0a 24 65 64 69 74 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a .$editor.=.$candidate;.break;.}.
14340 7d 0a 7d 0a 7d 0a 0a 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 2e 20 27 20 27 20 2e 20 24 74 }.}.}..system($editor...'.'...$t
14360 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 28 64 65 his->configFile->getPath()...(de
14380 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
143a0 27 29 20 3f 20 27 27 3a 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 ').?.'':.'.>.`tty`'));..return.0
143c0 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f ;.}..if.(!$input->getOption('glo
143e0 62 61 6c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 74 bal')).{.$this->config->merge($t
14400 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 69 his->configFile->read());.}....i
14420 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 29 29 20 7b 0a f.($input->getOption('list')).{.
14440 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e $this->listConfiguration($this->
14460 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 72 61 config->all(),.$this->config->ra
14480 77 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 73 65 w(),.$output);..return.0;.}..$se
144a0 74 74 69 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 ttingKey.=.$input->getArgument('
144c0 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 3b 0a 69 66 20 28 21 24 73 65 74 74 69 6e 67 4b 65 79 29 setting-key');.if.(!$settingKey)
144e0 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 21 3d .{.return.0;.}....if.(array().!=
14500 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 =.$input->getArgument('setting-v
14520 61 6c 75 65 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 alue').&&.$input->getOption('uns
14540 65 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 et')).{.throw.new.\RuntimeExcept
14560 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 20 61 20 73 65 74 74 69 ion('You.can.not.combine.a.setti
14580 6e 67 20 76 61 6c 75 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 74 27 29 3b 0a 7d 0a 0a 0a 20 69 66 ng.value.with.--unset');.}....if
145a0 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e .(array().===.$input->getArgumen
145c0 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 t('setting-value').&&.!$input->g
145e0 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 etOption('unset')).{.$data.=.$th
14600 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 is->config->all();.if.(preg_matc
14620 68 28 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 28 3f 3a 5c 2e 28 2e 2b 29 h('/^repos?(?:itories)?(?:\.(.+)
14640 29 3f 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a )?/',.$settingKey,.$matches)).{.
14660 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b 0a 24 76 61 6c 75 65 if.(empty($matches[1])).{.$value
14680 20 3d 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 29 20 .=.isset($data['repositories']).
146a0 3f 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 20 3a 20 61 72 72 61 79 28 ?.$data['repositories'].:.array(
146c0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 );.}.else.{.if.(!isset($data['re
146e0 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 29 29 20 7b 0a 74 68 positories'][$matches[1]])).{.th
14700 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
14720 6e 28 27 54 68 65 72 65 20 69 73 20 6e 6f 20 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 20 72 n('There.is.no.'.$matches[1].'.r
14740 65 70 6f 73 69 74 6f 72 79 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d epository.defined');.}..$value.=
14760 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 73 5b .$data['repositories'][$matches[
14780 31 5d 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 24 73 65 74 74 69 6e 67 1]];.}.}.elseif.(strpos($setting
147a0 4b 65 79 2c 20 27 2e 27 29 29 20 7b 0a 24 62 69 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 Key,.'.')).{.$bits.=.explode('.'
147c0 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 27 63 ,.$settingKey);.$data.=.$data['c
147e0 6f 6e 66 69 67 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 69 74 73 20 61 73 20 24 62 69 74 29 onfig'];.foreach.($bits.as.$bit)
14800 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 24 62 69 74 5d 29 29 20 7b 0a 24 64 61 .{.if.(isset($data[$bit])).{.$da
14820 74 61 20 3d 20 24 64 61 74 61 5b 24 62 69 74 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 ta.=.$data[$bit];.}.elseif.(isse
14840 74 28 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 69 74 73 29 5d 29 29 20 7b t($data[implode('.',.$bits)])).{
14860 0a 0a 20 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 ...$data.=.$data[implode('.',.$b
14880 69 74 73 29 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 its)];.break;.}.else.{.throw.new
148a0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 .\RuntimeException($settingKey.'
148c0 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 61 72 72 61 79 5f 73 68 69 66 74 .is.not.defined');.}.array_shift
148e0 28 24 62 69 74 73 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 3b 0a 7d 20 65 6c ($bits);.}..$value.=.$data;.}.el
14900 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 73 65 74 seif.(isset($data['config'][$set
14920 74 69 6e 67 4b 65 79 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b 27 63 6f 6e tingKey])).{.$value.=.$data['con
14940 66 69 67 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 fig'][$settingKey];.}.else.{.thr
14960 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 73 65 74 74 69 6e ow.new.\RuntimeException($settin
14980 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a 69 66 20 28 gKey.'.is.not.defined');.}..if.(
149a0 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 6a 73 6f is_array($value)).{.$value.=.jso
149c0 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 n_encode($value);.}..$output->wr
149e0 69 74 65 6c 6e 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 76 61 iteln($value);..return.0;.}..$va
14a00 6c 75 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 lues.=.$input->getArgument('sett
14a20 69 6e 67 2d 76 61 6c 75 65 27 29 3b 20 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 ing-value');.....if.(preg_match(
14a40 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 5c 2e 28 2e 2b 29 2f 27 2c 20 24 '/^repos?(?:itories)?\.(.+)/',.$
14a60 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e settingKey,.$matches)).{.if.($in
14a80 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 put->getOption('unset')).{.retur
14aa0 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 52 65 70 n.$this->configSource->removeRep
14ac0 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 69 66 20 28 32 20 21 ository($matches[1]);.}..if.(2.!
14ae0 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ==.count($values)).{.throw.new.\
14b00 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 70 61 73 73 20 RuntimeException('You.must.pass.
14b20 74 68 65 20 74 79 70 65 20 61 6e 64 20 61 20 75 72 6c 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 the.type.and.a.url..Example:.php
14b40 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 72 65 70 6f 73 69 74 6f 72 69 .composer.phar.config.repositori
14b60 65 73 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 27 29 3b 0a 7d 0a 0a es.foo.vcs.http://bar.com');.}..
14b80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 return.$this->configSource->addR
14ba0 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 61 72 72 61 79 28 0a 27 74 epository($matches[1],.array(.'t
14bc0 79 70 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 76 61 ype'.=>.$values[0],.'url'.=>.$va
14be0 6c 75 65 73 5b 31 5d 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 lues[1],.));.}....if.(preg_match
14c00 28 27 2f 5e 67 69 74 68 75 62 2d 6f 61 75 74 68 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 ('/^github-oauth\.(.+)/',.$setti
14c20 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e ngKey,.$matches)).{.if.($input->
14c40 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 getOption('unset')).{.return.$th
14c60 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 is->configSource->removeConfigSe
14c80 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6d 61 74 63 68 65 73 5b 31 tting('github-oauth.'.$matches[1
14ca0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 ]);.}..if.(1.!==.count($values))
14cc0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
14ce0 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2c 20 65 78 70 65 63 74 65 64 20 6f 6e 6c Too.many.arguments,.expected.onl
14d00 79 20 6f 6e 65 20 74 6f 6b 65 6e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e y.one.token');.}..return.$this->
14d20 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 configSource->addConfigSetting('
14d40 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 24 76 61 6c github-oauth.'.$matches[1],.$val
14d60 75 65 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 20 3d 20 ues[0]);.}..$booleanValidator.=.
14d80 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 function.($val).{.return.in_arra
14da0 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 y($val,.array('true',.'false',.'
14dc0 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 3b 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 1',.'0'),.true);.};.$booleanNorm
14de0 61 6c 69 7a 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 alizer.=.function.($val).{.retur
14e00 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 n.$val.!==.'false'.&&.(bool).$va
14e20 6c 3b 20 7d 3b 0a 0a 0a 20 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 l;.};....$uniqueConfigValues.=.a
14e40 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 61 72 72 61 79 rray(.'process-timeout'.=>.array
14e60 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 75 73 65 2d 69 ('is_numeric',.'intval'),.'use-i
14e80 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 61 72 72 61 79 28 0a 24 62 6f 6f 6c 65 61 6e 56 nclude-path'.=>.array(.$booleanV
14ea0 61 6c 69 64 61 74 6f 72 2c 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 0a 29 2c 0a alidator,.$booleanNormalizer.),.
14ec0 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 'preferred-install'.=>.array(.fu
14ee0 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 nction.($val).{.return.in_array(
14f00 24 76 61 6c 2c 20 61 72 72 61 79 28 27 61 75 74 6f 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 64 $val,.array('auto',.'source',.'d
14f20 69 73 74 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 ist'),.true);.},.function.($val)
14f40 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d .{.return.$val;.}.),.'notify-on-
14f60 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 install'.=>.array(.$booleanValid
14f80 61 74 6f 72 2c 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 0a 29 2c 0a 27 76 65 6e ator,.$booleanNormalizer.),.'ven
14fa0 64 6f 72 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 dor-dir'.=>.array('is_string',.f
14fc0 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 unction.($val).{.return.$val;.})
14fe0 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 ,.'bin-dir'.=>.array('is_string'
15000 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b ,.function.($val).{.return.$val;
15020 20 7d 29 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 .}),.'cache-dir'.=>.array('is_st
15040 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 ring',.function.($val).{.return.
15060 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 61 $val;.}),.'cache-files-dir'.=>.a
15080 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c rray('is_string',.function.($val
150a0 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 72 65 70 6f ).{.return.$val;.}),.'cache-repo
150c0 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 -dir'.=>.array('is_string',.func
150e0 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 tion.($val).{.return.$val;.}),.'
15100 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 cache-vcs-dir'.=>.array('is_stri
15120 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 ng',.function.($val).{.return.$v
15140 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 al;.}),.'cache-ttl'.=>.array('is
15160 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c _numeric',.'intval'),.'cache-fil
15180 65 73 2d 74 74 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 es-ttl'.=>.array('is_numeric',.'
151a0 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 intval'),.'cache-files-maxsize'.
151c0 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 =>.array(.function.($val).{.retu
151e0 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d 39 2e 5d 2b 29 5c 73 2a rn.preg_match('/^\s*([0-9.]+)\s*
15200 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f 69 27 2c 20 24 76 61 (?:([kmg])(?:i?b)?)?\s*$/i',.$va
15220 6c 29 20 3e 20 30 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 l).>.0;.},.function.($val).{.ret
15240 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 urn.$val;.}.),.'discard-changes'
15260 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 .=>.array(.function.($val).{.ret
15280 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 73 74 61 73 68 27 urn.in_array($val,.array('stash'
152a0 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 ,.'true',.'false',.'1',.'0'),.tr
152c0 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 69 66 20 28 27 73 ue);.},.function.($val).{.if.('s
152e0 74 61 73 68 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 tash'.===.$val).{.return.'stash'
15300 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 ;.}..return.$val.!==.'false'.&&.
15320 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 0a 7d 0a 29 2c 0a 29 3b 0a 24 6d 75 6c 74 69 43 6f 6e 66 69 (bool).$val;.}.),.);.$multiConfi
15340 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f gValues.=.array(.'github-protoco
15360 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b ls'.=>.array(.function.($vals).{
15380 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 .if.(!is_array($vals)).{.return.
153a0 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 76 'array.expected';.}..foreach.($v
153c0 61 6c 73 20 61 73 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 76 61 als.as.$val).{.if.(!in_array($va
153e0 6c 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 29 29 29 20 7b 0a 72 65 74 l,.array('git',.'https'))).{.ret
15400 75 72 6e 20 27 76 61 6c 69 64 20 70 72 6f 74 6f 63 6f 6c 73 20 69 6e 63 6c 75 64 65 3a 20 67 69 urn.'valid.protocols.include:.gi
15420 74 2c 20 68 74 74 70 73 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a t,.https';.}.}..return.true;.},.
15440 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b function.($vals).{.return.$vals;
15460 0a 7d 0a 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 .}.),.);..foreach.($uniqueConfig
15480 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b Values.as.$name.=>.$callbacks).{
154a0 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 .if.($settingKey.===.$name).{.if
154c0 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a .($input->getOption('unset')).{.
154e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f return.$this->configSource->remo
15500 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a veConfigSetting($settingKey);.}.
15520 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d .list($validator,.$normalizer).=
15540 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 .$callbacks;.if.(1.!==.count($va
15560 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 lues)).{.throw.new.\RuntimeExcep
15580 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e 65 20 76 61 6c 75 tion('You.can.only.pass.one.valu
155a0 65 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f e..Example:.php.composer.phar.co
155c0 6e 66 69 67 20 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 20 33 30 30 27 29 3b 0a 7d 0a 0a 69 nfig.process-timeout.300');.}..i
155e0 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 f.(true.!==.$validation.=.$valid
15600 61 74 6f 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 ator($values[0])).{.throw.new.\R
15620 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 22 25 73 22 20 69 untimeException(sprintf(.'"%s".i
15640 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e s.an.invalid.value'.($validation
15660 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 24 .?.'.('.$validation.')'.:.''),.$
15680 76 61 6c 75 65 73 5b 30 5d 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 values[0].));.}..return.$this->c
156a0 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 onfigSource->addConfigSetting($s
156c0 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 5b 30 ettingKey,.$normalizer($values[0
156e0 5d 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 75 6c 74 69 43 6f 6e 66 69 67 56 ]));.}.}..foreach.($multiConfigV
15700 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a alues.as.$name.=>.$callbacks).{.
15720 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 if.($settingKey.===.$name).{.if.
15740 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 ($input->getOption('unset')).{.r
15760 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 eturn.$this->configSource->remov
15780 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a eConfigSetting($settingKey);.}..
157a0 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 list($validator,.$normalizer).=.
157c0 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 $callbacks;.if.(true.!==.$valida
157e0 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 tion.=.$validator($values)).{.th
15800 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 row.new.\RuntimeException(sprint
15820 66 28 0a 27 25 73 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 f(.'%s.is.an.invalid.value'.($va
15840 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 lidation.?.'.('.$validation.')'.
15860 3a 20 27 27 29 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 73 29 0a 29 29 3b 0a :.''),.json_encode($values).));.
15880 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 }..return.$this->configSource->a
158a0 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f ddConfigSetting($settingKey,.$no
158c0 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e rmalizer($values));.}.}..throw.n
158e0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 53 65 ew.\InvalidArgumentException('Se
15900 74 74 69 6e 67 20 27 2e 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 tting.'.$settingKey.'.does.not.e
15920 78 69 73 74 20 6f 72 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 xist.or.is.not.supported.by.this
15940 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .command');.}..........protected
15960 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 61 72 72 61 .function.listConfiguration(arra
15980 79 20 24 63 6f 6e 74 65 6e 74 73 2c 20 61 72 72 61 79 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 2c y.$contents,.array.$rawContents,
159a0 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e .OutputInterface.$output,.$k.=.n
159c0 75 6c 6c 29 0a 7b 0a 24 6f 72 69 67 4b 20 3d 20 24 6b 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f ull).{.$origK.=.$k;.foreach.($co
159e0 6e 74 65 6e 74 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 ntents.as.$key.=>.$value).{.if.(
15a00 24 6b 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 $k.===.null.&&.!in_array($key,.a
15a20 72 72 61 79 28 27 63 6f 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 rray('config',.'repositories')))
15a40 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 .{.continue;.}..$rawVal.=.isset(
15a60 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e $rawContents[$key]).?.$rawConten
15a80 74 73 5b 24 6b 65 79 5d 20 3a 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 ts[$key].:.null;..if.(is_array($
15aa0 76 61 6c 75 65 29 20 26 26 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 value).&&.(!is_numeric(key($valu
15ac0 65 29 29 20 7c 7c 20 28 24 6b 65 79 20 3d 3d 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 e)).||.($key.===.'repositories'.
15ae0 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6b 29 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 &&.null.===.$k))).{.$k..=.preg_r
15b00 65 70 6c 61 63 65 28 27 7b 5e 63 6f 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e eplace('{^config\.}',.'',.$key..
15b20 20 27 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 .'.');.$this->listConfiguration(
15b40 24 76 61 6c 75 65 2c 20 24 72 61 77 56 61 6c 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a $value,.$rawVal,.$output,.$k);..
15b60 69 66 20 28 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 6b 2c 20 27 2e 27 29 20 3e 20 31 29 20 7b if.(substr_count($k,.'.').>.1).{
15b80 0a 24 6b 20 3d 20 73 74 72 5f 73 70 6c 69 74 28 24 6b 2c 20 73 74 72 72 70 6f 73 28 24 6b 2c 20 .$k.=.str_split($k,.strrpos($k,.
15ba0 27 2e 27 2c 20 2d 32 29 29 3b 0a 24 6b 20 3d 20 24 6b 5b 30 5d 20 2e 20 27 2e 27 3b 0a 7d 20 65 '.',.-2));.$k.=.$k[0]...'.';.}.e
15bc0 6c 73 65 20 7b 0a 24 6b 20 3d 20 24 6f 72 69 67 4b 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a lse.{.$k.=.$origK;.}..continue;.
15be0 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 }..if.(is_array($value)).{.$valu
15c00 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a e.=.array_map(function.($val).{.
15c20 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 return.is_array($val).?.json_enc
15c40 6f 64 65 28 24 76 61 6c 29 20 3a 20 24 76 61 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 ode($val).:.$val;.},.$value);..$
15c60 76 61 6c 75 65 20 3d 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 value.=.'['.implode(',.',.$value
15c80 29 2e 27 5d 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b ).']';.}..if.(is_bool($value)).{
15ca0 0a 24 76 61 6c 75 65 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 .$value.=.var_export($value,.tru
15cc0 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 e);.}..if.(is_string($rawVal).&&
15ce0 20 24 72 61 77 56 61 6c 20 21 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 .$rawVal.!=.$value).{.$output->w
15d00 72 69 74 65 6c 6e 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 riteln('[<comment>'...$k...$key.
15d20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 72 61 77 56 61 6c ..'</comment>].<info>'...$rawVal
15d40 20 2e 20 27 20 28 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a ...'.('...$value...')</info>');.
15d60 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 3c 63 6f 6d }.else.{.$output->writeln('[<com
15d80 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e ment>'...$k...$key...'</comment>
15da0 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 29 3b ].<info>'...$value...'</info>');
15dc0 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 .}.}.}.}.<?php............namesp
15de0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ace.Composer\Command;..use.Compo
15e00 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 ser\Installer;.use.Composer\Plug
15e20 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c in\CommandEvent;.use.Composer\Pl
15e40 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ugin\PluginEvents;.use.Symfony\C
15e60 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
15e80 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
15ea0 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 sole\Input\InputOption;.use.Symf
15ec0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
15ee0 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 putInterface;........class.Insta
15f00 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 llCommand.extends.Command.{.prot
15f20 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 ected.function.configure().{.$th
15f40 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 is.->setName('install').->setDes
15f60 63 72 69 70 74 69 6f 6e 28 27 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 cription('Installs.the.project.d
15f80 65 70 65 6e 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f ependencies.from.the.composer.lo
15fa0 63 6b 20 66 69 6c 65 20 69 66 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 ck.file.if.present,.or.falls.bac
15fc0 6b 20 6f 6e 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 k.on.the.composer.json.').->setD
15fe0 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e efinition(array(.new.InputOption
16000 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 ('prefer-source',.null,.InputOpt
16020 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c ion::VALUE_NONE,.'Forces.install
16040 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 ation.from.package.sources.when.
16060 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 possible,.including.VCS.informat
16080 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d ion.'),.new.InputOption('prefer-
160a0 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f dist',.null,.InputOption::VALUE_
160c0 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 NONE,.'Forces.installation.from.
160e0 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f package.dist.even.for.dev.versio
16100 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 ns.'),.new.InputOption('dry-run'
16120 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ,.null,.InputOption::VALUE_NONE,
16140 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c .'Outputs.the.operations.but.wil
16160 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 l.not.execute.anything.(implicit
16180 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e ly.enables.--verbose).'),.new.In
161a0 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 putOption('dev',.null,.InputOpti
161c0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c on::VALUE_NONE,.'Enables.install
161e0 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 ation.of.require-dev.packages.(e
16200 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 nabled.by.default,.only.present.
16220 66 6f 72 20 42 43 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d for.BC).'),.new.InputOption('no-
16240 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e dev',.null,.InputOption::VALUE_N
16260 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 ONE,.'Disables.installation.of.r
16280 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 equire-dev.packages.'),.new.Inpu
162a0 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 tOption('no-plugins',.null,.Inpu
162c0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 tOption::VALUE_NONE,.'Disables.a
162e0 6c 6c 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 ll.plugins.'),.new.InputOption('
16300 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 no-custom-installers',.null,.Inp
16320 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 utOption::VALUE_NONE,.'DEPRECATE
16340 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 D:.Use.no-plugins.instead.'),.ne
16360 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c w.InputOption('no-scripts',.null
16380 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 ,.InputOption::VALUE_NONE,.'Skip
163a0 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 s.the.execution.of.all.scripts.d
163c0 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c efined.in.composer.json.file.'),
163e0 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 .new.InputOption('no-progress',.
16400 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 null,.InputOption::VALUE_NONE,.'
16420 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e Do.not.output.download.progress.
16440 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 '),.new.InputOption('verbose',.'
16460 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f v|vv|vvv',.InputOption::VALUE_NO
16480 4e 45 2c 20 27 53 68 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e NE,.'Shows.more.details.includin
164a0 67 20 6e 65 77 20 63 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 g.new.commits.pulled.in.when.upd
164c0 61 74 69 6e 67 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 ating.packages.'),.new.InputOpti
164e0 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 on('optimize-autoloader',.'o',.I
16500 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a nputOption::VALUE_NONE,.'Optimiz
16520 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 e.autoloader.during.autoloader.d
16540 75 6d 70 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 ump').)).->setHelp(<<<EOT.The.<i
16560 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 nfo>install</info>.command.reads
16580 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 65 .the.composer.lock.file.from.the
165a0 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 .current.directory,.processes.it
165c0 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c ,.and.downloads.and.installs.all
165e0 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 .the.libraries.and.dependencies.
16600 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 69 outlined.in.that.file..If.the.fi
16620 6c 65 20 64 6f 65 73 20 6e 6f 74 0a 65 78 69 73 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 le.does.not.exist.it.will.look.f
16640 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d 65 or.composer.json.and.do.the.same
16660 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 ...<info>php.composer.phar.insta
16680 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 ll</info>..EOT.).;.}..protected.
166a0 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 function.execute(InputInterface.
166c0 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 $input,.OutputInterface.$output)
166e0 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 .{.if.($input->getOption('no-cus
16700 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 tom-installers')).{.$output->wri
16720 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 teln('<warning>You.are.using.the
16740 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e .deprecated.option."no-custom-in
16760 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 stallers"..Use."no-plugins".inst
16780 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 ead.</warning>');.$input->setOpt
167a0 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d ion('no-plugins',.true);.}..$com
167c0 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 75 65 2c poser.=.$this->getComposer(true,
167e0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 .$input->getOption('no-plugins')
16800 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 );.$composer->getDownloadManager
16820 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 ()->setOutputProgress(!$input->g
16840 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 etOption('no-progress'));.$io.=.
16860 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d $this->getIO();..$commandEvent.=
16880 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a .new.CommandEvent(PluginEvents::
168a0 43 4f 4d 4d 41 4e 44 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 COMMAND,.'install',.$input,.$out
168c0 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 put);.$composer->getEventDispatc
168e0 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 her()->dispatch($commandEvent->g
16900 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 etName(),.$commandEvent);..$inst
16920 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f all.=.Installer::create($io,.$co
16940 6d 70 6f 73 65 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b mposer);..$preferSource.=.false;
16960 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 .$preferDist.=.false;.switch.($c
16980 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 70 72 65 66 65 omposer->getConfig()->get('prefe
169a0 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a rred-install')).{.case.'source':
169c0 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 .$preferSource.=.true;.break;.ca
169e0 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 se.'dist':.$preferDist.=.true;.b
16a00 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 reak;.case.'auto':.default:...br
16a20 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 eak;.}.if.($input->getOption('pr
16a40 65 66 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 efer-source').||.$input->getOpti
16a60 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 on('prefer-dist')).{.$preferSour
16a80 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 ce.=.$input->getOption('prefer-s
16aa0 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 ource');.$preferDist.=.$input->g
16ac0 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 etOption('prefer-dist');.}..$ins
16ae0 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 tall.->setDryRun($input->getOpti
16b00 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 on('dry-run')).->setVerbose($inp
16b20 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 ut->getOption('verbose')).->setP
16b40 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 referSource($preferSource).->set
16b60 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 PreferDist($preferDist).->setDev
16b80 4d 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 Mode(!$input->getOption('no-dev'
16ba0 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f )).->setRunScripts(!$input->getO
16bc0 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 ption('no-scripts')).->setOptimi
16be0 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 zeAutoloader($input->getOption('
16c00 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 optimize-autoloader')).;..if.($i
16c20 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b nput->getOption('no-plugins')).{
16c40 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a .$install->disablePlugins();.}..
16c60 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a return.$install->run().?.0.:.1;.
16c80 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
16ca0 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 omposer\Command;..use.Composer\U
16cc0 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 til\ConfigValidator;.use.Symfony
16ce0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e \Component\Console\Input\InputIn
16d00 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 terface;.use.Symfony\Component\C
16d20 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 onsole\Input\InputArgument;.use.
16d40 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 Symfony\Component\Console\Output
16d60 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 \OutputInterface;........class.V
16d80 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b alidateCommand.extends.Command.{
16da0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 ....protected.function.configure
16dc0 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 6c 69 64 61 74 65 27 29 ().{.$this.->setName('validate')
16de0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 61 74 65 73 20 61 20 63 .->setDescription('Validates.a.c
16e00 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 omposer.json').->setDefinition(a
16e20 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 2c 20 rray(.new.InputArgument('file',.
16e40 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 70 61 74 68 20 74 InputArgument::OPTIONAL,.'path.t
16e60 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c 20 27 2e 2f 63 6f 6d 70 6f 73 o.composer.json.file',.'./compos
16e80 65 72 2e 6a 73 6f 6e 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 er.json').)).->setHelp(<<<EOT.Th
16ea0 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c 69 64 61 74 65 73 20 61 20 67 e.validate.command.validates.a.g
16ec0 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a iven.composer.json..EOT.);.}....
16ee0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 ....protected.function.execute(I
16f00 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 nputInterface.$input,.OutputInte
16f20 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d rface.$output).{.$file.=.$input-
16f40 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 >getArgument('file');..if.(!file
16f60 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 _exists($file)).{.$output->write
16f80 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 20 66 6f 75 ln('<error>'...$file...'.not.fou
16fa0 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 nd.</error>');..return.1;.}.if.(
16fc0 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e !is_readable($file)).{.$output->
16fe0 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 writeln('<error>'...$file...'.is
17000 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 .not.readable.</error>');..retur
17020 6e 20 31 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 56 n.1;.}..$validator.=.new.ConfigV
17040 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 28 24 alidator($this->getIO());.list($
17060 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 errors,.$publishErrors,.$warning
17080 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 29 s).=.$validator->validate($file)
170a0 3b 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 ;....if.(!$errors.&&.!$publishEr
170c0 72 6f 72 73 20 26 26 20 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 rors.&&.!$warnings).{.$output->w
170e0 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 riteln('<info>'...$file...'.is.v
17100 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 alid</info>');.}.elseif.(!$error
17120 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d s.&&.!$publishErrors).{.$output-
17140 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 >writeln('<info>'...$file...'.is
17160 20 76 61 6c 69 64 2c 20 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 77 61 72 6e 69 6e 67 73 3c .valid,.but.with.a.few.warnings<
17180 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 /info>');.$output->writeln('<war
171a0 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f ning>See.http://getcomposer.org/
171c0 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 doc/04-schema.md.for.details.on.
171e0 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 the.schema</warning>');.}.elseif
17200 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 .(!$errors).{.$output->writeln('
17220 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 20 66 6f 72 <info>'...$file...'.is.valid.for
17240 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 20 62 75 74 20 .simple.usage.with.composer.but.
17260 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 has</info>');.$output->writeln('
17280 3c 69 6e 66 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 20 6d 61 6b 65 20 69 74 <info>strict.errors.that.make.it
172a0 20 75 6e 61 62 6c 65 20 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 20 70 61 63 .unable.to.be.published.as.a.pac
172c0 6b 61 67 65 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e kage:</info>');.$output->writeln
172e0 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 ('<warning>See.http://getcompose
17300 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 r.org/doc/04-schema.md.for.detai
17320 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 ls.on.the.schema</warning>');.}.
17340 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e else.{.$output->writeln('<error>
17360 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 6f '...$file...'.is.invalid,.the.fo
17380 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f 75 llowing.errors/warnings.were.fou
173a0 6e 64 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 nd:</error>');.}..$messages.=.ar
173c0 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 ray(.'error'.=>.array_merge($err
173e0 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 ors,.$publishErrors),.'warning'.
17400 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 =>.$warnings,.);..foreach.($mess
17420 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 6f 72 65 61 ages.as.$style.=>.$msgs).{.forea
17440 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 ch.($msgs.as.$msg).{.$output->wr
17460 69 74 65 6c 6e 28 27 3c 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 iteln('<'...$style...'>'...$msg.
17480 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 ..'</'...$style...'>');.}.}..ret
174a0 75 72 6e 20 24 65 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3f 20 urn.$errors.||.$publishErrors.?.
174c0 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 1.:.0;.}.}.<?php............name
174e0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d space.Composer\Command;..use.Com
17500 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 poser\DependencyResolver\Pool;.u
17520 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b se.Composer\Plugin\CommandEvent;
17540 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 .use.Composer\Plugin\PluginEvent
17560 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 s;.use.Symfony\Component\Console
17580 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
175a0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
175c0 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Argument;.use.Symfony\Component\
175e0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 Console\Input\InputOption;.use.S
17600 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
17620 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 OutputInterface;......class.Depe
17640 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f ndsCommand.extends.Command.{.pro
17660 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 tected.$linkTypes.=.array(.'requ
17680 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 ire'.=>.array('requires',.'requi
176a0 72 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 res'),.'require-dev'.=>.array('d
176c0 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 2c 0a evRequires',.'requires.(dev)'),.
176e0 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 );..protected.function.configure
17700 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 27 29 0a ().{.$this.->setName('depends').
17720 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 20 70 61 ->setDescription('Shows.which.pa
17740 63 6b 61 67 65 73 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 ckages.depend.on.the.given.packa
17760 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 ge').->setDefinition(array(.new.
17780 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 InputArgument('package',.InputAr
177a0 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e gument::REQUIRED,.'Package.to.in
177c0 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 spect'),.new.InputOption('link-t
177e0 79 70 65 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 ype',.'',.InputOption::VALUE_REQ
17800 55 49 52 45 44 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 UIRED.|.InputOption::VALUE_IS_AR
17820 52 41 59 2c 20 27 4c 69 6e 6b 20 74 79 70 65 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 75 69 72 RAY,.'Link.types.to.show.(requir
17840 65 2c 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 e,.require-dev)',.array_keys($th
17860 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c is->linkTypes)),.)).->setHelp(<<
17880 3c 45 4f 54 0a 44 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 <EOT.Displays.detailed.informati
178a0 6f 6e 20 61 62 6f 75 74 20 77 68 65 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 72 65 66 65 on.about.where.a.package.is.refe
178c0 72 65 6e 63 65 64 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 renced...<info>php.composer.phar
178e0 20 64 65 70 65 6e 64 73 20 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f .depends.composer/composer</info
17900 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e >..EOT.).;.}..protected.function
17920 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 .execute(InputInterface.$input,.
17940 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 OutputInterface.$output).{.$comp
17960 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 oser.=.$this->getComposer();..$c
17980 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 ommandEvent.=.new.CommandEvent(P
179a0 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 65 70 65 6e 64 73 27 2c luginEvents::COMMAND,.'depends',
179c0 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 .$input,.$output);.$composer->ge
179e0 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f tEventDispatcher()->dispatch($co
17a00 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 mmandEvent->getName(),.$commandE
17a20 76 65 6e 74 29 3b 0a 0a 24 72 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 vent);..$repo.=.$composer->getRe
17a40 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 positoryManager()->getLocalRepos
17a60 69 74 6f 72 79 28 29 3b 0a 24 6e 65 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 itory();.$needle.=.$input->getAr
17a80 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 gument('package');..$pool.=.new.
17aa0 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 Pool();.$pool->addRepository($re
17ac0 70 6f 29 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f po);..$packages.=.$pool->whatPro
17ae0 76 69 64 65 73 28 24 6e 65 65 64 6c 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 vides($needle);.if.(empty($packa
17b00 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 ges)).{.throw.new.\InvalidArgume
17b20 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b ntException('Could.not.find.pack
17b40 61 67 65 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 20 69 6e 20 79 6f 75 72 20 70 72 6f 6a 65 63 age."'.$needle.'".in.your.projec
17b60 74 2e 27 29 3b 0a 7d 0a 0a 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 6e t.');.}..$linkTypes.=.$this->lin
17b80 6b 54 79 70 65 73 3b 0a 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 kTypes;..$types.=.array_map(func
17ba0 74 69 6f 6e 20 28 24 74 79 70 65 29 20 75 73 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 20 7b 0a tion.($type).use.($linkTypes).{.
17bc0 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 $type.=.rtrim($type,.'s');.if.(!
17be0 69 73 73 65 74 28 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f isset($linkTypes[$type])).{.thro
17c00 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
17c20 27 55 6e 65 78 70 65 63 74 65 64 20 6c 69 6e 6b 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 2e 27 'Unexpected.link.type:.'.$type.'
17c40 2c 20 76 61 6c 69 64 20 74 79 70 65 73 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 ,.valid.types:.'.implode(',.',.a
17c60 72 72 61 79 5f 6b 65 79 73 28 24 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 rray_keys($linkTypes)));.}..retu
17c80 72 6e 20 24 74 79 70 65 3b 0a 7d 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 rn.$type;.},.$input->getOption('
17ca0 6c 69 6e 6b 2d 74 79 70 65 27 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 link-type'));..$messages.=.array
17cc0 28 29 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ();.$outputPackages.=.array();.f
17ce0 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 oreach.($repo->getPackages().as.
17d00 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 $package).{.foreach.($types.as.$
17d20 74 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 type).{.foreach.($package->{'get
17d40 27 2e 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 30 5d 7d 28 29 20 61 73 20 24 6c 69 '.$linkTypes[$type][0]}().as.$li
17d60 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d nk).{.if.($link->getTarget().===
17d80 20 24 6e 65 65 64 6c 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 74 50 61 .$needle).{.if.(!isset($outputPa
17da0 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a ckages[$package->getName()])).{.
17dc0 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 63 6b 61 67 65 2d $messages[].=.'<info>'.$package-
17de0 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 20 2e 20 >getPrettyName()...'</info>.'...
17e00 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 31 5d 20 2e 20 27 20 27 20 2e 20 24 6e 65 $linkTypes[$type][1]...'.'...$ne
17e20 65 64 6c 65 20 2e 27 20 28 3c 69 6e 66 6f 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 edle..'.(<info>'...$link->getPre
17e40 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 29 27 3b 0a 24 6f ttyConstraint()...'</info>)';.$o
17e60 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 utputPackages[$package->getName(
17e80 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 65 73 73 61 )].=.true;.}.}.}.}.}..if.($messa
17ea0 67 65 73 29 20 7b 0a 73 6f 72 74 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 6f 75 74 70 75 74 2d ges).{.sort($messages);.$output-
17ec0 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f >writeln($messages);.}.else.{.$o
17ee0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 54 68 65 72 65 20 69 73 20 6e utput->writeln('<info>There.is.n
17f00 6f 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e o.installed.package.depending.on
17f20 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a ."'.$needle.'".</info>');.}.}.}.
17f40 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
17f60 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ser\Command;..use.Symfony\Compon
17f80 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 ent\Console\Input\InputInterface
17fa0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
17fc0 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Input\InputArgument;.use.Symfony
17fe0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 \Component\Console\Input\InputOp
18000 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tion;.use.Symfony\Component\Cons
18020 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
18040 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 Composer\Repository\CompositeRep
18060 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ository;.use.Composer\Repository
18080 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \PlatformRepository;.use.Compose
180a0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 r\Repository\RepositoryInterface
180c0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 ;.use.Composer\Factory;.use.Comp
180e0 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f oser\Plugin\CommandEvent;.use.Co
18100 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a mposer\Plugin\PluginEvents;.....
18120 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d class.SearchCommand.extends.Comm
18140 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 65 73 3b 0a 70 72 6f 74 65 63 and.{.protected.$matches;.protec
18160 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ted.$lowMatches.=.array();.prote
18180 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b cted.$tokens;.protected.$output;
181a0 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 .protected.$onlyName;..protected
181c0 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e .function.configure().{.$this.->
181e0 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 setName('search').->setDescripti
18200 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 on('Search.for.packages').->setD
18220 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e efinition(array(.new.InputOption
18240 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ('only-name',.'N',.InputOption::
18260 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 61 72 63 68 20 6f 6e 6c 79 20 69 6e 20 6e 61 6d 65 VALUE_NONE,.'Search.only.in.name
18280 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 2c 20 '),.new.InputArgument('tokens',.
182a0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 InputArgument::IS_ARRAY.|.InputA
182c0 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f 20 73 65 rgument::REQUIRED,.'tokens.to.se
182e0 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a arch.for'),.)).->setHelp(<<<EOT.
18300 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 The.search.command.searches.for.
18320 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 packages.by.its.name.<info>php.c
18340 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 6f 6d 70 omposer.phar.search.symfony.comp
18360 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 oser</info>..EOT.).;.}..protecte
18380 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 d.function.execute(InputInterfac
183a0 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
183c0 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 t).{...$platformRepo.=.new.Platf
183e0 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 ormRepository;.if.($composer.=.$
18400 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 this->getComposer(false)).{.$loc
18420 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 alRepo.=.$composer->getRepositor
18440 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 yManager()->getLocalRepository()
18460 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 ;.$installedRepo.=.new.Composite
18480 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c Repository(array($localRepo,.$pl
184a0 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f atformRepo));.$repos.=.new.Compo
184c0 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 siteRepository(array_merge(array
184e0 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 ($installedRepo),.$composer->get
18500 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f RepositoryManager()->getReposito
18520 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 ries()));.}.else.{.$defaultRepos
18540 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 .=.Factory::createDefaultReposit
18560 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e ories($this->getIO());.$output->
18580 77 72 69 74 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 writeln('No.composer.json.found.
185a0 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e in.the.current.directory,.showin
185c0 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 g.packages.from.'...implode(',.'
185e0 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 ,.array_keys($defaultRepos)));.$
18600 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 installedRepo.=.$platformRepo;.$
18620 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 repos.=.new.CompositeRepository(
18640 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f array_merge(array($installedRepo
18660 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 ),.$defaultRepos));.}..if.($comp
18680 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d oser).{.$commandEvent.=.new.Comm
186a0 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 andEvent(PluginEvents::COMMAND,.
186c0 27 73 65 61 72 63 68 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 'search',.$input,.$output);.$com
186e0 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 poser->getEventDispatcher()->dis
18700 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 patch($commandEvent->getName(),.
18720 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 24 6f 6e 6c 79 4e 61 6d 65 20 3d 20 24 $commandEvent);.}..$onlyName.=.$
18740 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 29 3b 0a 0a input->getOption('only-name');..
18760 24 66 6c 61 67 73 20 3d 20 24 6f 6e 6c 79 4e 61 6d 65 20 3f 20 52 65 70 6f 73 69 74 6f 72 79 49 $flags.=.$onlyName.?.RepositoryI
18780 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 4e 41 4d 45 20 3a 20 52 65 70 6f 73 69 74 6f nterface::SEARCH_NAME.:.Reposito
187a0 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 3b 0a 24 72 ryInterface::SEARCH_FULLTEXT;.$r
187c0 65 73 75 6c 74 73 20 3d 20 24 72 65 70 6f 73 2d 3e 73 65 61 72 63 68 28 69 6d 70 6c 6f 64 65 28 esults.=.$repos->search(implode(
187e0 27 20 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 '.',.$input->getArgument('tokens
18800 27 29 29 2c 20 24 66 6c 61 67 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 75 6c 74 73 ')),.$flags);..foreach.($results
18820 20 61 73 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 .as.$result).{.$output->writeln(
18840 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 28 69 73 73 65 74 28 24 72 65 73 75 6c 74 $result['name']...(isset($result
18860 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 3f 20 27 20 27 2e 20 24 72 65 73 75 6c 74 5b ['description']).?.'.'..$result[
18880 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 20 3a 20 27 27 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 'description'].:.''));.}.}.}.<?p
188a0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
188c0 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 \Command;..use.Composer\Composer
188e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 ;.use.Composer\Util\RemoteFilesy
18900 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 stem;.use.Composer\Downloader\Fi
18920 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 lesystemException;.use.Symfony\C
18940 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
18960 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
18980 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a sole\Output\OutputInterface;....
189a0 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 .class.SelfUpdateCommand.extends
189c0 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f .Command.{.protected.function.co
189e0 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 6c nfigure().{.$this.->setName('sel
18a00 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 f-update').->setAliases(array('s
18a20 65 6c 66 75 70 64 61 74 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 elfupdate')).->setDescription('U
18a40 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 pdates.composer.phar.to.the.late
18a60 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 st.version.').->setHelp(<<<EOT.T
18a80 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d he.<info>self-update</info>.comm
18aa0 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 20 66 6f 72 20 6e and.checks.getcomposer.org.for.n
18ac0 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 61 6e 64 20 69 66 ewer.versions.of.composer.and.if
18ae0 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 6c 61 74 65 73 74 2e 0a 0a 3c 69 .found,.installs.the.latest...<i
18b00 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 6c 66 2d 75 70 64 61 74 nfo>php.composer.phar.self-updat
18b20 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 e</info>..EOT.).;.}..protected.f
18b40 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 unction.execute(InputInterface.$
18b60 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a input,.OutputInterface.$output).
18b80 7b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 72 65 61 6c 70 61 74 68 28 24 5f 53 45 {.$localFilename.=.realpath($_SE
18ba0 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 20 3f 3a 20 24 5f 53 45 52 56 45 52 5b 27 61 72 RVER['argv'][0]).?:.$_SERVER['ar
18bc0 67 76 27 5d 5b 30 5d 3b 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 gv'][0];.$tempFilename.=.dirname
18be0 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d ($localFilename)...'/'...basenam
18c00 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e 70 68 61 72 27 29 2e 27 2d 74 65 6d e($localFilename,.'.phar').'-tem
18c20 70 2e 70 68 61 72 27 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 74 65 p.phar';....if.(!is_writable($te
18c40 6d 70 44 69 72 65 63 74 6f 72 79 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 65 6d 70 46 69 6c 65 6e mpDirectory.=.dirname($tempFilen
18c60 61 6d 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 ame))).{.throw.new.FilesystemExc
18c80 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c 65 64 3a 20 eption('Composer.update.failed:.
18ca0 74 68 65 20 22 27 2e 24 74 65 6d 70 44 69 72 65 63 74 6f 72 79 2e 27 22 20 64 69 72 65 63 74 6f the."'.$tempDirectory.'".directo
18cc0 72 79 20 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 74 65 6d 70 20 66 69 6c ry.used.to.download.the.temp.fil
18ce0 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 0a 69 66 20 e.could.not.be.written');.}..if.
18d00 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 20 7b (!is_writable($localFilename)).{
18d20 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 .throw.new.FilesystemException('
18d40 43 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 Composer.update.failed:.the."'.$
18d60 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2e 20 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 localFilename..'".file.could.not
18d80 20 62 65 20 77 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 .be.written');.}..$protocol.=.ex
18da0 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 tension_loaded('openssl').?.'htt
18dc0 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 ps'.:.'http';.$rfs.=.new.RemoteF
18de0 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6c 61 74 65 ilesystem($this->getIO());.$late
18e00 73 74 20 3d 20 74 72 69 6d 28 24 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 st.=.trim($rfs->getContents('get
18e20 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 composer.org',.$protocol...'://g
18e40 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 etcomposer.org/version',.false))
18e60 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 ;..if.(Composer::VERSION.!==.$la
18e80 74 65 73 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 test).{.$output->writeln(sprintf
18ea0 28 22 55 70 64 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f ("Updating.to.version.<info>%s</
18ec0 69 6e 66 6f 3e 2e 22 2c 20 24 6c 61 74 65 73 74 29 29 3b 0a 0a 24 72 65 6d 6f 74 65 46 69 6c 65 info>.",.$latest));..$remoteFile
18ee0 6e 61 6d 65 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 name.=.$protocol...'://getcompos
18f00 65 72 2e 6f 72 67 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 3b 0a 0a 24 72 66 73 2d 3e 63 6f er.org/composer.phar';..$rfs->co
18f20 70 79 28 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 72 65 6d 6f 74 65 46 69 6c py('getcomposer.org',.$remoteFil
18f40 65 6e 61 6d 65 2c 20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 21 66 69 6c ename,.$tempFilename);..if.(!fil
18f60 65 5f 65 78 69 73 74 73 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 24 6f 75 74 70 e_exists($tempFilename)).{.$outp
18f80 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 6f 77 6e 6c 6f 61 64 ut->writeln('<error>The.download
18fa0 20 6f 66 20 74 68 65 20 6e 65 77 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 66 61 69 .of.the.new.composer.version.fai
18fc0 6c 65 64 20 66 6f 72 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 72 65 61 73 6f 6e 27 29 3b 0a led.for.an.unexpected.reason');.
18fe0 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 40 63 68 6d 6f 64 28 24 74 65 6d 70 .return.1;.}..try.{.@chmod($temp
19000 46 69 6c 65 6e 61 6d 65 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 0a 20 24 70 Filename,.0777.&.~umask());...$p
19020 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a har.=.new.\Phar($tempFilename);.
19040 0a 20 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 72 65 6e 61 6d 65 28 24 74 65 6d 70 46 69 6c 65 ..unset($phar);.rename($tempFile
19060 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 name,.$localFilename);.}.catch.(
19080 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 74 65 6d 70 46 69 \Exception.$e).{.@unlink($tempFi
190a0 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 55 6e 65 lename);.if.(!$e.instanceof.\Une
190c0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 65 20 69 6e 73 xpectedValueException.&&.!$e.ins
190e0 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 tanceof.\PharException).{.throw.
19100 24 65 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 $e;.}.$output->writeln('<error>T
19120 68 65 20 64 6f 77 6e 6c 6f 61 64 20 69 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 2d 3e he.download.is.corrupted.('.$e->
19140 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 74 getMessage().').</error>');.$out
19160 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 put->writeln('<error>Please.re-r
19180 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 un.the.self-update.command.to.tr
191a0 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 y.again.</error>');.}.}.else.{.$
191c0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 75 output->writeln("<info>You.are.u
191e0 73 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e sing.the.latest.composer.version
19200 2e 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .</info>");.}.}.}.<?php.........
19220 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a ...namespace.Composer\Command;..
19240 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
19260 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c rface;.use.Composer\Json\JsonFil
19280 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c e;.use.Composer\Package\Version\
192a0 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 VersionParser;.use.Composer\Plug
192c0 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c in\CommandEvent;.use.Composer\Pl
192e0 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ugin\PluginEvents;.use.Symfony\C
19300 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 48 65 6c omponent\Console\Helper\TableHel
19320 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f per;.use.Symfony\Component\Conso
19340 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d le\Input\InputInterface;.use.Sym
19360 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
19380 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e utArgument;.use.Symfony\Componen
193a0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
193c0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
193e0 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 63 t\OutputInterface;.....class.Lic
19400 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 ensesCommand.extends.Command.{.p
19420 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a rotected.function.configure().{.
19440 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 6c 69 63 65 6e 73 65 73 27 29 0a 2d 3e 73 65 $this.->setName('licenses').->se
19460 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 tDescription('Show.information.a
19480 62 6f 75 74 20 6c 69 63 65 6e 73 65 73 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 0a bout.licenses.of.dependencies').
194a0 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 ->setDefinition(array(.new.Input
194c0 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f Option('format',.'f',.InputOptio
194e0 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 n::VALUE_REQUIRED,.'Format.of.th
19500 65 20 6f 75 74 70 75 74 3a 20 74 65 78 74 20 6f 72 20 6a 73 6f 6e 27 2c 20 27 74 65 78 74 27 29 e.output:.text.or.json',.'text')
19520 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 6c 69 63 65 6e 73 ,.)).->setHelp(<<<EOT.The.licens
19540 65 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f e.command.displays.detailed.info
19560 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 6c 69 63 65 6e 73 65 73 20 6f 66 0a 74 68 rmation.about.the.licenses.of.th
19580 65 20 69 6e 73 74 61 6c 6c 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 45 4f 54 0a 29 e.installed.dependencies...EOT.)
195a0 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .;.}..protected.function.execute
195c0 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
195e0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 terface.$output).{.$composer.=.$
19600 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 this->getComposer();..$commandEv
19620 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 ent.=.new.CommandEvent(PluginEve
19640 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 6c 69 63 65 6e 73 65 73 27 2c 20 24 69 6e 70 75 74 nts::COMMAND,.'licenses',.$input
19660 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 ,.$output);.$composer->getEventD
19680 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 ispatcher()->dispatch($commandEv
196a0 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a ent->getName(),.$commandEvent);.
196c0 0a 24 72 6f 6f 74 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 .$root.=.$composer->getPackage()
196e0 3b 0a 24 72 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ;.$repo.=.$composer->getReposito
19700 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 ryManager()->getLocalRepository(
19720 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e );..$versionParser.=.new.Version
19740 50 61 72 73 65 72 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b Parser;..foreach.($repo->getPack
19760 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b ages().as.$package).{.$packages[
19780 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b $package->getName()].=.$package;
197a0 0a 7d 0a 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 .}..ksort($packages);..switch.($
197c0 66 6f 72 6d 61 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d format.=.$input->getOption('form
197e0 61 74 27 29 29 20 7b 0a 63 61 73 65 20 27 74 65 78 74 27 3a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 at')).{.case.'text':.$output->wr
19800 69 74 65 6c 6e 28 27 4e 61 6d 65 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 72 6f 6f 74 2d 3e 67 iteln('Name:.<comment>'.$root->g
19820 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f etPrettyName().'</comment>');.$o
19840 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 56 65 72 73 69 6f 6e 3a 20 3c 63 6f 6d 6d 65 6e utput->writeln('Version:.<commen
19860 74 3e 27 2e 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f t>'.$versionParser->formatVersio
19880 6e 28 24 72 6f 6f 74 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d n($root).'</comment>');.$output-
198a0 3e 77 72 69 74 65 6c 6e 28 27 4c 69 63 65 6e 73 65 73 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 28 >writeln('Licenses:.<comment>'.(
198c0 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 implode(',.',.$root->getLicense(
198e0 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 )).?:.'none').'</comment>');.$ou
19900 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 44 65 70 65 6e 64 65 6e 63 69 65 73 3a 27 29 3b 0a tput->writeln('Dependencies:');.
19920 0a 24 74 61 62 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d .$table.=.$this->getHelperSet()-
19940 3e 67 65 74 28 27 74 61 62 6c 65 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 4c 61 79 6f 75 74 >get('table');.$table->setLayout
19960 28 54 61 62 6c 65 48 65 6c 70 65 72 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 53 53 29 (TableHelper::LAYOUT_BORDERLESS)
19980 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 ;.$table->setHorizontalBorderCha
199a0 72 28 27 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 r('');.foreach.($packages.as.$pa
199c0 63 6b 61 67 65 29 20 7b 0a 24 74 61 62 6c 65 2d 3e 61 64 64 52 6f 77 28 61 72 72 61 79 28 0a 24 ckage).{.$table->addRow(array(.$
199e0 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 24 76 65 72 73 69 package->getPrettyName(),.$versi
19a00 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 onParser->formatVersion($package
19a20 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 ),.implode(',.',.$package->getLi
19a40 63 65 6e 73 65 28 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 2c 0a 29 29 3b 0a 7d 0a 24 74 61 62 6c 65 cense()).?:.'none',.));.}.$table
19a60 2d 3e 72 65 6e 64 65 72 28 24 6f 75 74 70 75 74 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 ->render($output);.break;..case.
19a80 27 6a 73 6f 6e 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 'json':.foreach.($packages.as.$p
19aa0 61 63 6b 61 67 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 70 61 63 6b 61 67 65 ackage).{.$dependencies[$package
19ac0 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 ->getPrettyName()].=.array(.'ver
19ae0 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 sion'.=>.$versionParser->formatV
19b00 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 24 ersion($package),.'license'.=>.$
19b20 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 75 package->getLicense(),.);.}..$ou
19b40 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 61 tput->writeln(JsonFile::encode(a
19b60 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 rray(.'name'.=>.$root->getPretty
19b80 4e 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 50 61 72 Name(),.'version'.=>.$versionPar
19ba0 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 72 6f 6f 74 29 2c 0a 27 6c 69 63 65 ser->formatVersion($root),.'lice
19bc0 6e 73 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 27 64 65 nse'.=>.$root->getLicense(),.'de
19be0 70 65 6e 64 65 6e 63 69 65 73 27 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 0a 29 29 pendencies'.=>.$dependencies,.))
19c00 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 );.break;..default:.throw.new.\R
19c20 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 73 75 70 70 6f untimeException(sprintf('Unsuppo
19c40 72 74 65 64 20 66 6f 72 6d 61 74 20 22 25 73 22 2e 20 20 53 65 65 20 68 65 6c 70 20 66 6f 72 20 rted.format."%s"...See.help.for.
19c60 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a supported.formats.',.$format));.
19c80 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 }.}.}.<?php............namespace
19ca0 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c .Composer\Command;..use.Symfony\
19cc0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 Component\Console\Input\InputInt
19ce0 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f erface;.use.Symfony\Component\Co
19d00 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 nsole\Input\InputArgument;.use.S
19d20 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
19d40 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
19d60 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
19d80 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 ;.use.Composer\Factory;.use.Comp
19da0 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f oser\Installer;.use.Composer\Jso
19dc0 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 n\JsonFile;.use.Composer\Json\Js
19de0 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b onManipulator;.use.Composer\Pack
19e00 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 age\Version\VersionParser;.use.C
19e20 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 omposer\Plugin\CommandEvent;.use
19e40 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 0a .Composer\Plugin\PluginEvents;..
19e60 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 ....class.RequireCommand.extends
19e80 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f .InitCommand.{.protected.functio
19ea0 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 n.configure().{.$this.->setName(
19ec0 27 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 'require').->setDescription('Add
19ee0 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 s.required.packages.to.your.comp
19f00 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e oser.json.and.installs.them').->
19f20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 setDefinition(array(.new.InputAr
19f40 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 gument('packages',.InputArgument
19f60 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 ::IS_ARRAY.|.InputArgument::OPTI
19f80 4f 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 61 20 76 ONAL,.'Required.package.with.a.v
19fa0 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a ersion.constraint,.e.g..foo/bar:
19fc0 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 1.0.0.or.foo/bar=1.0.0.or."foo/b
19fe0 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 ar.1.0.0"'),.new.InputOption('de
1a000 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e v',.null,.InputOption::VALUE_NON
1a020 45 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 E,.'Add.requirement.to.require-d
1a040 65 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 ev.'),.new.InputOption('prefer-s
1a060 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ource',.null,.InputOption::VALUE
1a080 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d _NONE,.'Forces.installation.from
1a0a0 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 .package.sources.when.possible,.
1a0c0 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 including.VCS.information.'),.ne
1a0e0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c w.InputOption('prefer-dist',.nul
1a100 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 l,.InputOption::VALUE_NONE,.'For
1a120 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 ces.installation.from.package.di
1a140 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 st.even.for.dev.versions.'),.new
1a160 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c .InputOption('no-progress',.null
1a180 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e ,.InputOption::VALUE_NONE,.'Do.n
1a1a0 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a ot.output.download.progress.'),.
1a1c0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c new.InputOption('no-update',.nul
1a1e0 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 l,.InputOption::VALUE_NONE,.'Dis
1a200 61 62 6c 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 ables.the.automatic.update.of.th
1a220 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 e.dependencies.'),.)).->setHelp(
1a240 3c 3c 3c 45 4f 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 <<<EOT.The.require.command.adds.
1a260 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 required.packages.to.your.compos
1a280 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 0a 0a 49 66 20 79 6f er.json.and.installs.them..If.yo
1a2a0 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 u.do.not.want.to.install.the.new
1a2c0 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 .dependencies.immediately.you.ca
1a2e0 6e 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 2d 2d 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a n.call.it.with.--no-update..EOT.
1a300 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 ).;.}..protected.function.execut
1a320 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 e(InputInterface.$input,.OutputI
1a340 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 nterface.$output).{.$file.=.Fact
1a360 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 21 66 69 ory::getComposerFile();..if.(!fi
1a380 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 20 26 26 20 21 66 69 6c 65 5f 70 75 74 5f 63 6f le_exists($file).&&.!file_put_co
1a3a0 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 22 7b 5c 6e 7d 5c 6e 22 29 29 20 7b 0a 24 6f 75 74 70 ntents($file,."{\n}\n")).{.$outp
1a3c0 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 63 6f ut->writeln('<error>'.$file.'.co
1a3e0 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a uld.not.be.created.</error>');..
1a400 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 return.1;.}.if.(!is_readable($fi
1a420 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e le)).{.$output->writeln('<error>
1a440 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f '.$file.'.is.not.readable.</erro
1a460 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 r>');..return.1;.}.if.(!is_writa
1a480 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 ble($file)).{.$output->writeln('
1a4a0 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 <error>'.$file.'.is.not.writable
1a4c0 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 6a 73 6f 6e .</error>');..return.1;.}..$json
1a4e0 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 .=.new.JsonFile($file);.$compose
1a500 72 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b r.=.$json->read();.$composerBack
1a520 75 70 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 up.=.file_get_contents($json->ge
1a540 74 50 61 74 68 28 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 tPath());..$requirements.=.$this
1a560 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 ->determineRequirements($input,.
1a580 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 $output,.$input->getArgument('pa
1a5a0 63 6b 61 67 65 73 27 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 ckages'));..$requireKey.=.$input
1a5c0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 ->getOption('dev').?.'require-de
1a5e0 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 v'.:.'require';.$baseRequirement
1a600 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 79 s.=.array_key_exists($requireKey
1a620 2c 20 24 63 6f 6d 70 6f 73 65 72 29 20 3f 20 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 ,.$composer).?.$composer[$requir
1a640 65 4b 65 79 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d eKey].:.array();.$requirements.=
1a660 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 .$this->formatRequirements($requ
1a680 69 72 65 6d 65 6e 74 73 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e irements);....$versionParser.=.n
1a6a0 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 ew.VersionParser();.foreach.($re
1a6c0 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 76 65 quirements.as.$constraint).{.$ve
1a6e0 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 rsionParser->parseConstraints($c
1a700 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 onstraint);.}..if.(!$this->updat
1a720 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 24 62 61 73 65 52 65 71 75 69 72 65 eFileCleanly($json,.$baseRequire
1a740 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 4b 65 ments,.$requirements,.$requireKe
1a760 79 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 y)).{.foreach.($requirements.as.
1a780 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 73 65 52 65 71 $package.=>.$version).{.$baseReq
1a7a0 75 69 72 65 6d 65 6e 74 73 5b 24 70 61 63 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a uirements[$package].=.$version;.
1a7c0 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 }..$composer[$requireKey].=.$bas
1a7e0 65 52 65 71 75 69 72 65 6d 65 6e 74 73 3b 0a 24 6a 73 6f 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d eRequirements;.$json->write($com
1a800 70 6f 73 65 72 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e poser);.}..$output->writeln('<in
1a820 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 20 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 3c 2f 69 fo>'.$file.'.has.been.updated</i
1a840 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 nfo>');..if.($input->getOption('
1a860 6e 6f 2d 75 70 64 61 74 65 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 no-update')).{.return.0;.}....$c
1a880 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a omposer.=.$this->getComposer();.
1a8a0 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d $composer->getDownloadManager()-
1a8c0 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f >setOutputProgress(!$input->getO
1a8e0 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 ption('no-progress'));.$io.=.$th
1a900 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 is->getIO();..$commandEvent.=.ne
1a920 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d w.CommandEvent(PluginEvents::COM
1a940 4d 41 4e 44 2c 20 27 72 65 71 75 69 72 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 MAND,.'require',.$input,.$output
1a960 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 );.$composer->getEventDispatcher
1a980 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e ()->dispatch($commandEvent->getN
1a9a0 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c ame(),.$commandEvent);..$install
1a9c0 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f .=.Installer::create($io,.$compo
1a9e0 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e ser);..$install.->setVerbose($in
1aa00 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 put->getOption('verbose')).->set
1aa20 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 PreferSource($input->getOption('
1aa40 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 prefer-source')).->setPreferDist
1aa60 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 ($input->getOption('prefer-dist'
1aa80 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 )).->setDevMode(true).->setUpdat
1aaa0 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 e(true).->setUpdateWhitelist(arr
1aac0 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 29 3b 0a 3b 0a 0a 69 66 20 28 ay_keys($requirements));.;..if.(
1aae0 21 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 !$install->run()).{.$output->wri
1ab00 74 65 6c 6e 28 22 5c 6e 22 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 teln("\n".'<error>Installation.f
1ab20 61 69 6c 65 64 2c 20 72 65 76 65 72 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 ailed,.reverting.'.$file.'.to.it
1ab40 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e 74 65 6e 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 s.original.content.</error>');.f
1ab60 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 ile_put_contents($json->getPath(
1ab80 29 2c 20 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a ),.$composerBackup);..return.1;.
1aba0 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e }..return.0;.}..private.function
1abc0 20 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 .updateFileCleanly($json,.array.
1abe0 24 62 61 73 65 2c 20 61 72 72 61 79 20 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 0a $base,.array.$new,.$requireKey).
1ac00 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 {.$contents.=.file_get_contents(
1ac20 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 $json->getPath());..$manipulator
1ac40 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 .=.new.JsonManipulator($contents
1ac60 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e );..foreach.($new.as.$package.=>
1ac80 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f .$constraint).{.if.(!$manipulato
1aca0 72 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 r->addLink($requireKey,.$package
1acc0 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a ,.$constraint)).{.return.false;.
1ace0 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 }.}..file_put_contents($json->ge
1ad00 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e tPath(),.$manipulator->getConten
1ad20 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ts());..return.true;.}..protecte
1ad40 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 d.function.interact(InputInterfa
1ad60 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 ce.$input,.OutputInterface.$outp
1ad80 75 74 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ut).{.return;.}.}.<?php.........
1ada0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a ...namespace.Composer\Command;..
1adc0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 use.Composer\Plugin\CommandEvent
1ade0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e ;.use.Composer\Plugin\PluginEven
1ae00 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c ts;.use.Symfony\Component\Consol
1ae20 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
1ae40 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
1ae60 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 tOption;.use.Symfony\Component\C
1ae80 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a onsole\Output\OutputInterface;..
1aea0 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 20 65 78 74 ...class.DumpAutoloadCommand.ext
1aec0 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ends.Command.{.protected.functio
1aee0 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 n.configure().{.$this.->setName(
1af00 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 'dump-autoload').->setAliases(ar
1af20 72 61 79 28 27 64 75 6d 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 ray('dumpautoload')).->setDescri
1af40 70 74 69 6f 6e 28 27 44 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 29 0a 2d 3e ption('Dumps.the.autoloader').->
1af60 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 setDefinition(array(.new.InputOp
1af80 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('optimize',.'o',.InputOptio
1afa0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 53 52 30 20 70 n::VALUE_NONE,.'Optimizes.PSR0.p
1afc0 61 63 6b 61 67 65 73 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 20 77 69 74 68 20 63 6c 61 73 73 6d ackages.to.be.loaded.with.classm
1afe0 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e 2e 27 29 2c aps.too,.good.for.production.'),
1b000 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 .)).->setHelp(<<<EOT.<info>php.c
1b020 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f omposer.phar.dump-autoload</info
1b040 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 >.EOT.).;.}..protected.function.
1b060 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f execute(InputInterface.$input,.O
1b080 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 utputInterface.$output).{.$outpu
1b0a0 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 t->writeln('<info>Generating.aut
1b0c0 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 oload.files</info>');..$composer
1b0e0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 .=.$this->getComposer();..$comma
1b100 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 ndEvent.=.new.CommandEvent(Plugi
1b120 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 nEvents::COMMAND,.'dump-autoload
1b140 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e ',.$input,.$output);.$composer->
1b160 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 getEventDispatcher()->dispatch($
1b180 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e commandEvent->getName(),.$comman
1b1a0 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d dEvent);..$installationManager.=
1b1c0 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 .$composer->getInstallationManag
1b1e0 65 72 28 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 er();.$localRepo.=.$composer->ge
1b200 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 tRepositoryManager()->getLocalRe
1b220 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 pository();.$package.=.$composer
1b240 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f ->getPackage();.$config.=.$compo
1b260 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 ser->getConfig();..$composer->ge
1b280 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 tAutoloadGenerator()->dump($conf
1b2a0 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 ig,.$localRepo,.$package,.$insta
1b2c0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 69 6e 70 llationManager,.'composer',.$inp
1b2e0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a ut->getOption('optimize'));.}.}.
1b300 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
1b320 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 ser\Command;..use.Composer\Insta
1b340 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 ller;.use.Composer\Factory;.use.
1b360 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
1b380 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 InputInterface;.use.Symfony\Comp
1b3a0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e onent\Console\Input\InputArgumen
1b3c0 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 t;.use.Symfony\Component\Console
1b3e0 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Input\StringInput;.use.Symfony\
1b400 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 Component\Console\Output\OutputI
1b420 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e nterface;.....class.GlobalComman
1b440 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 d.extends.Command.{.protected.fu
1b460 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
1b480 4e 61 6d 65 28 27 67 6c 6f 62 61 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 Name('global').->setDescription(
1b4a0 27 41 6c 6c 6f 77 73 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 'Allows.running.commands.in.the.
1b4c0 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 65 72 20 64 69 72 20 28 24 43 4f 4d 50 4f 53 45 52 5f 48 global.composer.dir.($COMPOSER_H
1b4e0 4f 4d 45 29 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e OME).').->setDefinition(array(.n
1b500 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2c ew.InputArgument('command-name',
1b520 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 27 29 2c 0a 6e .InputArgument::REQUIRED,.''),.n
1b540 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 ew.InputArgument('args',.InputAr
1b560 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 gument::IS_ARRAY.|.InputArgument
1b580 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c ::OPTIONAL,.''),.)).->setHelp(<<
1b5a0 3c 45 4f 54 0a 55 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 73 20 61 20 77 72 61 70 70 <EOT.Use.this.command.as.a.wrapp
1b5c0 65 72 20 74 6f 20 72 75 6e 20 6f 74 68 65 72 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 er.to.run.other.Composer.command
1b5e0 73 0a 77 69 74 68 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 43 s.within.the.global.context.of.C
1b600 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 OMPOSER_HOME...You.can.use.this.
1b620 74 6f 20 69 6e 73 74 61 6c 6c 20 43 4c 49 20 75 74 69 6c 69 74 69 65 73 20 67 6c 6f 62 61 6c 6c to.install.CLI.utilities.globall
1b640 79 2c 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 0a 69 73 20 74 6f 20 61 64 64 20 74 68 65 20 43 4f y,.all.you.need.is.to.add.the.CO
1b660 4d 50 4f 53 45 52 5f 48 4f 4d 45 2f 76 65 6e 64 6f 72 2f 62 69 6e 20 64 69 72 20 74 6f 20 79 6f MPOSER_HOME/vendor/bin.dir.to.yo
1b680 75 72 20 50 41 54 48 20 65 6e 76 20 76 61 72 2e 0a 0a 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 ur.PATH.env.var...COMPOSER_HOME.
1b6a0 69 73 20 63 3a 5c 55 73 65 72 73 5c 3c 75 73 65 72 3e 5c 41 70 70 44 61 74 61 5c 52 6f 61 6d 69 is.c:\Users\<user>\AppData\Roami
1b6c0 6e 67 5c 43 6f 6d 70 6f 73 65 72 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 61 6e 64 20 2f 68 6f 6d 65 ng\Composer.on.Windows.and./home
1b6e0 2f 3c 75 73 65 72 3e 2f 2e 63 6f 6d 70 6f 73 65 72 20 6f 6e 20 75 6e 69 78 20 73 79 73 74 65 6d /<user>/.composer.on.unix.system
1b700 73 2e 0a 0a 4e 6f 74 65 3a 20 54 68 69 73 20 70 61 74 68 20 6d 61 79 20 76 61 72 79 20 64 65 70 s...Note:.This.path.may.vary.dep
1b720 65 6e 64 69 6e 67 20 6f 6e 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 62 69 6e 2d ending.on.customizations.to.bin-
1b740 64 69 72 20 69 6e 20 0a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 74 68 65 20 65 6e 76 dir.in..composer.json.or.the.env
1b760 69 72 6f 6e 6d 65 6e 74 61 6c 20 76 61 72 69 61 62 6c 65 20 43 4f 4d 50 4f 53 45 52 5f 42 49 4e ironmental.variable.COMPOSER_BIN
1b780 5f 44 49 52 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f _DIR...EOT.).;.}..public.functio
1b7a0 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 n.run(InputInterface.$input,.Out
1b7c0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 6f 6b 65 6e putInterface.$output).{...$token
1b7e0 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 69 6e 70 75 74 2d 3e s.=.preg_split('{\s+}',.$input->
1b800 5f 5f 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a __toString());.$args.=.array();.
1b820 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 foreach.($tokens.as.$token).{.if
1b840 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b .($token.&&.$token[0].!==.'-').{
1b860 0a 24 61 72 67 73 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 72 .$args[].=.$token;.if.(count($ar
1b880 67 73 29 20 3e 3d 20 32 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 gs).>=.2).{.break;.}.}.}....if.(
1b8a0 63 6f 75 6e 74 28 24 61 72 67 73 29 20 3c 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e count($args).<.2).{.return.paren
1b8c0 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 t::run($input,.$output);.}....$c
1b8e0 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b onfig.=.Factory::createConfig();
1b900 0a 63 68 64 69 72 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 3b 0a 0a 0a .chdir($config->get('home'));...
1b920 20 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 70 72 65 67 5f 72 .$input.=.new.StringInput(preg_r
1b940 65 70 6c 61 63 65 28 27 7b 5c 62 67 28 3f 3a 6c 28 3f 3a 6f 28 3f 3a 62 28 3f 3a 61 28 3f 3a 6c eplace('{\bg(?:l(?:o(?:b(?:a(?:l
1b960 29 3f 29 3f 29 3f 29 3f 29 3f 5c 62 7d 27 2c 20 27 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 6f )?)?)?)?)?\b}',.'',.$input->__to
1b980 53 74 72 69 6e 67 28 29 2c 20 31 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 String(),.1));..return.$this->ge
1b9a0 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 tApplication()->run($input,.$out
1b9c0 70 75 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 put);.}.}.<?php............names
1b9e0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 3b 0a 0a 75 pace.Composer\Command\Helper;..u
1ba00 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c se.Symfony\Component\Console\Hel
1ba20 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 61 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 per\DialogHelper.as.BaseDialogHe
1ba40 6c 70 65 72 3b 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 lper;..class.DialogHelper.extend
1ba60 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s.BaseDialogHelper.{............
1ba80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f 6e 28 24 71 75 65 public.function.getQuestion($que
1baa0 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 73 65 70 20 3d 20 27 stion,.$default.=.null,.$sep.=.'
1bac0 3a 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 20 21 3d 3d 20 6e 75 6c 6c 20 3f :').{.return.$default.!==.null.?
1bae0 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d .sprintf('<info>%s</info>.[<comm
1bb00 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e ent>%s</comment>]%s.',.$question
1bb20 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 73 65 70 29 20 3a 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e ,.$default,.$sep).:.sprintf('<in
1bb40 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 73 65 fo>%s</info>%s.',.$question,.$se
1bb60 70 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 p);.}.}.<?php............namespa
1bb80 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e ce.Composer\Command;..use.Symfon
1bba0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 y\Component\Console\Input\InputI
1bbc0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
1bbe0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 Console\Input\InputOption;.use.S
1bc00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
1bc20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f OutputInterface;.use.Composer\Do
1bc40 77 6e 6c 6f 61 64 65 72 5c 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 3b 0a wnloader\ChangeReportInterface;.
1bc60 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 56 63 73 44 6f 77 6e 6c use.Composer\Downloader\VcsDownl
1bc80 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 oader;.use.Composer\Plugin\Comma
1bca0 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 ndEvent;.use.Composer\Plugin\Plu
1bcc0 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 ginEvents;.use.Composer\Script\S
1bce0 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 61 74 75 73 43 6f criptEvents;......class.StatusCo
1bd00 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 mmand.extends.Command.{.protecte
1bd20 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d d.function.configure().{.$this.-
1bd40 3e 73 65 74 4e 61 6d 65 28 27 73 74 61 74 75 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 >setName('status').->setDescript
1bd60 69 6f 6e 28 27 53 68 6f 77 20 61 20 6c 69 73 74 20 6f 66 20 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 ion('Show.a.list.of.locally.modi
1bd80 66 69 65 64 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 fied.packages').->setDefinition(
1bda0 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 array(.new.InputOption('verbose'
1bdc0 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ,.'v|vv|vvv',.InputOption::VALUE
1bde0 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 20 66 6f 72 20 _NONE,.'Show.modified.files.for.
1be00 65 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 63 68 61 each.directory.that.contains.cha
1be20 6e 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 nges.'),.)).->setHelp(<<<EOT.The
1be40 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 61 20 6c 69 73 74 20 .status.command.displays.a.list.
1be60 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 61 74 20 68 61 76 65 0a 62 65 65 6e 20 6d of.dependencies.that.have.been.m
1be80 6f 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f odified.locally...EOT.).;.}..pro
1bea0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 tected.function.execute(InputInt
1bec0 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
1bee0 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 output).{...$composer.=.$this->g
1bf00 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e etComposer();..$commandEvent.=.n
1bf20 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f ew.CommandEvent(PluginEvents::CO
1bf40 4d 4d 41 4e 44 2c 20 27 73 74 61 74 75 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 MMAND,.'status',.$input,.$output
1bf60 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 );.$composer->getEventDispatcher
1bf80 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e ()->dispatch($commandEvent->getN
1bfa0 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c ame(),.$commandEvent);..$install
1bfc0 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 edRepo.=.$composer->getRepositor
1bfe0 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 yManager()->getLocalRepository()
1c000 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d ;..$dm.=.$composer->getDownloadM
1c020 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e anager();.$im.=.$composer->getIn
1c040 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 stallationManager();....$compose
1c060 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 r->getEventDispatcher()->dispatc
1c080 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f hCommandEvent(ScriptEvents::PRE_
1c0a0 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 STATUS_CMD,.true);..$errors.=.ar
1c0c0 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 ray();....foreach.($installedRep
1c0e0 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a o->getPackages().as.$package).{.
1c100 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 $downloader.=.$dm->getDownloader
1c120 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a ForInstalledPackage($package);..
1c140 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 68 61 6e 67 if.($downloader.instanceof.Chang
1c160 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d eReportInterface).{.$targetDir.=
1c180 20 24 69 6d 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a .$im->getInstallPath($package);.
1c1a0 0a 69 66 20 28 24 63 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 .if.($changes.=.$downloader->get
1c1c0 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 LocalChanges($package,.$targetDi
1c1e0 72 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 63 68 61 r)).{.$errors[$targetDir].=.$cha
1c200 6e 67 65 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 nges;.}.}.}....if.(!$errors).{.$
1c220 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 output->writeln('<info>No.local.
1c240 63 68 61 6e 67 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 changes</info>');.}.else.{.$outp
1c260 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 68 61 76 65 20 63 68 61 ut->writeln('<error>You.have.cha
1c280 6e 67 65 73 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 nges.in.the.following.dependenci
1c2a0 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f es:</error>');.}..foreach.($erro
1c2c0 72 73 20 61 73 20 24 70 61 74 68 20 3d 3e 20 24 63 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 24 rs.as.$path.=>.$changes).{.if.($
1c2e0 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 input->getOption('verbose')).{.$
1c300 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 indentedChanges.=.implode("\n",.
1c320 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 array_map(function.($line).{.ret
1c340 75 72 6e 20 27 20 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 urn.'....'...$line;.},.explode("
1c360 5c 6e 22 2c 20 24 63 68 61 6e 67 65 73 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 \n",.$changes)));.$output->write
1c380 6c 6e 28 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 74 68 2e 27 3c 2f 69 6e 66 6f 3e 3a 27 29 3b 0a 24 ln('<info>'.$path.'</info>:');.$
1c3a0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 output->writeln($indentedChanges
1c3c0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 );.}.else.{.$output->writeln($pa
1c3e0 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 20 26 26 20 21 24 69 6e 70 75 74 th);.}.}..if.($errors.&&.!$input
1c400 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 75 ->getOption('verbose')).{.$outpu
1c420 74 2d 3e 77 72 69 74 65 6c 6e 28 27 55 73 65 20 2d 2d 76 65 72 62 6f 73 65 20 28 2d 76 29 20 74 t->writeln('Use.--verbose.(-v).t
1c440 6f 20 73 65 65 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 29 3b 0a 7d 0a 0a 0a 20 24 63 6f o.see.modified.files');.}....$co
1c460 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 mposer->getEventDispatcher()->di
1c480 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a spatchCommandEvent(ScriptEvents:
1c4a0 3a 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e :POST_STATUS_CMD,.true);..return
1c4c0 20 24 65 72 72 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$errors.?.1.:.0;.}.}.<?php.....
1c4e0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e .......namespace.Composer\Comman
1c500 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a d;..use.Composer\Json\JsonFile;.
1c520 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 use.Composer\Factory;.use.Compos
1c540 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 er\Package\BasePackage;.use.Comp
1c560 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 oser\Repository\CompositeReposit
1c580 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 ory;.use.Composer\Repository\Pla
1c5a0 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 tformRepository;.use.Composer\Pa
1c5c0 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 ckage\Version\VersionParser;.use
1c5e0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
1c600 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
1c620 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e ponent\Console\Input\InputOption
1c640 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
1c660 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 Output\OutputInterface;.use.Symf
1c680 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 ony\Component\Process\Process;.u
1c6a0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 65 se.Symfony\Component\Process\Exe
1c6c0 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 74 43 6f cutableFinder;......class.InitCo
1c6e0 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 mmand.extends.Command.{.private.
1c700 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 3b 0a 0a 70 75 62 $gitConfig;.private.$repos;..pub
1c720 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 lic.function.parseAuthorString($
1c740 61 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c author).{.if.(preg_match('/^(?P<
1c760 6e 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 70 7b 4c 7d 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d name>[-.\.,\p{L}\'...]+).<(?P<em
1c780 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 61 75 74 68 6f 72 2c 20 24 6d 61 74 63 68 29 29 ail>.+?)>$/u',.$author,.$match))
1c7a0 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 45 6d 61 69 6c 28 24 6d 61 74 63 .{.if.($this->isValidEmail($matc
1c7c0 68 5b 27 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 h['email'])).{.return.array(.'na
1c7e0 6d 65 27 20 3d 3e 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 27 6e 61 6d 65 27 5d 29 2c 0a 27 65 6d me'.=>.trim($match['name']),.'em
1c800 61 69 6c 27 20 3d 3e 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 0a 29 3b 0a 7d 0a 7d 0a 0a ail'.=>.$match['email'].);.}.}..
1c820 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
1c840 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 61 75 74 68 6f 72 20 73 74 72 69 6e 67 2e 20 20 4d 75 ion(.'Invalid.author.string...Mu
1c860 73 74 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 3a 20 27 2e 0a 27 4a 6f 68 6e 20 53 6d st.be.in.the.format:.'..'John.Sm
1c880 69 74 68 20 3c 6a 6f 68 6e 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 27 0a 29 3b 0a 7d 0a 0a 70 72 ith.<john@example.com>'.);.}..pr
1c8a0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 otected.function.configure().{.$
1c8c0 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 this.->setName('init').->setDesc
1c8e0 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 ription('Creates.a.basic.compose
1c900 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 r.json.file.in.current.directory
1c920 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 .').->setDefinition(array(.new.I
1c940 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 nputOption('name',.null,.InputOp
1c960 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4e 61 6d 65 20 6f 66 20 74 tion::VALUE_REQUIRED,.'Name.of.t
1c980 68 65 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 he.package'),.new.InputOption('d
1c9a0 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a escription',.null,.InputOption::
1c9c0 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 VALUE_REQUIRED,.'Description.of.
1c9e0 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 package'),.new.InputOption('auth
1ca00 6f 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 or',.null,.InputOption::VALUE_RE
1ca20 51 55 49 52 45 44 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f 66 20 70 61 63 6b 61 67 65 27 QUIRED,.'Author.name.of.package'
1ca40 29 2c 0a 0a 20 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 2c ),...new.InputOption('homepage',
1ca60 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 .null,.InputOption::VALUE_REQUIR
1ca80 45 44 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 ED,.'Homepage.of.package'),.new.
1caa0 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 InputOption('require',.null,.Inp
1cac0 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 utOption::VALUE_IS_ARRAY.|.Input
1cae0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 Option::VALUE_REQUIRED,.'Package
1cb00 20 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 .to.require.with.a.version.const
1cb20 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f raint,.e.g..foo/bar:1.0.0.or.foo
1cb40 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c /bar=1.0.0.or."foo/bar.1.0.0"'),
1cb60 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 .new.InputOption('require-dev',.
1cb80 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 null,.InputOption::VALUE_IS_ARRA
1cba0 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c Y.|.InputOption::VALUE_REQUIRED,
1cbc0 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 .'Package.to.require.for.develop
1cbe0 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 ment.with.a.version.constraint,.
1cc00 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e e.g..foo/bar:1.0.0.or.foo/bar=1.
1cc20 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 0.0.or."foo/bar.1.0.0"'),.new.In
1cc40 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 6e 70 75 putOption('stability',.'s',.Inpu
1cc60 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 6d 75 tOption::VALUE_REQUIRED,.'Minimu
1cc80 6d 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 27 2e m.stability.(empty.or.one.of:.'.
1cca0 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 implode(',.',.array_keys(BasePac
1ccc0 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 27 29 2c 0a 6e 65 77 20 49 kage::$stabilities)).')'),.new.I
1cce0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 nputOption('license',.'l',.Input
1cd00 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4c 69 63 65 6e 73 65 Option::VALUE_REQUIRED,.'License
1cd20 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 .of.package'),.)).->setHelp(<<<E
1cd40 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 OT.The.<info>init</info>.command
1cd60 20 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 .creates.a.basic.composer.json.f
1cd80 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c ile.in.the.current.directory...<
1cda0 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 69 74 3c 2f 69 6e 66 info>php.composer.phar.init</inf
1cdc0 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f o>..EOT.).;.}..protected.functio
1cde0 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c n.execute(InputInterface.$input,
1ce00 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 64 69 61 .OutputInterface.$output).{.$dia
1ce20 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 log.=.$this->getHelperSet()->get
1ce40 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 ('dialog');..$whitelist.=.array(
1ce60 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 'name',.'description',.'author',
1ce80 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 .'homepage',.'require',.'require
1cea0 2d 64 65 76 27 2c 20 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 6c 69 63 65 6e 73 65 27 29 3b 0a -dev',.'stability',.'license');.
1cec0 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 69 .$options.=.array_filter(array_i
1cee0 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 ntersect_key($input->getOptions(
1cf00 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c 69 73 74 29 29 29 3b 0a 0a 69 66 ),.array_flip($whitelist)));..if
1cf20 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 29 20 7b 0a 24 .(isset($options['author'])).{.$
1cf40 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d options['authors'].=.$this->form
1cf60 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 75 atAuthors($options['author']);.u
1cf80 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 nset($options['author']);.}..if.
1cfa0 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b (isset($options['stability'])).{
1cfc0 0a 24 6f 70 74 69 6f 6e 73 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3d .$options['minimum-stability'].=
1cfe0 20 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 3b 0a 75 6e 73 65 74 28 24 6f .$options['stability'];.unset($o
1d000 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e ptions['stability']);.}..$option
1d020 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 s['require'].=.isset($options['r
1d040 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 equire']).?.$this->formatRequire
1d060 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3a 20 6e 65 77 ments($options['require']).:.new
1d080 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 .\stdClass;.if.(array().===.$opt
1d0a0 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 ions['require']).{.$options['req
1d0c0 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 0a 69 66 20 28 69 uire'].=.new.\stdClass;.}..if.(i
1d0e0 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 7b sset($options['require-dev'])).{
1d100 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 .$options['require-dev'].=.$this
1d120 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 ->formatRequirements($options['r
1d140 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 equire-dev']).;.if.(array().===.
1d160 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 7b 0a 24 6f 70 74 69 $options['require-dev']).{.$opti
1d180 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 ons['require-dev'].=.new.\stdCla
1d1a0 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 ss;.}.}..$file.=.new.JsonFile('c
1d1c0 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e omposer.json');..$json.=.$file->
1d1e0 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 encode($options);..if.($input->i
1d200 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 sInteractive()).{.$output->write
1d220 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 6a 73 6f 6e 2c 0a 27 27 0a 29 29 3b 0a 69 66 20 28 ln(array(.'',.$json,.''.));.if.(
1d240 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 !$dialog->askConfirmation($outpu
1d260 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 t,.$dialog->getQuestion('Do.you.
1d280 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 confirm.generation',.'yes',.'?')
1d2a0 2c 20 74 72 75 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 ,.true)).{.$output->writeln('<er
1d2c0 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a ror>Command.aborted</error>');..
1d2e0 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 6f 70 74 return.1;.}.}..$file->write($opt
1d300 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 ions);..if.($input->isInteractiv
1d320 65 28 29 20 26 26 20 69 73 5f 64 69 72 28 27 2e 67 69 74 27 29 29 20 7b 0a 24 69 67 6e 6f 72 65 e().&&.is_dir('.git')).{.$ignore
1d340 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 67 69 74 69 67 6e 6f 72 65 27 29 3b 0a 0a File.=.realpath('.gitignore');..
1d360 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 69 67 6e 6f 72 65 46 69 6c 65 29 20 7b 0a 24 69 67 if.(false.===.$ignoreFile).{.$ig
1d380 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 20 2e 20 27 2f 2e 67 69 noreFile.=.realpath('.')...'/.gi
1d3a0 74 69 67 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 56 65 6e 64 tignore';.}..if.(!$this->hasVend
1d3c0 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 71 75 65 73 74 69 orIgnore($ignoreFile)).{.$questi
1d3e0 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 68 65 20 3c 69 6e 66 6f 3e 76 on.=.'Would.you.like.the.<info>v
1d400 65 6e 64 6f 72 3c 2f 69 6e 66 6f 3e 20 64 69 72 65 63 74 6f 72 79 20 61 64 64 65 64 20 74 6f 20 endor</info>.directory.added.to.
1d420 79 6f 75 72 20 3c 69 6e 66 6f 3e 2e 67 69 74 69 67 6e 6f 72 65 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 your.<info>.gitignore</info>.[<c
1d440 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 27 3b 0a 0a 69 66 20 28 24 64 omment>yes</comment>]?';..if.($d
1d460 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 ialog->askConfirmation($output,.
1d480 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 56 65 $question,.true)).{.$this->addVe
1d4a0 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d ndorIgnore($ignoreFile);.}.}.}.}
1d4c0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e ..protected.function.interact(In
1d4e0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
1d500 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 67 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 face.$output).{.$git.=.$this->ge
1d520 74 47 69 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e tGitConfig();..$dialog.=.$this->
1d540 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 getHelperSet()->get('dialog');.$
1d560 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 formatter.=.$this->getHelperSet(
1d580 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 )->get('formatter');.$output->wr
1d5a0 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 iteln(array(.'',.$formatter->for
1d5c0 6d 61 74 42 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 43 6f 6d 70 6f 73 65 matBlock('Welcome.to.the.Compose
1d5e0 72 20 63 6f 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 27 2c 20 27 62 67 3d 62 6c 75 65 3b 66 67 r.config.generator',.'bg=blue;fg
1d600 3d 77 68 69 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 =white',.true),.''.));....$outpu
1d620 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 54 68 69 73 20 63 6f 6d 6d t->writeln(array(.'',.'This.comm
1d640 61 6e 64 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 63 72 65 61 74 and.will.guide.you.through.creat
1d660 69 6e 67 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 63 6f 6e 66 69 67 2e 27 2c ing.your.composer.json.config.',
1d680 0a 27 27 2c 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 22 2e 22 29 3b 0a .'',.));..$cwd.=.realpath(".");.
1d6a0 0a 69 66 20 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 .if.(!$name.=.$input->getOption(
1d6c0 27 6e 61 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 63 77 64 'name')).{.$name.=.basename($cwd
1d6e0 29 3b 0a 24 6e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 );.$name.=.preg_replace('{(?:([a
1d700 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 -z])([A-Z])|([A-Z])([A-Z][a-z]))
1d720 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6e 61 6d 65 29 3b 0a 24 6e 61 }',.'\\1\\3-\\2\\4',.$name);.$na
1d740 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 69 66 20 28 69 73 73 65 me.=.strtolower($name);.if.(isse
1d760 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 t($git['github.user'])).{.$name.
1d780 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e =.$git['github.user']...'/'...$n
1d7a0 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 ame;.}.elseif.(!empty($_SERVER['
1d7c0 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 52 5b USERNAME'])).{.$name.=.$_SERVER[
1d7e0 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 'USERNAME']...'/'...$name;.}.els
1d800 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b 0a 24 6e 61 6d 65 eif.(get_current_user()).{.$name
1d820 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 6e .=.get_current_user()...'/'...$n
1d840 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 20 2e 20 ame;.}.else.{...$name.=.$name...
1d860 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 70 72 65 '/'...$name;.}.}.else.{.if.(!pre
1d880 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f g_match('{^[a-z0-9_.-]+/[a-z0-9_
1d8a0 2e 2d 5d 2b 24 7d 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e .-]+$}',.$name)).{.throw.new.\In
1d8c0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 validArgumentException(.'The.pac
1d8e0 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 6e 61 6d 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 kage.name.'.$name.'.is.invalid,.
1d900 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 20 68 61 76 65 20 it.should.be.lowercase.and.have.
1d920 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 a.vendor.name,.a.forward.slash,.
1d940 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 and.a.package.name,.matching:.[a
1d960 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 7d 0a -z0-9_.-]+/[a-z0-9_.-]+'.);.}.}.
1d980 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 .$name.=.$dialog->askAndValidate
1d9a0 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 (.$output,.$dialog->getQuestion(
1d9c0 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e 61 6d 65 3e 29 27 'Package.name.(<vendor>/<name>)'
1d9e0 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 ,.$name),.function.($value).use.
1da00 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b ($name).{.if.(null.===.$value).{
1da20 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .return.$name;.}..if.(!preg_matc
1da40 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d h('{^[a-z0-9_.-]+/[a-z0-9_.-]+$}
1da60 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ',.$value)).{.throw.new.\Invalid
1da80 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 ArgumentException(.'The.package.
1daa0 6e 61 6d 65 20 27 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 name.'.$value.'.is.invalid,.it.s
1dac0 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 20 68 61 76 65 20 61 20 76 65 hould.be.lowercase.and.have.a.ve
1dae0 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 ndor.name,.a.forward.slash,.and.
1db00 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d a.package.name,.matching:.[a-z0-
1db20 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 9_.-]+/[a-z0-9_.-]+'.);.}..retur
1db40 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e n.$value;.}.);.$input->setOption
1db60 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d ('name',.$name);..$description.=
1db80 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 .$input->getOption('description'
1dba0 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 69 61 6c ).?:.false;.$description.=.$dial
1dbc0 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 og->ask(.$output,.$dialog->getQu
1dbe0 65 73 74 69 6f 6e 28 27 44 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 estion('Description',.$descripti
1dc00 6f 6e 29 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 on),.$description.);.$input->set
1dc20 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 Option('description',.$descripti
1dc40 6f 6e 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 68 6f 72 20 3d 20 24 69 6e on);..if.(null.===.$author.=.$in
1dc60 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 29 29 20 7b 0a 69 66 20 28 put->getOption('author')).{.if.(
1dc80 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 29 20 26 26 20 69 73 73 65 isset($git['user.name']).&&.isse
1dca0 74 28 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 24 61 75 74 68 6f 72 t($git['user.email'])).{.$author
1dcc0 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 67 69 74 5b 27 75 73 65 72 .=.sprintf('%s.<%s>',.$git['user
1dce0 2e 6e 61 6d 65 27 5d 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a .name'],.$git['user.email']);.}.
1dd00 7d 0a 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 64 69 61 }..$self.=.$this;.$author.=.$dia
1dd20 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 log->askAndValidate(.$output,.$d
1dd40 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 41 75 74 68 6f 72 27 2c 20 24 61 75 ialog->getQuestion('Author',.$au
1dd60 74 68 6f 72 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 thor),.function.($value).use.($s
1dd80 65 6c 66 2c 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 elf,.$author).{.if.(null.===.$va
1dda0 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 75 74 68 6f 72 3b 0a 7d 0a 0a 24 61 75 74 68 6f lue).{.return.$author;.}..$autho
1ddc0 72 20 3d 20 24 73 65 6c 66 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 76 61 r.=.$self->parseAuthorString($va
1dde0 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c lue);..return.sprintf('%s.<%s>',
1de00 20 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c .$author['name'],.$author['email
1de20 27 5d 29 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 ']);.}.);.$input->setOption('aut
1de40 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 3b 0a 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 hor',.$author);..$minimumStabili
1de60 74 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 ty.=.$input->getOption('stabilit
1de80 79 27 29 20 3f 3a 20 27 27 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 y').?:.'';.$minimumStability.=.$
1dea0 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c dialog->askAndValidate(.$output,
1dec0 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 4d 69 6e 69 6d 75 6d 20 53 .$dialog->getQuestion('Minimum.S
1dee0 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 2c 0a 66 tability',.$minimumStability),.f
1df00 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 6d 69 unction.($value).use.($self,.$mi
1df20 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 nimumStability).{.if.(null.===.$
1df40 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 value).{.return.$minimumStabilit
1df60 79 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 y;.}..if.(!isset(BasePackage::$s
1df80 74 61 62 69 6c 69 74 69 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 tabilities[$value])).{.throw.new
1dfa0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 49 6e 76 .\InvalidArgumentException(.'Inv
1dfc0 61 6c 69 64 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 22 27 2e 24 76 61 6c 75 65 alid.minimum.stability."'.$value
1dfe0 2e 27 22 2e 20 4d 75 73 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 27 2e .'"..Must.be.empty.or.one.of:.'.
1e000 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 .implode(',.',.array_keys(BasePa
1e020 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 ckage::$stabilities)).);.}..retu
1e040 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f rn.$value;.}.);.$input->setOptio
1e060 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 n('stability',.$minimumStability
1e080 29 3b 0a 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e );..$license.=.$input->getOption
1e0a0 28 27 6c 69 63 65 6e 73 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 6c 69 63 65 6e 73 65 20 3d ('license').?:.false;.$license.=
1e0c0 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d .$dialog->ask(.$output,.$dialog-
1e0e0 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 4c 69 63 65 6e 73 65 27 2c 20 24 6c 69 63 65 6e 73 65 >getQuestion('License',.$license
1e100 29 2c 0a 24 6c 69 63 65 6e 73 65 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e ),.$license.);.$input->setOption
1e120 28 27 6c 69 63 65 6e 73 65 27 2c 20 24 6c 69 63 65 6e 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 2d ('license',.$license);..$output-
1e140 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 44 65 66 69 6e 65 20 79 6f 75 72 >writeln(array(.'',.'Define.your
1e160 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 2c 0a 27 27 0a 29 29 3b 0a 0a 24 72 65 71 75 69 72 .dependencies.',.''.));..$requir
1e180 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 ements.=.array();.if.($dialog->a
1e1a0 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d skConfirmation($output,.$dialog-
1e1c0 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 >getQuestion('Would.you.like.to.
1e1e0 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 define.your.dependencies.(requir
1e200 65 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 e).interactively',.'yes',.'?'),.
1e220 74 72 75 65 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e true)).{.$requirements.=.$this->
1e240 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f determineRequirements($input,.$o
1e260 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 utput,.$input->getOption('requir
1e280 65 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 e'));.}.$input->setOption('requi
1e2a0 72 65 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 24 64 65 76 52 65 71 75 69 72 65 re',.$requirements);.$devRequire
1e2c0 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 ments.=.array();.if.($dialog->as
1e2e0 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e kConfirmation($output,.$dialog->
1e300 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 getQuestion('Would.you.like.to.d
1e320 65 66 69 6e 65 20 79 6f 75 72 20 64 65 76 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 efine.your.dev.dependencies.(req
1e340 75 69 72 65 2d 64 65 76 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c uire-dev).interactively',.'yes',
1e360 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 .'?'),.true)).{.$devRequirements
1e380 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 .=.$this->determineRequirements(
1e3a0 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 $input,.$output,.$input->getOpti
1e3c0 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 on('require-dev'));.}.$input->se
1e3e0 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 65 71 75 69 tOption('require-dev',.$devRequi
1e400 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 rements);.}..protected.function.
1e420 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 findPackages($name).{.$packages.
1e440 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 70 6f 73 29 =.array();....if.(!$this->repos)
1e460 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 .{.$this->repos.=.new.CompositeR
1e480 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 epository(array_merge(.array(new
1e4a0 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 46 61 63 74 6f 72 79 3a 3a 63 .PlatformRepository),.Factory::c
1e4c0 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e reateDefaultRepositories($this->
1e4e0 67 65 74 49 4f 28 29 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 getIO()).));.}..return.$this->re
1e500 70 6f 73 2d 3e 73 65 61 72 63 68 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 pos->search($name);.}..protected
1e520 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 .function.determineRequirements(
1e540 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
1e560 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 erface.$output,.$requires.=.arra
1e580 79 28 29 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 y()).{.$dialog.=.$this->getHelpe
1e5a0 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 70 72 6f 6d 70 74 20 3d rSet()->get('dialog');.$prompt.=
1e5c0 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f .$dialog->getQuestion('Search.fo
1e5e0 72 20 61 20 70 61 63 6b 61 67 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 3b 0a 0a 69 66 20 28 r.a.package',.false,.':');..if.(
1e600 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e $requires).{.$requires.=.$this->
1e620 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 73 29 normalizeRequirements($requires)
1e640 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ;.$result.=.array();..foreach.($
1e660 72 65 71 75 69 72 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 requires.as.$key.=>.$requirement
1e680 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 ).{.if.(!isset($requirement['ver
1e6a0 73 69 6f 6e 27 5d 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 sion']).&&.$input->isInteractive
1e6c0 28 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 ()).{.$question.=.$dialog->getQu
1e6e0 65 73 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 70 72 6f 76 69 64 65 20 61 20 76 65 72 73 69 6f 6e estion('Please.provide.a.version
1e700 20 63 6f 6e 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 20 27 2e 24 72 65 71 75 69 72 65 6d 65 .constraint.for.the.'.$requireme
1e720 6e 74 5b 27 6e 61 6d 65 27 5d 2e 27 20 72 65 71 75 69 72 65 6d 65 6e 74 27 29 3b 0a 69 66 20 28 nt['name'].'.requirement');.if.(
1e740 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 $constraint.=.$dialog->ask($outp
1e760 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 ut,.$question)).{.$requirement['
1e780 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a 69 66 20 version'].=.$constraint;.}.}.if.
1e7a0 28 21 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 (!isset($requirement['version'])
1e7c0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
1e7e0 63 65 70 74 69 6f 6e 28 27 54 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 27 2e 24 72 65 71 75 ception('The.requirement.'.$requ
1e800 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 2e 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 61 irement['name'].'.must.contain.a
1e820 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c .version.constraint');.}..$resul
1e840 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 27 20 27 t[].=.$requirement['name']...'.'
1e860 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 ...$requirement['version'];.}..r
1e880 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d eturn.$result;.}..while.(null.!=
1e8a0 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 =.$package.=.$dialog->ask($outpu
1e8c0 74 2c 20 24 70 72 6f 6d 70 74 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 69 73 2d t,.$prompt)).{.$matches.=.$this-
1e8e0 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 63 6f >findPackages($package);..if.(co
1e900 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c unt($matches)).{.$output->writel
1e920 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 n(array(.'',.sprintf('Found.<inf
1e940 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 o>%s</info>.packages.matching.<i
1e960 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c nfo>%s</info>',.count($matches),
1e980 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 24 65 78 61 63 74 4d 61 74 63 68 20 .$package),.''.));..$exactMatch.
1e9a0 3d 20 6e 75 6c 6c 3b 0a 24 63 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 =.null;.$choices.=.array();.fore
1e9c0 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 70 ach.($matches.as.$position.=>.$p
1e9e0 61 63 6b 61 67 65 29 20 7b 0a 24 63 68 6f 69 63 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 ackage).{.$choices[].=.sprintf('
1ea00 20 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 27 2c 20 22 5b 24 70 6f 73 69 74 69 .<info>%5s</info>.%s',."[$positi
1ea20 6f 6e 5d 22 2c 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 on]",.$package['name']);.if.($pa
1ea40 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 65 ckage['name'].===.$package).{.$e
1ea60 78 61 63 74 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 xactMatch.=.true;.break;.}.}....
1ea80 69 66 20 28 21 24 65 78 61 63 74 4d 61 74 63 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 if.(!$exactMatch).{.$output->wri
1eaa0 74 65 6c 6e 28 24 63 68 6f 69 63 65 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e teln($choices);.$output->writeln
1eac0 28 27 27 29 3b 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 ('');..$validator.=.function.($s
1eae0 65 6c 65 63 74 69 6f 6e 29 20 75 73 65 20 28 24 6d 61 74 63 68 65 73 29 20 7b 0a 69 66 20 28 27 election).use.($matches).{.if.('
1eb00 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 '.===.$selection).{.return.false
1eb20 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 65 6c 65 63 74 69 6f 6e 29 ;.}..if.(!is_numeric($selection)
1eb40 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 5c 73 2b 28 5c 53 .&&.preg_match('{^\s*(\S+)\s+(\S
1eb60 2e 2a 29 5c 73 2a 24 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 .*)\s*$}',.$selection,.$matches)
1eb80 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 20 27 2e 24 6d 61 74 63 ).{.return.$matches[1].'.'.$matc
1eba0 68 65 73 5b 32 5d 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 28 hes[2];.}..if.(!isset($matches[(
1ebc0 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c int).$selection])).{.throw.new.\
1ebe0 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 6f 6e Exception('Not.a.valid.selection
1ec00 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 ');.}..$package.=.$matches[(int)
1ec20 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 5b 27 .$selection];..return.$package['
1ec40 6e 61 6d 65 27 5d 3b 0a 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e name'];.};..$package.=.$dialog->
1ec60 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d askAndValidate($output,.$dialog-
1ec80 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 70 61 63 6b 61 67 65 20 23 20 74 6f >getQuestion('Enter.package.#.to
1eca0 20 61 64 64 2c 20 6f 72 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 70 61 63 6b 61 67 65 20 6e 61 .add,.or.the.complete.package.na
1ecc0 6d 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 me.if.it.is.not.listed',.false,.
1ece0 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 ':'),.$validator,.3);.}....if.(f
1ed00 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 alse.!==.$package.&&.false.===.s
1ed20 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2c 20 27 20 27 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 trpos($package,.'.')).{.$validat
1ed40 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 or.=.function.($input).{.$input.
1ed60 3d 20 74 72 69 6d 28 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 20 3f =.trim($input);..return.$input.?
1ed80 3a 20 66 61 6c 73 65 3b 0a 7d 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 64 69 61 6c :.false;.};..$constraint.=.$dial
1eda0 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 og->askAndValidate($output,.$dia
1edc0 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 74 68 65 20 76 65 72 73 log->getQuestion('Enter.the.vers
1ede0 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 72 65 71 75 69 72 65 27 2c 20 66 61 6c 73 ion.constraint.to.require',.fals
1ee00 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b 0a 69 66 20 28 66 61 6c e,.':'),.$validator,.3);.if.(fal
1ee20 73 65 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a se.===.$constraint).{.continue;.
1ee40 7d 0a 0a 24 70 61 63 6b 61 67 65 20 2e 3d 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a }..$package..=.'.'.$constraint;.
1ee60 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 }..if.(false.!==.$package).{.$re
1ee80 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 quires[].=.$package;.}.}.}..retu
1eea0 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 rn.$requires;.}..protected.funct
1eec0 69 6f 6e 20 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 65 74 ion.formatAuthors($author).{.ret
1eee0 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 urn.array($this->parseAuthorStri
1ef00 6e 67 28 24 61 75 74 68 6f 72 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ng($author));.}..protected.funct
1ef20 69 6f 6e 20 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 72 65 ion.formatRequirements(array.$re
1ef40 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 quirements).{.$requires.=.array(
1ef60 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c );.$requirements.=.$this->normal
1ef80 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a izeRequirements($requirements);.
1efa0 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 72 65 71 75 69 foreach.($requirements.as.$requi
1efc0 72 65 6d 65 6e 74 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 24 72 65 71 75 69 72 65 6d 65 6e 74 rement).{.$requires[$requirement
1efe0 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f ['name']].=.$requirement['versio
1f000 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f n'];.}..return.$requires;.}..pro
1f020 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 0a 7b tected.function.getGitConfig().{
1f040 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 29 20 .if.(null.!==.$this->gitConfig).
1f060 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 24 66 {.return.$this->gitConfig;.}..$f
1f080 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a inder.=.new.ExecutableFinder();.
1f0a0 24 67 69 74 42 69 6e 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 67 69 74 27 29 3b 0a $gitBin.=.$finder->find('git');.
1f0c0 0a 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 73 70 72 69 6e 74 66 28 27 25 73 20 .$cmd.=.new.Process(sprintf('%s.
1f0e0 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 42 config.-l',.escapeshellarg($gitB
1f100 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 in)));.$cmd->run();..if.($cmd->i
1f120 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 sSuccessful()).{.$this->gitConfi
1f140 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 g.=.array();.preg_match_all('{^(
1f160 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 [^=]+)=(.*)$}m',.$cmd->getOutput
1f180 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 (),.$matches,.PREG_SET_ORDER);.f
1f1a0 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 oreach.($matches.as.$match).{.$t
1f1c0 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 his->gitConfig[$match[1]].=.$mat
1f1e0 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 ch[2];.}..return.$this->gitConfi
1f200 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 g;.}..return.$this->gitConfig.=.
1f220 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 array();.}..................prot
1f240 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 ected.function.hasVendorIgnore($
1f260 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a ignoreFile,.$vendor.=.'vendor').
1f280 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 {.if.(!file_exists($ignoreFile))
1f2a0 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 .{.return.false;.}..$pattern.=.s
1f2c0 70 72 69 6e 74 66 28 27 7b 5e 2f 3f 25 73 28 2f 5c 2a 3f 29 3f 24 7d 27 2c 20 70 72 65 67 5f 71 printf('{^/?%s(/\*?)?$}',.preg_q
1f2e0 75 6f 74 65 28 24 76 65 6e 64 6f 72 29 29 3b 0a 0a 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 uote($vendor));..$lines.=.file($
1f300 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 5f 49 47 4e 4f 52 45 5f 4e 45 57 5f 4c 49 4e 45 ignoreFile,.FILE_IGNORE_NEW_LINE
1f320 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a S);.foreach.($lines.as.$line).{.
1f340 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 6c 69 6e 65 29 29 if.(preg_match($pattern,.$line))
1f360 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .{.return.true;.}.}..return.fals
1f380 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 e;.}..protected.function.normali
1f3a0 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e zeRequirements(array.$requiremen
1f3c0 74 73 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 ts).{.$parser.=.new.VersionParse
1f3e0 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 56 r();..return.$parser->parseNameV
1f400 65 72 73 69 6f 6e 50 61 69 72 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 ersionPairs($requirements);.}..p
1f420 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 rotected.function.addVendorIgnor
1f440 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 2f 76 65 6e 64 6f e($ignoreFile,.$vendor.=.'/vendo
1f460 72 2f 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 6c 65 5f r/').{.$contents.=."";.if.(file_
1f480 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 exists($ignoreFile)).{.$contents
1f4a0 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 .=.file_get_contents($ignoreFile
1f4c0 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 );..if.("\n".!==.substr($content
1f4e0 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a s,.0,.-1)).{.$contents..=."\n";.
1f500 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 }.}..file_put_contents($ignoreFi
1f520 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e 20 24 76 65 6e 64 6f 72 2e 20 22 5c 6e 22 29 3b 0a le,.$contents...$vendor.."\n");.
1f540 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 45 6d 61 }..protected.function.isValidEma
1f560 69 6c 28 24 65 6d 61 69 6c 29 0a 7b 0a 0a 20 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 il($email).{...if.(!function_exi
1f580 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 sts('filter_var')).{.return.true
1f5a0 3b 0a 7d 0a 0a 0a 20 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 ;.}....if.(version_compare(PHP_V
1f5c0 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 ERSION,.'5.3.3',.'<')).{.return.
1f5e0 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 66 69 6c 74 65 72 true;.}..return.false.!==.filter
1f600 5f 76 61 72 28 24 65 6d 61 69 6c 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 _var($email,.FILTER_VALIDATE_EMA
1f620 49 4c 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 IL);.}.}.<?php............namesp
1f640 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Downloader;..use.Co
1f660 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b mposer\Config;.use.Composer\Pack
1f680 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 age\PackageInterface;.use.Compos
1f6a0 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 er\Package\Version\VersionParser
1f6c0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 ;.use.Composer\Util\ProcessExecu
1f6e0 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 tor;.use.Composer\IO\IOInterface
1f700 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a ;.use.Composer\Util\Filesystem;.
1f720 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 ....abstract.class.VcsDownloader
1f740 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2c .implements.DownloaderInterface,
1f760 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 .ChangeReportInterface.{.protect
1f780 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 ed.$io;.protected.$config;.prote
1f7a0 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 cted.$process;.protected.$filesy
1f7c0 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 stem;..public.function.__constru
1f7e0 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 ct(IOInterface.$io,.Config.$conf
1f800 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e ig,.ProcessExecutor.$process.=.n
1f820 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 ull,.Filesystem.$fs.=.null).{.$t
1f840 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 his->io.=.$io;.$this->config.=.$
1f860 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 config;.$this->process.=.$proces
1f880 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 24 s.?:.new.ProcessExecutor($io);.$
1f8a0 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 this->filesystem.=.$fs.?:.new.Fi
1f8c0 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 lesystem;.}.....public.function.
1f8e0 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e getInstallationSource().{.return
1f900 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .'source';.}.....public.function
1f920 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b .download(PackageInterface.$pack
1f940 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 age,.$path).{.if.(!$package->get
1f960 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c SourceReference()).{.throw.new.\
1f980 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 InvalidArgumentException('Packag
1f9a0 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 e.'.$package->getPrettyName().'.
1f9c0 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e is.missing.reference.information
1f9e0 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 49 6e 73 ');.}..$this->io->write("..-.Ins
1fa00 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e talling.<info>"...$package->getN
1fa20 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 ame()..."</info>.(<comment>"...V
1fa40 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 ersionParser::formatVersion($pac
1fa60 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 66 kage)..."</comment>)");.$this->f
1fa80 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 ilesystem->removeDirectory($path
1faa0 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 );.$this->doDownload($package,.$
1fac0 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a path);.$this->io->write('');.}..
1fae0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 ...public.function.update(Packag
1fb00 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 eInterface.$initial,.PackageInte
1fb20 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 74 61 rface.$target,.$path).{.if.(!$ta
1fb40 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 rget->getSourceReference()).{.th
1fb60 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
1fb80 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 4e n('Package.'.$target->getPrettyN
1fba0 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 ame().'.is.missing.reference.inf
1fbc0 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 61 72 67 65 74 2d 3e ormation');.}..$name.=.$target->
1fbe0 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 getName();.if.($initial->getPret
1fc00 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 tyVersion().==.$target->getPrett
1fc20 79 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f yVersion()).{.if.($target->getSo
1fc40 75 72 63 65 54 79 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 urceType().===.'svn').{.$from.=.
1fc60 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a $initial->getSourceReference();.
1fc80 24 74 6f 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 $to.=.$target->getSourceReferenc
1fca0 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 75 62 73 74 72 28 24 69 6e e();.}.else.{.$from.=.substr($in
1fcc0 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 itial->getSourceReference(),.0,.
1fce0 37 29 3b 0a 24 74 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 7);.$to.=.substr($target->getSou
1fd00 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 24 6e 61 6d 65 20 2e rceReference(),.0,.7);.}.$name..
1fd20 3d 20 27 20 27 2e 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e =.'.'.$initial->getPrettyVersion
1fd40 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 ();.}.else.{.$from.=.VersionPars
1fd60 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 6f er::formatVersion($initial);.$to
1fd80 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 .=.VersionParser::formatVersion(
1fda0 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 $target);.}..$this->io->write(".
1fdc0 20 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 6e 61 6d 65 20 2e 20 22 3c .-.Updating.<info>"...$name..."<
1fde0 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 66 72 6f 6d 20 2e 20 22 3c 2f /info>.(<comment>"...$from..."</
1fe00 63 6f 6d 6d 65 6e 74 3e 20 3d 3e 20 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 6f 20 2e 20 22 comment>.=>.<comment>"...$to..."
1fe20 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e </comment>)");..$this->cleanChan
1fe40 67 65 73 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 74 72 79 20 ges($initial,.$path,.true);.try.
1fe60 7b 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 {.$this->doUpdate($initial,.$tar
1fe80 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e get,.$path);.}.catch.(\Exception
1fea0 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 .$e).{...$this->reapplyChanges($
1fec0 70 61 74 68 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 61 70 70 path);..throw.$e;.}.$this->reapp
1fee0 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e lyChanges($path);....if.($this->
1ff00 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 50 io->isVerbose()).{.$message.=.'P
1ff20 75 6c 6c 69 6e 67 20 69 6e 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 ulling.in.changes:';.$logs.=.$th
1ff40 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 is->getCommitLogs($initial->getS
1ff60 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f ourceReference(),.$target->getSo
1ff80 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 21 74 urceReference(),.$path);..if.(!t
1ffa0 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 52 6f 6c 6c 69 6e rim($logs)).{.$message.=.'Rollin
1ffc0 67 20 62 61 63 6b 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d g.back.changes:';.$logs.=.$this-
1ffe0 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 >getCommitLogs($target->getSourc
20000 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 eReference(),.$initial->getSourc
20020 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 eReference(),.$path);.}..if.(tri
20040 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6c 6f 67 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 m($logs)).{.$logs.=.implode("\n"
20060 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 ,.array_map(function.($line).{.r
20080 65 74 75 72 6e 20 27 20 20 20 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f eturn.'......'...$line;.},.explo
200a0 64 65 28 22 5c 6e 22 2c 20 24 6c 6f 67 73 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 de("\n",.$logs)));..$this->io->w
200c0 72 69 74 65 28 27 20 20 20 20 27 2e 24 6d 65 73 73 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f rite('....'.$message);.$this->io
200e0 2d 3e 77 72 69 74 65 28 24 6c 6f 67 73 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e ->write($logs);.}.}..$this->io->
20100 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e write('');.}.....public.function
20120 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 .remove(PackageInterface.$packag
20140 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 e,.$path).{.$this->io->write("..
20160 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 -.Removing.<info>"...$package->g
20180 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 etName()..."</info>.(<comment>".
201a0 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e ..$package->getPrettyVersion()..
201c0 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 ."</comment>)");.$this->cleanCha
201e0 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 69 66 nges($package,.$path,.false);.if
20200 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 .(!$this->filesystem->removeDire
20220 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 ctory($path)).{...if.(!defined('
20240 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 28 PHP_WINDOWS_VERSION_BUILD').||.(
20260 75 73 6c 65 65 70 28 32 35 30 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 usleep(250).&&.!$this->filesyste
20280 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 m->removeDirectory($path))).{.th
202a0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 row.new.\RuntimeException('Could
202c0 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 .not.completely.delete.'.$path.'
202e0 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ,.aborting.');.}.}.}......public
20300 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 .function.setOutputProgress($out
20320 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a putProgress).{.return.$this;.}..
20340 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 .........protected.function.clea
20360 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 nChanges(PackageInterface.$packa
20380 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c ge,.$path,.$update).{...if.(null
203a0 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 .!==.$this->getLocalChanges($pac
203c0 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 kage,.$path)).{.throw.new.\Runti
203e0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 meException('Source.directory.'.
20400 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e ..$path...'.has.uncommitted.chan
20420 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ges.');.}.}........protected.fun
20440 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 7d 0a ction.reapplyChanges($path).{.}.
20460 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .......abstract.protected.functi
20480 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 on.doDownload(PackageInterface.$
204a0 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 package,.$path);.........abstrac
204c0 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 t.protected.function.doUpdate(Pa
204e0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 ckageInterface.$initial,.Package
20500 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a Interface.$target,.$path);......
20520 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ....abstract.protected.function.
20540 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 getCommitLogs($fromReference,.$t
20560 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a oReference,.$path);.}.<?php.....
20580 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f .......namespace.Composer\Downlo
205a0 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 ader;..use.Composer\Config;.use.
205c0 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 Composer\Cache;.use.Composer\Eve
205e0 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 ntDispatcher\EventDispatcher;.us
20600 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b e.Composer\Util\ProcessExecutor;
20620 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 .use.Composer\IO\IOInterface;.us
20640 65 20 52 61 72 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 61 72 44 e.RarArchive;.........class.RarD
20660 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 ownloader.extends.ArchiveDownloa
20680 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 der.{.protected.$process;..publi
206a0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 c.function.__construct(IOInterfa
206c0 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 ce.$io,.Config.$config,.EventDis
206e0 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c patcher.$eventDispatcher.=.null,
20700 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 .Cache.$cache.=.null,.ProcessExe
20720 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e cutor.$process.=.null).{.$this->
20740 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 process.=.$process.?:.new.Proces
20760 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 sExecutor($io);.parent::__constr
20780 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 uct($io,.$config,.$eventDispatch
207a0 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 er,.$cache);.}..protected.functi
207c0 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 72 6f 63 on.extract($file,.$path).{.$proc
207e0 65 73 73 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 essError.=.null;....if.(!defined
20800 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b ('PHP_WINDOWS_VERSION_BUILD')).{
20820 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 72 61 72 20 78 20 27 20 2e 20 65 73 63 61 70 65 73 .$command.=.'unrar.x.'...escapes
20840 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 20 2e 20 27 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 hellarg($file)...'.'...escapeshe
20860 6c 6c 61 72 67 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 6d 6f 64 20 2d 52 20 75 2b 77 llarg($path)...'.&&.chmod.-R.u+w
20880 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 0a 69 66 20 .'...escapeshellarg($path);..if.
208a0 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 (0.===.$this->process->execute($
208c0 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 command,.$ignoredOutput)).{.retu
208e0 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 rn;.}..$processError.=.'Failed.t
20900 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 o.execute.'...$command..."\n\n".
20920 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 ..$this->process->getErrorOutput
20940 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 52 61 72 41 72 63 ();.}..if.(!class_exists('RarArc
20960 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c hive')).{...$iniPath.=.php_ini_l
20980 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 oaded_file();..if.($iniPath).{.$
209a0 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 iniMessage.=.'The.php.ini.used.b
209c0 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 y.your.command-line.PHP.is:.'...
209e0 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d $iniPath;.}.else.{.$iniMessage.=
20a00 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e .'A.php.ini.file.does.not.exist.
20a20 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a .You.will.have.to.create.one.';.
20a40 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 }..$error.=."Could.not.decompres
20a60 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 72 61 s.the.archive,.enable.the.PHP.ra
20a80 72 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 72 61 72 2e 5c 6e 22 r.extension.or.install.unrar.\n"
20aa0 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 ...$iniMessage..."\n"...$process
20ac0 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 Error;..if.(!defined('PHP_WINDOW
20ae0 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 S_VERSION_BUILD')).{.$error.=."C
20b00 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c ould.not.decompress.the.archive,
20b20 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e .enable.the.PHP.rar.extension.\n
20b40 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 "...$iniMessage;.}..throw.new.\R
20b60 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 72 61 72 untimeException($error);.}..$rar
20b80 41 72 63 68 69 76 65 20 3d 20 52 61 72 41 72 63 68 69 76 65 3a 3a 6f 70 65 6e 28 24 66 69 6c 65 Archive.=.RarArchive::open($file
20ba0 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 61 72 41 72 63 68 69 76 65 29 20 7b );..if.(false.===.$rarArchive).{
20bc0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
20be0 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 52 41 52 20 61 72 63 68 69 76 65 tion('Could.not.open.RAR.archive
20c00 3a 20 27 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 65 6e 74 72 69 65 73 20 3d 20 24 72 61 72 :.'...$file);.}..$entries.=.$rar
20c20 41 72 63 68 69 76 65 2d 3e 67 65 74 45 6e 74 72 69 65 73 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 Archive->getEntries();..if.(fals
20c40 65 20 3d 3d 3d 20 24 65 6e 74 72 69 65 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e e.===.$entries).{.throw.new.\Run
20c60 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 timeException('Could.not.retriev
20c80 65 20 52 41 52 20 61 72 63 68 69 76 65 20 65 6e 74 72 69 65 73 27 29 3b 0a 7d 0a 0a 66 6f 72 65 e.RAR.archive.entries');.}..fore
20ca0 61 63 68 20 28 24 65 6e 74 72 69 65 73 20 61 73 20 24 65 6e 74 72 79 29 20 7b 0a 69 66 20 28 66 ach.($entries.as.$entry).{.if.(f
20cc0 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 79 2d 3e 65 78 74 72 61 63 74 28 24 70 61 74 68 29 29 alse.===.$entry->extract($path))
20ce0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
20d00 43 6f 75 6c 64 20 6e 6f 74 20 65 78 74 72 61 63 74 20 65 6e 74 72 79 27 29 3b 0a 7d 0a 7d 0a 0a Could.not.extract.entry');.}.}..
20d20 24 72 61 72 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a $rarArchive->close();.}.}.<?php.
20d40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f ...........namespace.Composer\Do
20d60 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a wnloader;..use.Composer\Config;.
20d80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 use.Composer\Cache;.use.Composer
20da0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 \IO\IOInterface;.use.Composer\Pa
20dc0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ckage\PackageInterface;.use.Comp
20de0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 oser\Package\Version\VersionPars
20e00 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 er;.use.Composer\Plugin\PluginEv
20e20 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 72 65 46 69 6c ents;.use.Composer\Plugin\PreFil
20e40 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 eDownloadEvent;.use.Composer\Eve
20e60 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 ntDispatcher\EventDispatcher;.us
20e80 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 e.Composer\Util\Filesystem;.use.
20ea0 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Util\GitHub;.use.Compos
20ec0 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a er\Util\RemoteFilesystem;.......
20ee0 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e ...class.FileDownloader.implemen
20f00 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 ts.DownloaderInterface.{.private
20f20 20 73 74 61 74 69 63 20 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 66 61 6c 73 65 3b .static.$cacheCollected.=.false;
20f40 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 .protected.$io;.protected.$confi
20f60 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 g;.protected.$rfs;.protected.$fi
20f80 6c 65 73 79 73 74 65 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 lesystem;.protected.$cache;.prot
20fa0 65 63 74 65 64 20 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 3b 0a 0a 0a ected.$outputProgress.=.true;...
20fc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
20fe0 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f ruct(IOInterface.$io,.Config.$co
21000 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 nfig,.EventDispatcher.$eventDisp
21020 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 atcher.=.null,.Cache.$cache.=.nu
21040 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c ll,.RemoteFilesystem.$rfs.=.null
21060 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 ,.Filesystem.$filesystem.=.null)
21080 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 .{.$this->io.=.$io;.$this->confi
210a0 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 g.=.$config;.$this->eventDispatc
210c0 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 72 her.=.$eventDispatcher;.$this->r
210e0 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 fs.=.$rfs.?:.new.RemoteFilesyste
21100 6d 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c m($io);.$this->filesystem.=.$fil
21120 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 esystem.?:.new.Filesystem();.$th
21140 69 73 2d 3e 63 61 63 68 65 20 3d 20 24 63 61 63 68 65 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e is->cache.=.$cache;..if.($this->
21160 63 61 63 68 65 20 26 26 20 21 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 cache.&&.!self::$cacheCollected.
21180 26 26 20 21 6d 74 5f 72 61 6e 64 28 30 2c 20 35 30 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 &&.!mt_rand(0,.50)).{.$this->cac
211a0 68 65 2d 3e 67 63 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 74 74 6c 27 29 he->gc($config->get('cache-ttl')
211c0 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 ,.$config->get('cache-files-maxs
211e0 69 7a 65 27 29 29 3b 0a 7d 0a 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 ize'));.}.self::$cacheCollected.
21200 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 =.true;.}.....public.function.ge
21220 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 tInstallationSource().{.return.'
21240 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 dist';.}.....public.function.dow
21260 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c nload(PackageInterface.$package,
21280 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 .$path).{.$url.=.$package->getDi
212a0 73 74 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 stUrl();.if.(!$url).{.throw.new.
212c0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 67 \InvalidArgumentException('The.g
212e0 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 6f iven.package.is.missing.url.info
21300 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d rmation');.}..$this->filesystem-
21320 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e >removeDirectory($path);.$this->
21340 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 filesystem->ensureDirectoryExist
21360 73 28 24 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 s($path);..$fileName.=.$this->ge
21380 74 46 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 74 68 tFileName($package,.$path);..$th
213a0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 is->io->write("..-.Installing.<i
213c0 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c nfo>"...$package->getName()..."<
213e0 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 /info>.(<comment>"...VersionPars
21400 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c er::formatVersion($package)..."<
21420 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 /comment>)");..$processedUrl.=.$
21440 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 this->processUrl($package,.$url)
21460 3b 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 65 73 73 ;.$hostname.=.parse_url($process
21480 65 64 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 0a 24 70 72 65 46 69 6c 65 44 edUrl,.PHP_URL_HOST);..$preFileD
214a0 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f ownloadEvent.=.new.PreFileDownlo
214c0 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 50 52 45 5f 46 49 4c 45 5f 44 adEvent(PluginEvents::PRE_FILE_D
214e0 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 70 72 6f 63 65 73 73 65 64 55 OWNLOAD,.$this->rfs,.$processedU
21500 72 6c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 rl);.if.($this->eventDispatcher)
21520 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 .{.$this->eventDispatcher->dispa
21540 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 tch($preFileDownloadEvent->getNa
21560 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 29 3b 0a 7d 0a me(),.$preFileDownloadEvent);.}.
21580 24 72 66 73 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 $rfs.=.$preFileDownloadEvent->ge
215a0 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 73 74 72 70 6f 73 tRemoteFilesystem();..if.(strpos
215c0 28 24 68 6f 73 74 6e 61 6d 65 2c 20 27 2e 67 69 74 68 75 62 2e 63 6f 6d 27 29 20 3d 3d 3d 20 28 ($hostname,.'.github.com').===.(
215e0 73 74 72 6c 65 6e 28 24 68 6f 73 74 6e 61 6d 65 29 20 2d 20 31 31 29 29 20 7b 0a 24 68 6f 73 74 strlen($hostname).-.11)).{.$host
21600 6e 61 6d 65 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 74 72 name.=.'github.com';.}..try.{.tr
21620 79 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 61 63 68 65 20 7c 7c 20 21 24 74 68 69 73 2d y.{.if.(!$this->cache.||.!$this-
21640 3e 63 61 63 68 65 2d 3e 63 6f 70 79 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 >cache->copyTo($this->getCacheKe
21660 79 28 24 70 61 63 6b 61 67 65 29 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 69 66 20 28 21 y($package),.$fileName)).{.if.(!
21680 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e $this->outputProgress).{.$this->
216a0 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 27 29 3b 0a 7d 0a io->write('....Downloading');.}.
216c0 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 ...$retries.=.3;.while.($retries
216e0 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f 73 74 6e 61 6d 65 --).{.try.{.$rfs->copy($hostname
21700 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 ,.$processedUrl,.$fileName,.$thi
21720 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 s->outputProgress);.break;.}.cat
21740 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 ch.(TransportException.$e).{...i
21760 66 20 28 28 30 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 26 26 20 35 30 30 20 21 f.((0.!==.$e->getCode().&&.500.!
21780 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7c 7c 20 21 24 72 65 74 72 69 65 73 29 20 ==.$e->getCode()).||.!$retries).
217a0 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 {.throw.$e;.}.if.($this->io->isV
217c0 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 erbose()).{.$this->io->write('..
217e0 20 20 44 6f 77 6e 6c 6f 61 64 20 66 61 69 6c 65 64 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e 27 29 ..Download.failed,.retrying...')
21800 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 ;.}.usleep(500000);.}.}..if.($th
21820 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 79 46 is->cache).{.$this->cache->copyF
21840 72 6f 6d 28 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 rom($this->getCacheKey($package)
21860 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e ,.$fileName);.}.}.else.{.$this->
21880 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 4c 6f 61 64 69 6e 67 20 66 72 6f 6d 20 63 61 63 68 io->write('....Loading.from.cach
218a0 65 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 e');.}.}.catch.(TransportExcepti
218c0 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f on.$e).{.if.(!in_array($e->getCo
218e0 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 34 2c 20 34 30 33 2c 20 34 31 32 29 29 29 20 7b 0a 74 de(),.array(404,.403,.412))).{.t
21900 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 hrow.$e;.}.if.('github.com'.===.
21920 24 68 6f 73 74 6e 61 6d 65 20 26 26 20 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 $hostname.&&.!$this->io->hasAuth
21940 65 6e 74 69 63 61 74 69 6f 6e 28 24 68 6f 73 74 6e 61 6d 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 entication($hostname)).{.$messag
21960 65 20 3d 20 22 5c 6e 22 2e 27 43 6f 75 6c 64 20 6e 6f 74 20 66 65 74 63 68 20 27 2e 24 70 72 6f e.=."\n".'Could.not.fetch.'.$pro
21980 63 65 73 73 65 64 55 72 6c 2e 27 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 cessedUrl.',.enter.your.GitHub.c
219a0 72 65 64 65 6e 74 69 61 6c 73 20 27 2e 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 redentials.'.($e->getCode().===.
219c0 34 30 34 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 20 404.?.'to.access.private.repos'.
219e0 3a 20 27 74 6f 20 67 6f 20 6f 76 65 72 20 74 68 65 20 41 50 49 20 72 61 74 65 20 6c 69 6d 69 74 :.'to.go.over.the.API.rate.limit
21a00 27 29 3b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 ');.$gitHubUtil.=.new.GitHub($th
21a20 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 6e 75 6c 6c 2c 20 24 72 66 is->io,.$this->config,.null,.$rf
21a40 73 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f s);.if.(!$gitHubUtil->authorizeO
21a60 41 75 74 68 28 24 68 6f 73 74 6e 61 6d 65 29 0a 26 26 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e Auth($hostname).&&.(!$this->io->
21a80 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 7c 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d isInteractive().||.!$gitHubUtil-
21aa0 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 68 6f >authorizeOAuthInteractively($ho
21ac0 73 74 6e 61 6d 65 2c 20 24 6d 65 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b stname,.$message)).).{.throw.$e;
21ae0 0a 7d 0a 24 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 .}.$rfs->copy($hostname,.$proces
21b00 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 sedUrl,.$fileName,.$this->output
21b20 50 72 6f 67 72 65 73 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a Progress);.}.else.{.throw.$e;.}.
21b40 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 4e 61 6d 65 29 29 20 }..if.(!file_exists($fileName)).
21b60 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
21b80 70 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 61 76 65 64 20 ption($url.'.could.not.be.saved.
21ba0 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 27 to.'.$fileName.',.make.sure.the'
21bc0 0a 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 20 61 6e 64 20 79 6f ..'.directory.is.writable.and.yo
21be0 75 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 27 29 3b 0a u.have.internet.connectivity');.
21c00 7d 0a 0a 24 63 68 65 63 6b 73 75 6d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 }..$checksum.=.$package->getDist
21c20 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 69 66 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 Sha1Checksum();.if.($checksum.&&
21c40 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 69 6c 65 4e 61 6d 65 29 20 21 3d .hash_file('sha1',.$fileName).!=
21c60 3d 20 24 63 68 65 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 =.$checksum).{.throw.new.\Unexpe
21c80 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 68 65 63 6b 73 75 6d ctedValueException('The.checksum
21ca0 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 61 69 6c 65 64 .verification.of.the.file.failed
21cc0 20 28 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 75 72 6c 2e 27 29 27 29 3b 0a 7d .(downloaded.from.'.$url.')');.}
21ce0 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 .}.catch.(\Exception.$e).{...$th
21d00 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 is->filesystem->removeDirectory(
21d20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 6b 61 $path);.$this->clearCache($packa
21d40 67 65 2c 20 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ge,.$path);.throw.$e;.}..return.
21d60 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $fileName;.}.....public.function
21d80 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 .setOutputProgress($outputProgre
21da0 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 3d 20 24 6f ss).{.$this->outputProgress.=.$o
21dc0 75 74 70 75 74 50 72 6f 67 72 65 73 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a utputProgress;..return.$this;.}.
21de0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 43 61 63 68 65 28 50 .protected.function.clearCache(P
21e00 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 ackageInterface.$package,.$path)
21e20 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 .{.if.($this->cache).{.$fileName
21e40 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 .=.$this->getFileName($package,.
21e60 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 6d 6f 76 65 28 24 74 68 $path);.$this->cache->remove($th
21e80 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a is->getCacheKey($package));.}.}.
21ea0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 ....public.function.update(Packa
21ec0 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
21ee0 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e erface.$target,.$path).{.$this->
21f00 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e remove($initial,.$path);.$this->
21f20 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a download($target,.$path);.}.....
21f40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e public.function.remove(PackageIn
21f60 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 terface.$package,.$path).{.$this
21f80 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e ->io->write("..-.Removing.<info>
21fa0 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 "...$package->getName()..."</inf
21fc0 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a o>.(<comment>"...VersionParser::
21fe0 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d formatVersion($package)..."</com
22000 6d 65 6e 74 3e 29 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ment>)");.if.(!$this->filesystem
22020 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 ->removeDirectory($path)).{...if
22040 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f .(!defined('PHP_WINDOWS_VERSION_
22060 42 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 32 35 30 30 30 30 29 20 26 26 20 21 24 BUILD').||.(usleep(250000).&&.!$
22080 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 this->filesystem->removeDirector
220a0 79 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 y($path))).{.throw.new.\RuntimeE
220c0 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 xception('Could.not.completely.d
220e0 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a elete.'.$path.',.aborting.');.}.
22100 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 }.}.........protected.function.g
22120 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 etFileName(PackageInterface.$pac
22140 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e kage,.$path).{.return.$path.'/'.
22160 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 pathinfo(parse_url($package->get
22180 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e DistUrl(),.PHP_URL_PATH),.PATHIN
221a0 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 FO_BASENAME);.}...........protec
221c0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 50 61 63 6b 61 67 65 49 ted.function.processUrl(PackageI
221e0 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 nterface.$package,.$url).{.if.(!
22200 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 30 extension_loaded('openssl').&&.0
22220 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 3a 27 29 29 20 7b 0a 74 .===.strpos($url,.'https:')).{.t
22240 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 hrow.new.\RuntimeException('You.
22260 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f must.enable.the.openssl.extensio
22280 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b n.to.download.files.via.https');
222a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .}..return.$url;.}..private.func
222c0 74 69 6f 6e 20 67 65 74 43 61 63 68 65 4b 65 79 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 tion.getCacheKey(PackageInterfac
222e0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e e.$package).{.if.(preg_match('{^
22300 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 [a-f0-9]{40}$}',.$package->getDi
22320 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 stReference())).{.return.$packag
22340 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 e->getName().'/'.$package->getDi
22360 73 74 52 65 66 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 stReference().'.'.$package->getD
22380 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 istType();.}..return.$package->g
223a0 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f etName().'/'.$package->getVersio
223c0 6e 28 29 2e 27 2d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e n().'-'.$package->getDistReferen
223e0 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 ce().'.'.$package->getDistType()
22400 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
22420 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f .Composer\Downloader;..use.Compo
22440 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 ser\Package\PackageInterface;.us
22460 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a e.Composer\Util\Svn.as.SvnUtil;.
22480 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 .....class.SvnDownloader.extends
224a0 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .VcsDownloader.{....public.funct
224c0 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ion.doDownload(PackageInterface.
224e0 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 $package,.$path).{.$url.=.$packa
22500 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b ge->getSourceUrl();.$ref.=.$pack
22520 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 age->getSourceReference();..$thi
22540 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 s->io->write("....Checking.out."
22560 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 .$package->getSourceReference())
22580 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 63 6f 22 2c ;.$this->execute($url,."svn.co",
225a0 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 6e .sprintf("%s/%s",.$url,.$ref),.n
225c0 75 6c 6c 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ull,.$path);.}.....public.functi
225e0 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e on.doUpdate(PackageInterface.$in
22600 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c itial,.PackageInterface.$target,
22620 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 .$path).{.$url.=.$target->getSou
22640 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 rceUrl();.$ref.=.$target->getSou
22660 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 rceReference();..if.(!is_dir($pa
22680 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d th.'/.svn')).{.throw.new.\Runtim
226a0 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 73 76 6e 20 64 69 72 65 63 74 6f 72 79 20 69 eException('The..svn.directory.i
226c0 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 s.missing.from.'.$path.',.see.ht
226e0 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 tp://getcomposer.org/commit-deps
22700 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 .for.more.information');.}..$thi
22720 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 s->io->write("....Checking.out."
22740 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 ...$ref);.$this->execute($url,."
22760 73 76 6e 20 73 77 69 74 63 68 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 svn.switch",.sprintf("%s/%s",.$u
22780 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rl,.$ref),.$path);.}.....public.
227a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 function.getLocalChanges(Package
227c0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 Interface.$package,.$path).{.if.
227e0 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 72 65 74 75 72 (!is_dir($path.'/.svn')).{.retur
22800 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 n;.}..$this->process->execute('s
22820 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 65 72 6e 61 6c 73 27 2c 20 24 vn.status.--ignore-externals',.$
22840 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 output,.$path);..return.preg_mat
22860 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 20 3f 20 24 ch('{^.*[^X.].+}m',.$output).?.$
22880 6f 75 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 output.:.null;.}..............pr
228a0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 62 61 73 65 55 72 otected.function.execute($baseUr
228c0 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 l,.$command,.$url,.$cwd.=.null,.
228e0 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 $path.=.null).{.$util.=.new.SvnU
22900 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 74 72 79 20 7b 0a til($baseUrl,.$this->io);.try.{.
22920 72 65 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 return.$util->execute($command,.
22940 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 $url,.$cwd,.$path,.$this->io->is
22960 56 65 72 62 6f 73 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 Verbose());.}.catch.(\RuntimeExc
22980 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 eption.$e).{.throw.new.\RuntimeE
229a0 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 xception(.'Package.could.not.be.
229c0 64 6f 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 downloaded,.'.$e->getMessage().)
229e0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 ;.}.}.....protected.function.cle
22a00 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b anChanges(PackageInterface.$pack
22a20 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 63 68 61 age,.$path,.$update).{.if.(!$cha
22a40 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 nges.=.$this->getLocalChanges($p
22a60 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 ackage,.$path)).{.return;.}..if.
22a80 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a (!$this->io->isInteractive()).{.
22aa0 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 if.(true.===.$this->config->get(
22ac0 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 'discard-changes')).{.return.$th
22ae0 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 is->discardChanges($path);.}..re
22b00 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 turn.parent::cleanChanges($packa
22b20 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 ge,.$path,.$update);.}..$changes
22b40 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a .=.array_map(function.($elem).{.
22b60 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c return.'....'.$elem;.},.preg_spl
22b80 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a it('{\s*\r?\n\s*}',.$changes));.
22ba0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 $this->io->write('....<error>The
22bc0 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 .package.has.modified.files:</er
22be0 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 5f 73 ror>');.$this->io->write(array_s
22c00 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e lice($changes,.0,.10));.if.(coun
22c20 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 t($changes).>.10).{.$this->io->w
22c40 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 rite('....<info>'.count($changes
22c60 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 ).-.10...'.more.files.modified,.
22c80 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 choose."v".to.view.the.full.list
22ca0 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 </info>');.}..while.(true).{.swi
22cc0 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 tch.($this->io->ask('....<info>D
22ce0 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 6e 66 6f 3e iscard.changes.[y,n,v,?]?</info>
22d00 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 .',.'?')).{.case.'y':.$this->dis
22d20 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 cardChanges($path);.break.2;..ca
22d40 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 se.'n':.throw.new.\RuntimeExcept
22d60 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 ion('Update.aborted');..case.'v'
22d80 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 :.$this->io->write($changes);.br
22da0 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e eak;..case.'?':.default:.$this->
22dc0 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 io->write(array(.'....y.-.discar
22de0 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 d.changes.and.apply.the.'.($upda
22e00 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 te.?.'update'.:.'uninstall'),.'.
22e20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 ...n.-.abort.the.'.($update.?.'u
22e40 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 pdate'.:.'uninstall').'.and.let.
22e60 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 you.manually.clean.things.up',.'
22e80 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 27 20 ....v.-.view.modified.files',.'.
22ea0 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 2c 0a 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d ...?.-.print.help',.));.break;.}
22ec0 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 .}.}.....protected.function.getC
22ee0 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 ommitLogs($fromReference,.$toRef
22f00 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e erence,.$path).{...$fromRevision
22f20 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 27 .=.preg_replace('{.*@(\d+)$}',.'
22f40 24 31 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 3b 0a 24 74 6f 52 65 76 69 73 69 6f $1',.$fromReference);.$toRevisio
22f60 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 n.=.preg_replace('{.*@(\d+)$}',.
22f80 27 24 31 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d '$1',.$toReference);..$command.=
22fa0 20 73 70 72 69 6e 74 66 28 27 73 76 6e 20 6c 6f 67 20 2d 72 25 73 3a 25 73 20 2d 2d 69 6e 63 72 .sprintf('svn.log.-r%s:%s.--incr
22fc0 65 6d 65 6e 74 61 6c 27 2c 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e 2c 20 24 74 6f 52 65 76 69 emental',.$fromRevision,.$toRevi
22fe0 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 sion);..if.(0.!==.$this->process
23000 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 ->execute($command,.$output,.$pa
23020 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 th)).{.throw.new.\RuntimeExcepti
23040 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 on('Failed.to.execute.'...$comma
23060 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 nd..."\n\n"...$this->process->ge
23080 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 tErrorOutput());.}..return.$outp
230a0 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 61 72 ut;.}..protected.function.discar
230c0 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 dChanges($path).{.if.(0.!==.$thi
230e0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 72 65 76 65 72 74 20 s->process->execute('svn.revert.
23100 2d 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 -R..',.$output,.$path)).{.throw.
23120 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 new.\RuntimeException("Could.not
23140 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 .reset.changes\n\n:".$this->proc
23160 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f ess->getErrorOutput());.}.}.}.<?
23180 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
231a0 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c r\Downloader;..use.Composer\Util
231c0 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 \Filesystem;...........class.Pea
231e0 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 rPackageExtractor.{.private.stat
23200 69 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 ic.$rolesWithoutPackageNamePrefi
23220 78 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 73 63 72 69 70 74 27 2c 20 27 77 77 77 27 x.=.array('php',.'script',.'www'
23240 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 );..private.$filesystem;.private
23260 20 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .$file;..public.function.__const
23280 72 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 ruct($file).{.if.(!is_file($file
232a0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 )).{.throw.new.\UnexpectedValueE
232c0 78 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 61 63 6b 61 67 65 20 66 69 6c 65 20 69 73 20 6e xception('PEAR.package.file.is.n
232e0 6f 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e ot.found.at.'.$file);.}..$this->
23300 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 filesystem.=.new.Filesystem();.$
23320 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a this->file.=.$file;.}...........
23340 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 54 6f 28 24 74 61 72 67 .public.function.extractTo($targ
23360 65 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 20 3d et,.array.$roles.=.array('php'.=
23380 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 29 2c 20 24 76 61 72 >.'/',.'script'.=>.'/bin'),.$var
233a0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 20 3d s.=.array()).{.$extractionPath.=
233c0 20 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 79 20 7b 0a 24 61 72 63 .$target.'/tarball';..try.{.$arc
233e0 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 74 68 69 73 2d 3e 66 69 6c 65 hive.=.new.\PharData($this->file
23400 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 65 78 74 72 61 63 74 69 );.$archive->extractTo($extracti
23420 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 onPath,.null,.true);..if.(!is_fi
23440 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 le($this->combine($extractionPat
23460 68 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 h,.'/package.xml'))).{.throw.new
23480 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 .\RuntimeException('Invalid.PEAR
234a0 20 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 70 61 63 6b 61 67 .package..It.must.contain.packag
234c0 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f e.xml.file.');.}..$fileCopyActio
234e0 6e 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 65 78 ns.=.$this->buildCopyActions($ex
23500 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 tractionPath,.$roles,.$vars);.$t
23520 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 2c his->copyFiles($fileCopyActions,
23540 20 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 .$extractionPath,.$target,.$role
23560 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 s,.$vars);.$this->filesystem->re
23580 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 29 3b 0a moveDirectory($extractionPath);.
235a0 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 }.catch.(\Exception.$exception).
235c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
235e0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 74 72 61 63 74 ption(sprintf('Failed.to.extract
23600 20 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 20 74 6f 20 25 73 2e 20 52 65 61 73 6f 6e 3a 20 .PEAR.package.%s.to.%s..Reason:.
23620 25 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 24 65 78 63 65 %s',.$this->file,.$target,.$exce
23640 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2c 20 30 2c 20 24 65 78 63 65 70 74 ption->getMessage()),.0,.$except
23660 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ion);.}.}...........private.func
23680 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 tion.copyFiles($files,.$source,.
236a0 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 $target,.$roles,.$vars).{.foreac
236c0 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 74 h.($files.as.$file).{.$from.=.$t
236e0 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 5b 27 66 72 6f his->combine($source,.$file['fro
23700 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 61 72 67 m']);.$to.=.$this->combine($targ
23720 65 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 5b 27 72 6f 6c 65 27 5d 5d 29 3b 0a 24 74 6f 20 et,.$roles[$file['role']]);.$to.
23740 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 6f 2c 20 24 66 69 6c 65 5b 27 74 6f 27 =.$this->combine($to,.$file['to'
23760 5d 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 6c 65 5b 27 74 61 73 6b 73 27 5d 3b 0a 24 74 68 ]);.$tasks.=.$file['tasks'];.$th
23780 69 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c is->copyFile($from,.$to,.$tasks,
237a0 20 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 .$vars);.}.}..private.function.c
237c0 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 opyFile($from,.$to,.$tasks,.$var
237e0 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 72 6f 6d 29 29 20 7b 0a 74 68 72 6f s).{.if.(!is_file($from)).{.thro
23800 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 w.new.\RuntimeException('Invalid
23820 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 64 65 66 69 6e .PEAR.package..package.xml.defin
23840 65 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e 6f 74 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 es.file.that.is.not.located.insi
23860 64 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 de.tarball.');.}..$this->filesys
23880 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 tem->ensureDirectoryExists(dirna
238a0 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 74 61 73 6b 73 me($to));..if.(0.==.count($tasks
238c0 29 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 6f 70 79 28 24 66 72 6f 6d 2c 20 24 74 6f 29 3b )).{.$copied.=.copy($from,.$to);
238e0 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f .}.else.{.$content.=.file_get_co
23900 6e 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 ntents($from);.$replacements.=.a
23920 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 73 6b 73 20 61 73 20 24 74 61 73 6b rray();.foreach.($tasks.as.$task
23940 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 74 61 73 6b 5b 27 66 72 6f 6d 27 5d 3b 0a 24 76 ).{.$pattern.=.$task['from'];.$v
23960 61 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 arName.=.$task['to'];.if.(isset(
23980 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 29 20 7b 0a 69 66 20 28 24 76 61 72 4e 61 6d 65 $vars[$varName])).{.if.($varName
239a0 20 3d 3d 3d 20 27 70 68 70 5f 62 69 6e 27 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 .===.'php_bin'.&&.false.===.strp
239c0 6f 73 28 24 74 6f 2c 20 27 2e 62 61 74 27 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 os($to,.'.bat')).{.$replacements
239e0 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 2e 62 61 [$pattern].=.preg_replace('{\.ba
23a00 74 24 7d 27 2c 20 27 27 2c 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 3b 0a 7d 20 65 6c t$}',.'',.$vars[$varName]);.}.el
23a20 73 65 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 24 se.{.$replacements[$pattern].=.$
23a40 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a 7d 0a 7d 0a 7d 0a 24 63 6f 6e 74 65 6e 74 20 3d vars[$varName];.}.}.}.$content.=
23a60 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 29 3b .strtr($content,.$replacements);
23a80 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 ..$copied.=.file_put_contents($t
23aa0 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 o,.$content);.}..if.(false.===.$
23ac0 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 copied).{.throw.new.\RuntimeExce
23ae0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20 25 73 ption(sprintf('Failed.to.copy.%s
23b00 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a .to.%s',.$from,.$to));.}.}......
23b20 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 70 79 ......private.function.buildCopy
23b40 41 63 74 69 6f 6e 73 28 24 73 6f 75 72 63 65 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 2c 20 24 Actions($source,.array.$roles,.$
23b60 76 61 72 73 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f vars).{..$package.=.simplexml_lo
23b80 61 64 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 ad_file($this->combine($source,.
23ba0 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b 0a 69 66 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 'package.xml'));.if(false.===.$p
23bc0 61 63 6b 61 67 65 29 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ackage).throw.new.\RuntimeExcept
23be0 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 ion('Package.definition.file.is.
23c00 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 not.valid.');..$packageSchemaVer
23c20 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 69 66 20 28 sion.=.$package['version'];.if.(
23c40 27 31 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 '1.0'.==.$packageSchemaVersion).
23c60 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d {.$children.=.$package->release-
23c80 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e >filelist->children();.$packageN
23ca0 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 ame.=.(string).$package->name;.$
23cc0 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 packageVersion.=.(string).$packa
23ce0 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 72 63 65 44 69 72 ge->release->version;.$sourceDir
23d00 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 .=.$packageName...'-'...$package
23d20 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 Version;.$result.=.$this->buildS
23d40 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 ourceList10($children,.$roles,.$
23d60 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d sourceDir,.'',.null,.$packageNam
23d80 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 e);.}.elseif.('2.0'.==.$packageS
23da0 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 70 61 63 6b 61 67 chemaVersion.||.'2.1'.==.$packag
23dc0 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 eSchemaVersion).{.$children.=.$p
23de0 61 63 6b 61 67 65 2d 3e 63 6f 6e 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 ackage->contents->children();.$p
23e00 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e ackageName.=.(string).$package->
23e20 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 name;.$packageVersion.=.(string)
23e40 20 24 70 61 63 6b 61 67 65 2d 3e 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 65 3b 0a 24 73 6f .$package->version->release;.$so
23e60 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 urceDir.=.$packageName...'-'...$
23e80 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d packageVersion;.$result.=.$this-
23ea0 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 >buildSourceList20($children,.$r
23ec0 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 oles,.$sourceDir,.'',.null,.$pac
23ee0 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 70 61 63 6b 61 kageName);..$namespaces.=.$packa
23f00 67 65 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 72 ge->getNamespaces();.$package->r
23f20 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 24 6e 61 6d egisterXPathNamespace('ns',.$nam
23f40 65 73 70 61 63 65 73 5b 27 27 5d 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 3d 20 24 70 espaces['']);.$releaseNodes.=.$p
23f60 61 63 6b 61 67 65 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 73 65 27 29 3b 0a ackage->xpath('ns:phprelease');.
23f80 24 74 68 69 73 2d 3e 61 70 70 6c 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c 74 2c 20 24 72 65 $this->applyRelease($result,.$re
23fa0 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 leaseNodes,.$vars);.}.else.{.thr
23fc0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 73 75 70 70 ow.new.\RuntimeException('Unsupp
23fe0 6f 72 74 65 64 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 20 orted.schema.version.of.package.
24000 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 definition.file.');.}..return.$r
24020 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 esult;.}..private.function.apply
24040 52 65 6c 65 61 73 65 28 26 24 61 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 Release(&$actions,.$releaseNodes
24060 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 ,.$vars).{.foreach.($releaseNode
24080 73 20 61 73 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 4f 73 s.as.$releaseNode).{.$requiredOs
240a0 20 3d 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f .=.$releaseNode->installconditio
240c0 6e 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 ns.&&.$releaseNode->installcondi
240e0 74 69 6f 6e 73 2d 3e 6f 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 tions->os.&&.$releaseNode->insta
24100 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 73 74 72 69 6e 67 llconditions->os->name.?.(string
24120 29 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e ).$releaseNode->installcondition
24140 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 4f s->os->name.:.'';.if.($requiredO
24160 73 20 26 26 20 24 76 61 72 73 5b 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 72 65 64 4f 73 29 s.&&.$vars['os'].!=.$requiredOs)
24180 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 .{.continue;.}..if.($releaseNode
241a0 2d 3e 66 69 6c 65 6c 69 73 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e ->filelist).{.foreach.($releaseN
241c0 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 61 73 20 24 61 63 ode->filelist->children().as.$ac
241e0 74 69 6f 6e 29 20 7b 0a 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 61 63 74 69 6f 6e tion).{.if.('install'.==.$action
24200 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 ->getName()).{.$name.=.(string).
24220 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 $action['name'];.$as.=.(string).
24240 24 61 63 74 69 6f 6e 5b 27 61 73 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 63 74 69 6f 6e $action['as'];.if.(isset($action
24260 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 27 74 6f s[$name])).{.$actions[$name]['to
24280 27 5d 20 3d 20 24 61 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e 6f 72 65 27 20 3d '].=.$as;.}.}.elseif.('ignore'.=
242a0 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 =.$action->getName()).{.$name.=.
242c0 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 75 6e 73 65 74 28 (string).$action['name'];.unset(
242e0 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 7d 0a 7d $actions[$name]);.}.else.{...}.}
24300 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 .}.break;.}.}..private.function.
24320 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 buildSourceList10($children,.$ta
24340 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f rgetRoles,.$source,.$target,.$ro
24360 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 le,.$packageName).{.$result.=.ar
24380 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 ray();....foreach.($children.as.
243a0 24 63 68 69 6c 64 29 20 7b 0a 0a 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 $child).{..if.($child->getName()
243c0 20 3d 3d 20 27 64 69 72 27 29 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d .==.'dir').{.$dirSource.=.$this-
243e0 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c >combine($source,.(string).$chil
24400 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b d['name']);.$dirTarget.=.$child[
24420 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b 0a 24 'baseinstalldir'].?.:.$target;.$
24440 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f dirRole.=.$child['role'].?.:.$ro
24460 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 le;.$dirFiles.=.$this->buildSour
24480 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 ceList10($child->children(),.$ta
244a0 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 rgetRoles,.$dirSource,.$dirTarge
244c0 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 t,.$dirRole,.$packageName);.$res
244e0 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 ult.=.array_merge($result,.$dirF
24500 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 iles);.}.elseif.($child->getName
24520 28 29 20 3d 3d 20 27 66 69 6c 65 27 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 ().==.'file').{.$fileRole.=.(str
24540 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 69 ing).$child['role'].?.:.$role;.i
24560 66 20 28 69 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d f.(isset($targetRoles[$fileRole]
24580 29 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c )).{.$fileName.=.(string).($chil
245a0 64 5b 27 6e 61 6d 65 27 5d 20 3f 20 3a 20 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 69 6c d['name'].?.:.$child[0]);...$fil
245c0 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 eSource.=.$this->combine($source
245e0 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 ,.$fileName);.$fileTarget.=.$thi
24600 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 73 65 s->combine((string).$child['base
24620 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 4e installdir'].?.:.$target,.$fileN
24640 61 6d 65 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 ame);.if.(!in_array($fileRole,.s
24660 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 elf::$rolesWithoutPackageNamePre
24680 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 fix)).{.$fileTarget.=.$packageNa
246a0 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c me...'/'...$fileTarget;.}.$resul
246c0 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 t[(string).$child['name']].=.arr
246e0 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d ay('from'.=>.$fileSource,.'to'.=
24700 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f >.$fileTarget,.'role'.=>.$fileRo
24720 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a le,.'tasks'.=>.array());.}.}.}..
24740 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 return.$result;.}..private.funct
24760 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c ion.buildSourceList20($children,
24780 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c .$targetRoles,.$source,.$target,
247a0 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 .$role,.$packageName).{.$result.
247c0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e =.array();....foreach.($children
247e0 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a 69 66 20 28 27 64 69 72 27 20 3d 3d 20 24 63 68 69 .as.$child).{..if.('dir'.==.$chi
24800 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 ld->getName()).{.$dirSource.=.$t
24820 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 63 68 69 6c 64 5b 27 6e 61 his->combine($source,.$child['na
24840 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 me']);.$dirTarget.=.$child['base
24860 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f installdir'].?.:.$target;.$dirRo
24880 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 24 le.=.$child['role'].?.:.$role;.$
248a0 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 dirFiles.=.$this->buildSourceLis
248c0 74 32 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 t20($child->children(),.$targetR
248e0 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 oles,.$dirSource,.$dirTarget,.$d
24900 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d irRole,.$packageName);.$result.=
24920 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 .array_merge($result,.$dirFiles)
24940 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 66 69 6c 65 27 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 ;.}.elseif.('file'.==.$child->ge
24960 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 tName()).{.$fileRole.=.(string).
24980 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 $child['role'].?.:.$role;.if.(is
249a0 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a set($targetRoles[$fileRole])).{.
249c0 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f $fileSource.=.$this->combine($so
249e0 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a urce,.(string).$child['name']);.
24a00 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 $fileTarget.=.$this->combine((st
24a20 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 ring).($child['baseinstalldir'].
24a40 3f 20 3a 20 24 74 61 72 67 65 74 29 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e ?.:.$target),.(string).$child['n
24a60 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 73 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f ame']);.$fileTasks.=.array();.fo
24a80 72 65 61 63 68 20 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 27 68 74 74 70 3a 2f 2f reach.($child->children('http://
24aa0 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 74 61 73 6b 73 2d 31 2e 30 27 29 20 61 73 20 pear.php.net/dtd/tasks-1.0').as.
24ac0 24 74 61 73 6b 4e 6f 64 65 29 20 7b 0a 69 66 20 28 27 72 65 70 6c 61 63 65 27 20 3d 3d 20 24 74 $taskNode).{.if.('replace'.==.$t
24ae0 61 73 6b 4e 6f 64 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 54 61 73 6b 73 askNode->getName()).{.$fileTasks
24b00 5b 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 [].=.array('from'.=>.(string).$t
24b20 61 73 6b 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 66 72 6f 6d 2c 20 27 74 6f askNode->attributes()->from,.'to
24b40 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 '.=>.(string).$taskNode->attribu
24b60 74 65 73 28 29 2d 3e 74 6f 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 66 tes()->to);.}.}.if.(!in_array($f
24b80 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b ileRole,.self::$rolesWithoutPack
24ba0 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 ageNamePrefix)).{.$fileTarget.=.
24bc0 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c 65 54 61 72 67 65 74 $packageName...'/'...$fileTarget
24be0 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d ;.}.$result[(string).$child['nam
24c00 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 e']].=.array('from'.=>.$fileSour
24c20 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 ce,.'to'.=>.$fileTarget,.'role'.
24c40 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 24 66 69 6c 65 54 61 =>.$fileRole,.'tasks'.=>.$fileTa
24c60 73 6b 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a sks);.}.}.}..return.$result;.}..
24c80 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 65 28 24 6c 65 66 74 2c 20 private.function.combine($left,.
24ca0 24 72 69 67 68 74 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6c 65 66 74 2c 20 27 2f $right).{.return.rtrim($left,.'/
24cc0 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 72 69 67 68 74 2c 20 27 2f 27 29 3b 0a 7d ')...'/'...ltrim($right,.'/');.}
24ce0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
24d00 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Downloader;..use.Composer
24d20 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 \Package\PackageInterface;.use.C
24d40 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 omposer\Downloader\DownloaderInt
24d60 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 erface;.use.Composer\Util\Filesy
24d80 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 stem;.......class.DownloadManage
24da0 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b r.{.private.$preferDist.=.false;
24dc0 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a .private.$preferSource.=.false;.
24de0 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 64 6f private.$filesystem;.private.$do
24e00 77 6e 6c 6f 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c wnloaders.=.array();........publ
24e20 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 72 65 66 65 72 53 ic.function.__construct($preferS
24e40 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 ource.=.false,.Filesystem.$files
24e60 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 ystem.=.null).{.$this->preferSou
24e80 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 rce.=.$preferSource;.$this->file
24ea0 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 system.=.$filesystem.?:.new.File
24ec0 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 system();.}........public.functi
24ee0 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 on.setPreferSource($preferSource
24f00 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 ).{.$this->preferSource.=.$prefe
24f20 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rSource;..return.$this;.}.......
24f40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 .public.function.setPreferDist($
24f60 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 preferDist).{.$this->preferDist.
24f80 3d 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a =.$preferDist;..return.$this;.}.
24fa0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 ........public.function.setOutpu
24fc0 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 66 6f 72 tProgress($outputProgress).{.for
24fe0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 20 61 73 20 24 64 6f 77 each.($this->downloaders.as.$dow
25000 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 73 65 74 4f 75 74 70 75 nloader).{.$downloader->setOutpu
25020 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 72 tProgress($outputProgress);.}..r
25040 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$this;.}.........public.fu
25060 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 2c 20 44 6f 77 6e nction.setDownloader($type,.Down
25080 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 0a 7b 0a 24 loaderInterface.$downloader).{.$
250a0 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 24 74 68 69 73 2d type.=.strtolower($type);.$this-
250c0 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 >downloaders[$type].=.$downloade
250e0 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 r;..return.$this;.}...........pu
25100 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 blic.function.getDownloader($typ
25120 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a e).{.$type.=.strtolower($type);.
25140 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 if.(!isset($this->downloaders[$t
25160 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d ype])).{.throw.new.\InvalidArgum
25180 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 64 6f 77 6e 6c 6f 61 64 65 72 entException('Unknown.downloader
251a0 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .type:.'.$type);.}..return.$this
251c0 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ->downloaders[$type];.}.........
251e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 ....public.function.getDownloade
25200 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 rForInstalledPackage(PackageInte
25220 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 rface.$package).{.$installationS
25240 6f 75 72 63 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f ource.=.$package->getInstallatio
25260 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 nSource();..if.('dist'.===.$inst
25280 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 allationSource).{.$downloader.=.
252a0 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 $this->getDownloader($package->g
252c0 65 74 44 69 73 74 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 6f 75 72 63 65 etDistType());.}.elseif.('source
252e0 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f '.===.$installationSource).{.$do
25300 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 wnloader.=.$this->getDownloader(
25320 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c $package->getSourceType());.}.el
25340 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 se.{.throw.new.\InvalidArgumentE
25360 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 xception(.'Package.'.$package.'.
25380 73 65 65 6d 73 20 6e 6f 74 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 70 72 6f 70 65 72 6c seems.not.been.installed.properl
253a0 79 27 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 y'.);.}..if.($installationSource
253c0 20 21 3d 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f .!==.$downloader->getInstallatio
253e0 6e 53 6f 75 72 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 nSource()).{.throw.new.\LogicExc
25400 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 44 6f 77 6e 6c 6f 61 64 65 72 20 22 25 73 22 eption(sprintf(.'Downloader."%s"
25420 20 69 73 20 61 20 25 73 20 74 79 70 65 20 64 6f 77 6e 6c 6f 61 64 65 72 20 61 6e 64 20 63 61 6e .is.a.%s.type.downloader.and.can
25440 20 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 25 73 27 2c 0a 67 65 .not.be.used.to.download.%s',.ge
25460 74 5f 63 6c 61 73 73 28 24 64 6f 77 6e 6c 6f 61 64 65 72 29 2c 20 24 64 6f 77 6e 6c 6f 61 64 65 t_class($downloader),.$downloade
25480 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 2c 20 24 69 6e 73 r->getInstallationSource(),.$ins
254a0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 tallationSource.));.}..return.$d
254c0 6f 77 6e 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ownloader;.}...........public.fu
254e0 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nction.download(PackageInterface
25500 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 70 72 65 66 65 72 53 6f .$package,.$targetDir,.$preferSo
25520 75 72 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e urce.=.null).{.$preferSource.=.n
25540 75 6c 6c 20 21 3d 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3f 20 24 70 72 65 66 65 72 53 ull.!==.$preferSource.?.$preferS
25560 6f 75 72 63 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 73 6f ource.:.$this->preferSource;.$so
25580 75 72 63 65 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 urceType.=.$package->getSourceTy
255a0 70 65 28 29 3b 0a 24 64 69 73 74 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 pe();.$distType.=.$package->getD
255c0 69 73 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 istType();..if.((!$package->isDe
255e0 76 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 7c 7c 20 21 24 73 6f v().||.$this->preferDist.||.!$so
25600 75 72 63 65 54 79 70 65 29 20 26 26 20 21 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 urceType).&&.!($preferSource.&&.
25620 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 26 20 24 64 69 73 74 54 79 70 65 29 20 7b 0a 24 70 61 $sourceType).&&.$distType).{.$pa
25640 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 64 69 ckage->setInstallationSource('di
25660 73 74 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 24 st');.}.elseif.($sourceType).{.$
25680 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 package->setInstallationSource('
256a0 73 6f 75 72 63 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e source');.}.else.{.throw.new.\In
256c0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 validArgumentException('Package.
256e0 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 '.$package.'.must.have.a.source.
25700 6f 72 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 or.dist.specified');.}..$this->f
25720 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 ilesystem->ensureDirectoryExists
25740 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 ($targetDir);..$downloader.=.$th
25760 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 is->getDownloaderForInstalledPac
25780 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 64 6f 77 kage($package);.$downloader->dow
257a0 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 0a nload($package,.$targetDir);.}..
257c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 .........public.function.update(
257e0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 PackageInterface.$initial,.Packa
25800 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 geInterface.$target,.$targetDir)
25820 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c .{.$downloader.=.$this->getDownl
25840 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 oaderForInstalledPackage($initia
25860 6c 29 3b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 l);.$installationSource.=.$initi
25880 61 6c 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 al->getInstallationSource();..if
258a0 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .('dist'.===.$installationSource
258c0 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 ).{.$initialType.=.$initial->get
258e0 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 DistType();.$targetType.=.$targe
25900 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 t->getDistType();.}.else.{.$init
25920 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 ialType.=.$initial->getSourceTyp
25940 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 e();.$targetType.=.$target->getS
25960 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 ourceType();.}....if.($target->i
25980 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 sDev().&&.'dist'.===.$installati
259a0 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 onSource).{.$downloader->remove(
259c0 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f $initial,.$targetDir);.$this->do
259e0 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 wnload($target,.$targetDir);..re
25a00 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 turn;.}..if.($initialType.===.$t
25a20 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c argetType).{.$target->setInstall
25a40 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 ationSource($installationSource)
25a60 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 ;.$downloader->update($initial,.
25a80 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 $target,.$targetDir);.}.else.{.$
25aa0 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 downloader->remove($initial,.$ta
25ac0 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 rgetDir);.$this->download($targe
25ae0 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 t,.$targetDir,.'source'.===.$ins
25b00 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 tallationSource);.}.}........pub
25b20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 lic.function.remove(PackageInter
25b40 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f face.$package,.$targetDir).{.$do
25b60 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 wnloader.=.$this->getDownloaderF
25b80 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 64 orInstalledPackage($package);.$d
25ba0 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 ownloader->remove($package,.$tar
25bc0 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 getDir);.}.}.<?php............na
25be0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 mespace.Composer\Downloader;..us
25c00 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.Composer\Package\PackageInterf
25c20 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f 61 64 65 72 ace;........interface.Downloader
25c40 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Interface.{......public.function
25c60 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a .getInstallationSource();.......
25c80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 .public.function.download(Packag
25ca0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a eInterface.$package,.$path);....
25cc0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b .....public.function.update(Pack
25ce0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e ageInterface.$initial,.PackageIn
25d00 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a terface.$target,.$path);........
25d20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e public.function.remove(PackageIn
25d40 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a terface.$package,.$path);.......
25d60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 .public.function.setOutputProgre
25d80 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ss($outputProgress);.}.<?php....
25da0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c ........namespace.Composer\Downl
25dc0 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 oader;.....class.TransportExcept
25de0 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 ion.extends.\Exception.{.protect
25e00 65 64 20 24 68 65 61 64 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ed.$headers;..public.function.se
25e20 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 tHeaders($headers).{.$this->head
25e40 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ers.=.$headers;.}..public.functi
25e60 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getHeaders().{.return.$this->
25e80 68 65 61 64 65 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 headers;.}.}.<?php............na
25ea0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a mespace.Composer\Downloader;....
25ec0 0a 0a 0a 63 6c 61 73 73 20 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 ...class.PharDownloader.extends.
25ee0 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ArchiveDownloader.{....protected
25f00 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a .function.extract($file,.$path).
25f20 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 66 69 6c 65 29 3b {...$archive.=.new.\Phar($file);
25f40 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c .$archive->extractTo($path,.null
25f60 2c 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.true);......}.}.<?php.........
25f80 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 ...namespace.Composer\Downloader
25fa0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 ;.......class.TarDownloader.exte
25fc0 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 nds.ArchiveDownloader.{....prote
25fe0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 cted.function.extract($file,.$pa
26000 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 th).{...$archive.=.new.\PharData
26020 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 ($file);.$archive->extractTo($pa
26040 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a th,.null,.true);.}.}.<?php......
26060 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 ......namespace.Composer\Downloa
26080 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 der;..use.Composer\Package\Packa
260a0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 6f 77 6e 6c 6f 61 geInterface;.....class.HgDownloa
260c0 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 der.extends.VcsDownloader.{....p
260e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 ublic.function.doDownload(Packag
26100 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 eInterface.$package,.$path).{.$u
26120 72 6c 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 rl.=.escapeshellarg($package->ge
26140 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 6c tSourceUrl());.$ref.=.escapeshel
26160 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 larg($package->getSourceReferenc
26180 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 6c 6f 6e e());.$this->io->write("....Clon
261a0 69 6e 67 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e ing.".$package->getSourceReferen
261c0 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c ce());.$command.=.sprintf('hg.cl
261e0 6f 6e 65 20 25 73 20 25 73 27 2c 20 24 75 72 6c 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 one.%s.%s',.$url,.escapeshellarg
26200 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 ($path));.if.(0.!==.$this->proce
26220 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 ss->execute($command,.$ignoredOu
26240 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 tput)).{.throw.new.\RuntimeExcep
26260 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d tion('Failed.to.execute.'...$com
26280 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e mand..."\n\n"...$this->process->
262a0 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 getErrorOutput());.}.$command.=.
262c0 73 70 72 69 6e 74 66 28 27 68 67 20 75 70 20 25 73 27 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 sprintf('hg.up.%s',.$ref);.if.(0
262e0 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f .!==.$this->process->execute($co
26300 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 mmand,.$ignoredOutput,.realpath(
26320 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 $path))).{.throw.new.\RuntimeExc
26340 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 eption('Failed.to.execute.'...$c
26360 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ommand..."\n\n"...$this->process
26380 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 ->getErrorOutput());.}.}.....pub
263a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 lic.function.doUpdate(PackageInt
263c0 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 erface.$initial,.PackageInterfac
263e0 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 65 73 63 61 70 e.$target,.$path).{.$url.=.escap
26400 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 eshellarg($target->getSourceUrl(
26420 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 ));.$ref.=.escapeshellarg($targe
26440 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d t->getSourceReference());.$this-
26460 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 55 70 64 61 74 69 6e 67 20 74 6f 20 22 2e 24 74 >io->write("....Updating.to.".$t
26480 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 0a 69 arget->getSourceReference());..i
264a0 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 74 68 72 6f f.(!is_dir($path.'/.hg')).{.thro
264c0 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 68 67 w.new.\RuntimeException('The..hg
264e0 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 .directory.is.missing.from.'.$pa
26500 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 th.',.see.http://getcomposer.org
26520 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f /commit-deps.for.more.informatio
26540 6e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 70 n');.}..$command.=.sprintf('hg.p
26560 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 ull.%s.&&.hg.up.%s',.$url,.$ref)
26580 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 ;.if.(0.!==.$this->process->exec
265a0 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 72 65 ute($command,.$ignoredOutput,.re
265c0 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e alpath($path))).{.throw.new.\Run
265e0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
26600 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
26620 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a process->getErrorOutput());.}.}.
26640 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e ....public.function.getLocalChan
26660 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 ges(PackageInterface.$package,.$
26680 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 68 67 27 path).{.if.(!is_dir($path.'/.hg'
266a0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e )).{.return;.}..$this->process->
266c0 65 78 65 63 75 74 65 28 27 68 67 20 73 74 27 2c 20 24 6f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 execute('hg.st',.$output,.realpa
266e0 74 68 28 24 70 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 th($path));..return.trim($output
26700 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ).?:.null;.}.....protected.funct
26720 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 ion.getCommitLogs($fromReference
26740 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e ,.$toReference,.$path).{.$comman
26760 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 72 20 25 73 3a 25 73 20 2d 2d 73 d.=.sprintf('hg.log.-r.%s:%s.--s
26780 74 79 6c 65 20 63 6f 6d 70 61 63 74 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 tyle.compact',.$fromReference,.$
267a0 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e toReference);..if.(0.!==.$this->
267c0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 process->execute($command,.$outp
267e0 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ut,.realpath($path))).{.throw.ne
26800 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 w.\RuntimeException('Failed.to.e
26820 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 xecute.'...$command..."\n\n"...$
26840 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 this->process->getErrorOutput())
26860 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ;.}..return.$output;.}.}.<?php..
26880 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 ..........namespace.Composer\Dow
268a0 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 nloader;..use.Composer\Package\P
268c0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 ackageInterface;.......interface
268e0 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a .ChangeReportInterface.{........
26900 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 public.function.getLocalChanges(
26920 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 PackageInterface.$package,.$path
26940 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 );.}.<?php............namespace.
26960 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Downloader;..use.Compos
26980 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a er\Package\PackageInterface;....
269a0 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c .....abstract.class.ArchiveDownl
269c0 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a oader.extends.FileDownloader.{..
269e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 ..public.function.download(Packa
26a00 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 geInterface.$package,.$path).{.$
26a20 74 65 6d 70 6f 72 61 72 79 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 temporaryDir.=.$this->config->ge
26a40 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 2e 73 75 62 t('vendor-dir').'/composer/'.sub
26a60 73 74 72 28 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 29 29 2c 20 30 2c 20 38 29 str(md5(uniqid('',.true)),.0,.8)
26a80 3b 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d ;.$retries.=.3;.while.($retries-
26aa0 2d 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 77 6e 6c 6f 61 -).{.$fileName.=.parent::downloa
26ac0 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e d($package,.$path);..if.($this->
26ae0 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 io->isVerbose()).{.$this->io->wr
26b00 69 74 65 28 27 20 20 20 20 45 78 74 72 61 63 74 69 6e 67 20 61 72 63 68 69 76 65 27 29 3b 0a 7d ite('....Extracting.archive');.}
26b20 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 ..try.{.$this->filesystem->ensur
26b40 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b eDirectoryExists($temporaryDir);
26b60 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 28 24 66 69 6c 65 4e 61 6d 65 2c .try.{.$this->extract($fileName,
26b80 20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 .$temporaryDir);.}.catch.(\Excep
26ba0 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 72 43 61 63 68 65 28 tion.$e).{...parent::clearCache(
26bc0 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 75 $package,.$path);.throw.$e;.}..u
26be0 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 44 69 72 nlink($fileName);....$contentDir
26c00 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 46 69 6c 65 73 28 24 74 65 6d 70 6f 72 61 72 79 44 69 .=.$this->listFiles($temporaryDi
26c20 72 29 3b 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 74 65 6e 74 44 r);....if.(1.===.count($contentD
26c40 69 72 29 20 26 26 20 21 69 73 5f 66 69 6c 65 28 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 29 29 ir).&&.!is_file($contentDir[0]))
26c60 20 7b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 46 69 6c 65 .{.$contentDir.=.$this->listFile
26c80 73 28 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 s($contentDir[0]);.}....foreach.
26ca0 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e ($contentDir.as.$file).{.$this->
26cc0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 filesystem->rename($file,.$path.
26ce0 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 74 68 ..'/'...basename($file));.}..$th
26d00 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 is->filesystem->removeDirectory(
26d20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 $temporaryDir);.}.catch.(\Except
26d40 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 ion.$e).{...$this->filesystem->r
26d60 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 66 69 emoveDirectory($path);.$this->fi
26d80 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f lesystem->removeDirectory($tempo
26da0 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 24 72 65 74 72 69 65 73 20 26 26 20 24 65 20 raryDir);....if.($retries.&&.$e.
26dc0 69 6e 73 74 61 6e 63 65 6f 66 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 instanceof.\UnexpectedValueExcep
26de0 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 5c 5a 69 70 41 72 tion.&&.$e->getCode().===.\ZipAr
26e00 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 5a 49 50 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 chive::ER_NOZIP).{.$this->io->wr
26e20 69 74 65 28 27 20 20 20 20 49 6e 76 61 6c 69 64 20 7a 69 70 20 66 69 6c 65 2c 20 72 65 74 72 79 ite('....Invalid.zip.file,.retry
26e40 69 6e 67 2e 2e 2e 27 29 3b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e ing...');.usleep(500000);.contin
26e60 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 ue;.}..throw.$e;.}..break;.}..$t
26e80 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 his->io->write('');.}.....protec
26ea0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 ted.function.getFileName(Package
26ec0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 Interface.$package,.$path).{.ret
26ee0 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 2e 73 70 urn.rtrim($path.'/'.md5($path.sp
26f00 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e 70 61 74 l_object_hash($package)).'.'.pat
26f20 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 hinfo(parse_url($package->getDis
26f40 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f 5f tUrl(),.PHP_URL_PATH),.PATHINFO_
26f60 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 EXTENSION),.'.');.}.....protecte
26f80 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 d.function.processUrl(PackageInt
26fa0 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 24 70 61 erface.$package,.$url).{.if.($pa
26fc0 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 73 74 72 ckage->getDistReference().&&.str
26fe0 70 6f 73 28 24 75 72 6c 2c 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 20 7b 0a 69 66 20 28 70 pos($url,.'github.com')).{.if.(p
27000 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f reg_match('{^https?://(?:www\.)?
27020 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 github\.com/([^/]+)/([^/]+)/(zip
27040 7c 74 61 72 29 62 61 6c 6c 2f 28 2e 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 |tar)ball/(.+)$}i',.$url,.$match
27060 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 )).{...$url.=.'https://api.githu
27080 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e b.com/repos/'...$match[1]...'/'.
270a0 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 .$match[2]...'/'...$match[3]...'
270c0 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 ball/'...$package->getDistRefere
270e0 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 nce();.}.elseif.($package->getDi
27100 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 stReference().&&.preg_match('{^h
27120 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b ttps?://(?:www\.)?github\.com/([
27140 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 65 2f 2e 2b 5c 2e 28 7a 69 70 7c 74 ^/]+)/([^/]+)/archive/.+\.(zip|t
27160 61 72 29 28 3f 3a 5c 2e 67 7a 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 ar)(?:\.gz)?$}i',.$url,.$match))
27180 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e .{...$url.=.'https://api.github.
271a0 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 com/repos/'...$match[1]...'/'..$
271c0 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 match[2]...'/'...$match[3]...'ba
271e0 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 ll/'...$package->getDistReferenc
27200 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 e();.}.elseif.($package->getDist
27220 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 Reference().&&.preg_match('{^htt
27240 70 73 3f 3a 2f 2f 61 70 69 5c 2e 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 72 65 70 6f 73 2f 28 5b 5e ps?://api\.github\.com/repos/([^
27260 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 28 3f 3a 2f 2e 2b /]+)/([^/]+)/(zip|tar)ball(?:/.+
27280 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 )?$}i',.$url,.$match)).{...$url.
272a0 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f =.'https://api.github.com/repos/
272c0 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e '...$match[1]...'/'..$match[2]..
272e0 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 .'/'...$match[3]...'ball/'...$pa
27300 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 7d 0a 0a ckage->getDistReference();.}.}..
27320 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 if.(!extension_loaded('openssl')
27340 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 3a 27 .&&.(0.===.strpos($url,.'https:'
27360 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 3a 2f 2f ).||.0.===.strpos($url,.'http://
27380 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 github.com'))).{.throw.new.\Runt
273a0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 imeException('You.must.enable.th
273c0 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 e.openssl.extension.to.download.
273e0 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 files.via.https');.}..return.par
27400 65 6e 74 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 3b ent::processUrl($package,.$url);
27420 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 .}..........abstract.protected.f
27440 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 3b 0a 0a unction.extract($file,.$path);..
27460 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 46 69 6c 65 73 28 24 64 ...private.function.listFiles($d
27480 69 72 29 0a 7b 0a 24 66 69 6c 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 67 6c 6f 62 28 ir).{.$files.=.array_merge(glob(
274a0 24 64 69 72 20 2e 20 27 2f 2e 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 2c 20 67 6c 6f 62 28 24 $dir...'/.*').?:.array(),.glob($
274c0 64 69 72 20 2e 20 27 2f 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 29 3b 0a 0a 72 65 74 75 72 6e dir...'/*').?:.array());..return
274e0 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 66 69 6c 65 .array_values(array_filter($file
27500 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 6e 20 62 61 73 65 6e s,.function.($el).{.return.basen
27520 61 6d 65 28 24 65 6c 29 20 21 3d 3d 20 27 2e 27 20 26 26 20 62 61 73 65 6e 61 6d 65 28 24 65 6c ame($el).!==.'.'.&&.basename($el
27540 29 20 21 3d 3d 20 27 2e 2e 27 3b 0a 7d 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ).!==.'..';.}));.}.}.<?php......
27560 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 ......namespace.Composer\Downloa
27580 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 der;.......class.FilesystemExcep
275a0 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 tion.extends.\Exception.{.public
275c0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 20 3d .function.__construct($message.=
275e0 20 6e 75 6c 6c 2c 20 24 63 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 .null,.$code.=.null,.\Exception.
27600 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f $previous.=.null).{.parent::__co
27620 6e 73 74 72 75 63 74 28 22 46 69 6c 65 73 79 73 74 65 6d 20 65 78 63 65 70 74 69 6f 6e 3a 20 5c nstruct("Filesystem.exception:.\
27640 6e 22 2e 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a n".$message,.$code,.$previous);.
27660 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
27680 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 omposer\Downloader;..use.Compose
276a0 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 r\Config;.use.Composer\Cache;.us
276c0 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 e.Composer\EventDispatcher\Event
276e0 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 Dispatcher;.use.Composer\Util\Pr
27700 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 ocessExecutor;.use.Composer\IO\I
27720 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 5a 69 70 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a OInterface;.use.ZipArchive;.....
27740 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 class.ZipDownloader.extends.Arch
27760 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 iveDownloader.{.protected.$proce
27780 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 ss;..public.function.__construct
277a0 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 (IOInterface.$io,.Config.$config
277c0 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 ,.EventDispatcher.$eventDispatch
277e0 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 er.=.null,.Cache.$cache.=.null,.
27800 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 ProcessExecutor.$process.=.null)
27820 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 .{.$this->process.=.$process.?:.
27840 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 new.ProcessExecutor($io);.parent
27860 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 ::__construct($io,.$config,.$eve
27880 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ntDispatcher,.$cache);.}..protec
278a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 ted.function.extract($file,.$pat
278c0 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 h).{.$processError.=.null;....if
278e0 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f .(!defined('PHP_WINDOWS_VERSION_
27900 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 65 BUILD')).{.$command.=.'unzip.'.e
27920 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 2e 27 20 2d 64 20 27 2e 65 73 63 61 scapeshellarg($file).'.-d.'.esca
27940 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 6d 6f 64 20 2d peshellarg($path)...'.&&.chmod.-
27960 52 20 75 2b 77 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b R.u+w.'...escapeshellarg($path);
27980 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .if.(0.===.$this->process->execu
279a0 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a te($command,.$ignoredOutput)).{.
279c0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c return;.}..$processError.=.'Fail
279e0 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e ed.to.execute.'...$command..."\n
27a00 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 \n"...$this->process->getErrorOu
27a20 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 tput();.}..if.(!class_exists('Zi
27a40 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 pArchive')).{...$iniPath.=.php_i
27a60 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 ni_loaded_file();..if.($iniPath)
27a80 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 .{.$iniMessage.=.'The.php.ini.us
27aa0 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 ed.by.your.command-line.PHP.is:.
27ac0 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 '...$iniPath;.}.else.{.$iniMessa
27ae0 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 ge.=.'A.php.ini.file.does.not.ex
27b00 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 ist..You.will.have.to.create.one
27b20 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d .';.}..$error.=."Could.not.decom
27b40 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 press.the.archive,.enable.the.PH
27b60 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 P.zip.extension.or.install.unzip
27b80 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f .\n"...$iniMessage..."\n"...$pro
27ba0 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 cessError;..if.(!defined('PHP_WI
27bc0 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 NDOWS_VERSION_BUILD')).{.$error.
27be0 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 =."Could.not.decompress.the.arch
27c00 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f ive,.enable.the.PHP.zip.extensio
27c20 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 n.\n"...$iniMessage;.}..throw.ne
27c40 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a w.\RuntimeException($error);.}..
27c60 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a $zipArchive.=.new.ZipArchive();.
27c80 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 .if.(true.!==.($retval.=.$zipArc
27ca0 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 hive->open($file))).{.throw.new.
27cc0 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d \UnexpectedValueException($this-
27ce0 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 >getErrorMessage($retval,.$file)
27d00 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 7a 69 70 ,.$retval);.}..if.(true.!==.$zip
27d20 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 Archive->extractTo($path)).{.thr
27d40 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 54 68 65 72 65 20 ow.new.\RuntimeException("There.
27d60 77 61 73 20 61 6e 20 65 72 72 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 5a 49 50 20 was.an.error.extracting.the.ZIP.
27d80 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 20 66 69 6c 65 3f 22 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 file..Corrupt.file?");.}..$zipAr
27da0 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 chive->close();.}.........protec
27dc0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 ted.function.getErrorMessage($re
27de0 74 76 61 6c 2c 20 24 66 69 6c 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 72 65 74 76 61 6c 29 20 tval,.$file).{.switch.($retval).
27e00 7b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 49 53 54 53 3a 0a 72 65 {.case.ZipArchive::ER_EXISTS:.re
27e20 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 46 69 6c 65 20 27 25 73 27 20 61 6c 72 65 61 64 79 20 turn.sprintf("File.'%s'.already.
27e40 65 78 69 73 74 73 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 exists.",.$file);.case.ZipArchiv
27e60 65 3a 3a 45 52 5f 49 4e 43 4f 4e 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 e::ER_INCONS:.return.sprintf("Zi
27e80 70 20 61 72 63 68 69 76 65 20 27 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2e 22 p.archive.'%s'.is.inconsistent."
27ea0 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 49 4e ,.$file);.case.ZipArchive::ER_IN
27ec0 56 41 4c 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 49 6e 76 61 6c 69 64 20 61 72 67 VAL:.return.sprintf("Invalid.arg
27ee0 75 6d 65 6e 74 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 ument.(%s)",.$file);.case.ZipArc
27f00 68 69 76 65 3a 3a 45 52 5f 4d 45 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 hive::ER_MEMORY:.return.sprintf(
27f20 22 4d 61 6c 6c 6f 63 20 66 61 69 6c 75 72 65 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 "Malloc.failure.(%s)",.$file);.c
27f40 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 3a 0a 72 65 74 75 72 6e ase.ZipArchive::ER_NOENT:.return
27f60 20 73 70 72 69 6e 74 66 28 22 4e 6f 20 73 75 63 68 20 7a 69 70 20 66 69 6c 65 3a 20 27 25 73 27 .sprintf("No.such.zip.file:.'%s'
27f80 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e ",.$file);.case.ZipArchive::ER_N
27fa0 4f 5a 49 50 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f OZIP:.return.sprintf("'%s'.is.no
27fc0 74 20 61 20 7a 69 70 20 61 72 63 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 t.a.zip.archive.",.$file);.case.
27fe0 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 ZipArchive::ER_OPEN:.return.spri
28000 6e 74 66 28 22 43 61 6e 27 74 20 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 3a 20 25 73 22 2c 20 24 ntf("Can't.open.zip.file:.%s",.$
28020 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 52 45 41 44 3a file);.case.ZipArchive::ER_READ:
28040 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 72 65 61 64 20 65 72 72 6f 72 20 .return.sprintf("Zip.read.error.
28060 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a (%s)",.$file);.case.ZipArchive::
28080 45 52 5f 53 45 45 4b 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 73 65 65 ER_SEEK:.return.sprintf("Zip.see
280a0 6b 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 65 66 61 75 6c 74 3a 0a k.error.(%s)",.$file);.default:.
280c0 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 61 20 76 61 return.sprintf("'%s'.is.not.a.va
280e0 6c 69 64 20 7a 69 70 20 61 72 63 68 69 76 65 2c 20 67 6f 74 20 65 72 72 6f 72 20 63 6f 64 65 3a lid.zip.archive,.got.error.code:
28100 20 25 73 22 2c 20 24 66 69 6c 65 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 .%s",.$file,.$retval);.}.}.}.<?p
28120 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
28140 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Downloader;..use.Composer\Packa
28160 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ge\PackageInterface;.use.Compose
28180 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c r\Util\GitHub;.use.Composer\Util
281a0 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f \Git.as.GitUtil;.....class.GitDo
281c0 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b wnloader.extends.VcsDownloader.{
281e0 0a 70 72 69 76 61 74 65 20 24 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 .private.$hasStashedChanges.=.fa
28200 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c lse;.....public.function.doDownl
28220 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 oad(PackageInterface.$package,.$
28240 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 path).{.$this->cleanEnv();.$path
28260 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a .=.$this->normalizePath($path);.
28280 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 .$ref.=.$package->getSourceRefer
282a0 65 6e 63 65 28 29 3b 0a 24 66 6c 61 67 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e ence();.$flag.=.defined('PHP_WIN
282c0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 20 3f 20 27 2f 44 20 27 20 3a 20 27 DOWS_VERSION_MAJOR').?.'/D.'.:.'
282e0 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 63 6c 6f 6e 65 20 25 73 20 25 73 20 26 ';.$command.=.'git.clone.%s.%s.&
28300 26 20 63 64 20 27 2e 24 66 6c 61 67 2e 27 25 32 24 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 &.cd.'.$flag.'%2$s.&&.git.remote
28320 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 .add.composer.%1$s.&&.git.fetch.
28340 63 6f 6d 70 6f 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 composer';.$this->io->write("...
28360 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 72 65 66 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 .Cloning.".$ref);..$commandCalla
28380 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 66 2c 20 ble.=.function($url).use.($ref,.
283a0 24 70 61 74 68 2c 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 $path,.$command).{.return.sprint
283c0 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 f($command,.escapeshellarg($url)
283e0 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 ,.escapeshellarg($path),.escapes
28400 68 65 6c 6c 61 72 67 28 24 72 65 66 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 43 6f hellarg($ref));.};..$this->runCo
28420 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 70 61 63 6b 61 67 65 mmand($commandCallable,.$package
28440 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a ->getSourceUrl(),.$path,.true);.
28460 24 74 68 69 73 2d 3e 73 65 74 50 75 73 68 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 $this->setPushUrl($package,.$pat
28480 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 h);..$this->updateToCommit($path
284a0 2c 20 24 72 65 66 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ,.$ref,.$package->getPrettyVersi
284c0 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 on(),.$package->getReleaseDate()
284e0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 );.}.....public.function.doUpdat
28500 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 e(PackageInterface.$initial,.Pac
28520 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a kageInterface.$target,.$path).{.
28540 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 $this->cleanEnv();.$path.=.$this
28560 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f ->normalizePath($path);.if.(!is_
28580 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 dir($path.'/.git')).{.throw.new.
285a0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 67 69 74 20 64 69 72 65 \RuntimeException('The..git.dire
285c0 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c ctory.is.missing.from.'.$path.',
285e0 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d .see.http://getcomposer.org/comm
28600 69 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a it-deps.for.more.information');.
28620 7d 0a 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 }..$ref.=.$target->getSourceRefe
28640 72 65 6e 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 rence();.$this->io->write("....C
28660 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 72 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 hecking.out.".$ref);.$command.=.
28680 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 63 6f 6d 70 6f 73 65 72 20 25 73 20 'git.remote.set-url.composer.%s.
286a0 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 67 69 74 20 66 65 74 &&.git.fetch.composer.&&.git.fet
286c0 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 ch.--tags.composer';....$this->p
286e0 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 20 2d 76 27 2c rocess->execute('git.remote.-v',
28700 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 .$output,.$path);.if.(preg_match
28720 28 27 7b 5e 28 3f 3a 63 6f 6d 70 6f 73 65 72 7c 6f 72 69 67 69 6e 29 5c 73 2b 68 74 74 70 73 3f ('{^(?:composer|origin)\s+https?
28740 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 6d 27 2c 20 24 6f 75 74 70 75 ://(.+):(.+)@([^/]+)}im',.$outpu
28760 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 t,.$match)).{.$this->io->setAuth
28780 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 33 5d 2c 20 75 72 6c 64 65 63 6f 64 65 28 entication($match[3],.urldecode(
287a0 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 $match[1]),.urldecode($match[2])
287c0 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f );.}..$commandCallable.=.functio
287e0 6e 28 24 75 72 6c 29 20 75 73 65 20 28 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 n($url).use.($command).{.return.
28800 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 sprintf($command,.escapeshellarg
28820 28 24 75 72 6c 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 ($url));.};..$this->runCommand($
28840 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 commandCallable,.$target->getSou
28860 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 rceUrl(),.$path);.$this->updateT
28880 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 oCommit($path,.$ref,.$target->ge
288a0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 65 tPrettyVersion(),.$target->getRe
288c0 6c 65 61 73 65 44 61 74 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 leaseDate());.}.....public.funct
288e0 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 ion.getLocalChanges(PackageInter
28900 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 face.$package,.$path).{.$this->c
28920 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c leanEnv();.$path.=.$this->normal
28940 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 izePath($path);.if.(!is_dir($pat
28960 68 2e 27 2f 2e 67 69 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e h.'/.git')).{.return;.}..$comman
28980 64 20 3d 20 27 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 69 6e 20 2d 2d 75 6e d.=.'git.status.--porcelain.--un
289a0 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 tracked-files=no';.if.(0.!==.$th
289c0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 is->process->execute($command,.$
289e0 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e output,.$path)).{.throw.new.\Run
28a00 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
28a20 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
28a40 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 process->getErrorOutput());.}..r
28a60 65 74 75 72 6e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a eturn.trim($output).?:.null;.}..
28a80 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 ...protected.function.cleanChang
28aa0 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 es(PackageInterface.$package,.$p
28ac0 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 28 ath,.$update).{.$this->cleanEnv(
28ae0 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 );.$path.=.$this->normalizePath(
28b00 24 70 61 74 68 29 3b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 $path);.if.(!$changes.=.$this->g
28b20 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 etLocalChanges($package,.$path))
28b40 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 .{.return;.}..if.(!$this->io->is
28b60 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 Interactive()).{.$discardChanges
28b80 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 64 69 73 63 61 72 64 2d 63 .=.$this->config->get('discard-c
28ba0 68 61 6e 67 65 73 27 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 64 69 73 63 61 72 64 43 hanges');.if.(true.===.$discardC
28bc0 68 61 6e 67 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 hanges).{.return.$this->discardC
28be0 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d hanges($path);.}.if.('stash'.===
28c00 20 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 21 24 75 70 64 61 74 65 .$discardChanges).{.if.(!$update
28c20 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 ).{.return.parent::cleanChanges(
28c40 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 72 65 $package,.$path,.$update);.}..re
28c60 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b turn.$this->stashChanges($path);
28c80 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 .}..return.parent::cleanChanges(
28ca0 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 $package,.$path,.$update);.}..$c
28cc0 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c hanges.=.array_map(function.($el
28ce0 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 em).{.return.'....'.$elem;.},.pr
28d00 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 eg_split('{\s*\r?\n\s*}',.$chang
28d20 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 es));.$this->io->write('....<err
28d40 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 or>The.package.has.modified.file
28d60 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 s:</error>');.$this->io->write(a
28d80 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 rray_slice($changes,.0,.10));.if
28da0 20 28 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d .(count($changes).>.10).{.$this-
28dc0 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 >io->write('....<info>'.count($c
28de0 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 hanges).-.10...'.more.files.modi
28e00 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c fied,.choose."v".to.view.the.ful
28e20 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 l.list</info>');.}..while.(true)
28e40 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c .{.switch.($this->io->ask('....<
28e60 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 27 2e 28 24 info>Discard.changes.[y,n,v,'.($
28e80 75 70 64 61 74 65 20 3f 20 27 73 2c 27 20 3a 20 27 27 29 2e 27 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 update.?.'s,'.:.'').'?]?</info>.
28ea0 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 63 ',.'?')).{.case.'y':.$this->disc
28ec0 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 ardChanges($path);.break.2;..cas
28ee0 65 20 27 73 27 3a 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 7b 0a 67 6f 74 6f 20 68 65 6c 70 e.'s':.if.(!$update).{.goto.help
28f00 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b ;.}..$this->stashChanges($path);
28f20 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c .break.2;..case.'n':.throw.new.\
28f40 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 RuntimeException('Update.aborted
28f60 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 ');..case.'v':.$this->io->write(
28f80 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 $changes);.break;..case.'?':.def
28fa0 61 75 6c 74 3a 0a 68 65 6c 70 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 ault:.help:.$this->io->write(arr
28fc0 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 ay(.'....y.-.discard.changes.and
28fe0 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 .apply.the.'.($update.?.'update'
29000 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 .:.'uninstall'),.'....n.-.abort.
29020 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 the.'.($update.?.'update'.:.'uni
29040 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 nstall').'.and.let.you.manually.
29060 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 clean.things.up',.'....v.-.view.
29080 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 29 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 modified.files',.));.if.($update
290a0 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 73 20 2d 20 73 74 ).{.$this->io->write('....s.-.st
290c0 61 73 68 20 63 68 61 6e 67 65 73 20 61 6e 64 20 74 72 79 20 74 6f 20 72 65 61 70 70 6c 79 20 74 ash.changes.and.try.to.reapply.t
290e0 68 65 6d 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 24 74 68 69 73 2d hem.after.the.update');.}.$this-
29100 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 29 >io->write('....?.-.print.help')
29120 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ;.break;.}.}.}.....protected.fun
29140 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 ction.reapplyChanges($path).{.$p
29160 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 ath.=.$this->normalizePath($path
29180 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 29 );.if.($this->hasStashedChanges)
291a0 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 .{.$this->hasStashedChanges.=.fa
291c0 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f lse;.$this->io->write('....<info
291e0 3e 52 65 2d 61 70 70 6c 79 69 6e 67 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a >Re-applying.stashed.changes');.
29200 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 if.(0.!==.$this->process->execut
29220 65 28 27 67 69 74 20 73 74 61 73 68 20 70 6f 70 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 e('git.stash.pop',.$output,.$pat
29240 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f h)).{.throw.new.\RuntimeExceptio
29260 6e 28 22 46 61 69 6c 65 64 20 74 6f 20 61 70 70 6c 79 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 n("Failed.to.apply.stashed.chang
29280 65 73 3a 5c 6e 5c 6e 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f es:\n\n".$this->process->getErro
292a0 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e rOutput());.}.}.}..protected.fun
292c0 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 ction.updateToCommit($path,.$ref
292e0 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 74 65 6d 70 6c erence,.$branch,.$date).{.$templ
29300 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 69 74 20 72 65 ate.=.'git.checkout.%s.&&.git.re
29320 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 set.--hard.%1$s';.$branch.=.preg
29340 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 _replace('{(?:^dev-|(?:\.x)?-dev
29360 24 29 7d 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 $)}i',.'',.$branch);..$branches.
29380 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 =.null;.if.(0.===.$this->process
293a0 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f 75 74 70 ->execute('git.branch.-r',.$outp
293c0 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f 75 74 70 75 ut,.$path)).{.$branches.=.$outpu
293e0 74 3b 0a 7d 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 t;.}....$gitRef.=.$reference;.if
29400 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 .(!preg_match('{^[a-f0-9]{40}$}'
29420 2c 20 24 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 26 20 70 72 ,.$reference).&&.$branches.&&.pr
29440 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 eg_match('{^\s+composer/'.preg_q
29460 75 6f 74 65 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 uote($reference).'$}m',.$output)
29480 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 .).{.$command.=.sprintf('git.che
294a0 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 ckout.-B.%s.%s.&&.git.reset.--ha
294c0 72 64 20 25 32 24 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 rd.%2$s',.escapeshellarg($branch
294e0 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 72 ),.escapeshellarg('composer/'.$r
29500 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f eference));.if.(0.===.$this->pro
29520 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c cess->execute($command,.$output,
29540 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 .$path)).{.return;.}.}....if.(pr
29560 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 eg_match('{^[a-f0-9]{40}$}',.$re
29580 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ference)).{...if.(!preg_match('{
295a0 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 ^\s+composer/'.preg_quote($branc
295c0 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 70 72 65 67 5f 6d 61 74 h).'$}m',.$branches).&&.preg_mat
295e0 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 ch('{^\s+composer/v'.preg_quote(
29600 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 62 $branch).'$}m',.$branches)).{.$b
29620 72 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 ranch.=.'v'...$branch;.}..$comma
29640 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 27 2c 20 nd.=.sprintf('git.checkout.%s',.
29660 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 29 3b 0a 24 66 61 6c 6c 62 escapeshellarg($branch));.$fallb
29680 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f ackCommand.=.sprintf('git.checko
296a0 75 74 20 2d 42 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 ut.-B.%s.%s',.escapeshellarg($br
296c0 61 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f anch),.escapeshellarg('composer/
296e0 27 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 '.$branch));.if.(0.===.$this->pr
29700 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 ocess->execute($command,.$output
29720 2c 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ,.$path).||.0.===.$this->process
29740 2d 3e 65 78 65 63 75 74 65 28 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 ->execute($fallbackCommand,.$out
29760 70 75 74 2c 20 24 70 61 74 68 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e put,.$path).).{.$command.=.sprin
29780 74 66 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 73 27 2c 20 65 73 63 61 70 65 tf('git.reset.--hard.%s',.escape
297a0 73 68 65 6c 6c 61 72 67 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d shellarg($reference));.if.(0.===
297c0 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e .$this->process->execute($comman
297e0 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a d,.$output,.$path)).{.return;.}.
29800 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 }.}..$command.=.sprintf($templat
29820 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 e,.escapeshellarg($gitRef));.if.
29840 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 (0.===.$this->process->execute($
29860 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 command,.$output,.$path)).{.retu
29880 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 64 61 74 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 rn;.}....if.($date.&&.false.!==.
298a0 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f strpos($this->process->getErrorO
298c0 75 74 70 75 74 28 29 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 utput(),.$reference)).{.$date.=.
298e0 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 $date->format('U');....$command.
29900 3d 20 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 =.'git.branch.-r';.if.(0.!==.$th
29920 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 is->process->execute($command,.$
29940 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e output,.$path)).{.throw.new.\Run
29960 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
29980 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
299a0 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 process->getErrorOutput());.}..$
299c0 67 75 65 73 73 54 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 6c 6f 67 20 2d 2d 75 6e 74 69 6c guessTemplate.=.'git.log.--until
299e0 3d 25 73 20 2d 2d 64 61 74 65 3d 72 61 77 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 25 48 20 =%s.--date=raw.-n1.--pretty=%%H.
29a00 25 73 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 %s';.foreach.($this->process->sp
29a20 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 litLines($output).as.$line).{.if
29a40 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f .(preg_match('{^composer/'.preg_
29a60 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 28 3f 3a 5c 2e 78 29 3f 24 7d 69 27 2c 20 74 72 quote($branch).'(?:\.x)?$}i',.tr
29a80 69 6d 28 24 6c 69 6e 65 29 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d im($line))).{...if.(0.===.$this-
29aa0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 >process->execute(sprintf($guess
29ac0 54 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 Template,.$date,.escapeshellarg(
29ae0 74 72 69 6d 28 24 6c 69 6e 65 29 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 trim($line))),.$output,.$path)).
29b00 7b 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b {.$newReference.=.trim($output);
29b20 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 65 77 52 65 .}..break;.}.}..if.(empty($newRe
29b40 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 ference)).{...if.(0.!==.$this->p
29b60 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 rocess->execute(sprintf($guessTe
29b80 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 27 2d 2d 61 6c 6c 27 29 2c 20 24 6f 75 74 70 75 74 mplate,.$date,.'--all'),.$output
29ba0 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ,.$path)).{.throw.new.\RuntimeEx
29bc0 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 ception('Failed.to.execute.'...$
29be0 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c this->sanitizeUrl($command)..."\
29c00 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f n\n"...$this->process->getErrorO
29c20 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d utput());.}.$newReference.=.trim
29c40 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e ($output);.}....$command.=.sprin
29c60 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 tf($template,.escapeshellarg($re
29c80 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 ference));.if.(0.===.$this->proc
29ca0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 ess->execute($command,.$output,.
29cc0 24 70 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 $path)).{.$this->io->write('....
29ce0 27 2e 24 72 65 66 65 72 65 6e 63 65 2e 27 20 69 73 20 67 6f 6e 65 20 28 68 69 73 74 6f 72 79 20 '.$reference.'.is.gone.(history.
29d00 77 61 73 20 72 65 77 72 69 74 74 65 6e 3f 29 2c 20 72 65 63 6f 76 65 72 65 64 20 62 79 20 63 68 was.rewritten?),.recovered.by.ch
29d20 65 63 6b 69 6e 67 20 6f 75 74 20 27 2e 24 6e 65 77 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 72 65 ecking.out.'.$newReference);..re
29d40 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 turn;.}.}..throw.new.\RuntimeExc
29d60 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 eption('Failed.to.execute.'...$t
29d80 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e his->sanitizeUrl($command)..."\n
29da0 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 \n"...$this->process->getErrorOu
29dc0 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 tput());.}............protected.
29de0 66 75 6e 63 74 69 6f 6e 20 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c function.runCommand($commandCall
29e00 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 20 able,.$url,.$cwd,.$initialClone.
29e20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a =.false).{.if.($initialClone).{.
29e40 24 6f 72 69 67 43 77 64 20 3d 20 24 63 77 64 3b 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a $origCwd.=.$cwd;.$cwd.=.null;.}.
29e60 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b .if.(preg_match('{^ssh://[^@]+@[
29e80 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e ^:]+:[^0-9]+}',.$url)).{.throw.n
29ea0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 ew.\InvalidArgumentException('Th
29ec0 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 e.source.URL.'.$url.'.is.invalid
29ee0 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 ,.ssh.URLs.should.have.a.port.nu
29f00 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f mber.after.":".'."\n".'Use.ssh:/
29f20 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 /git@example.com:22/path.or.just
29f40 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 .git@example.com:path.if.you.do.
29f60 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f not.want.to.provide.a.password.o
29f80 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f r.custom.port.');.}....if.(preg_
29fa0 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 28 3a 2f 2f 67 69 74 68 75 match('{^(?:https?|git)(://githu
29fc0 62 2e 63 6f 6d 2f 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 b.com/.*)}',.$url,.$match)).{.$p
29fe0 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 rotocols.=.$this->config->get('g
2a000 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 ithub-protocols');.if.(!is_array
2a020 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ($protocols)).{.throw.new.\Runti
2a040 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6e 66 69 67 20 76 61 6c 75 65 20 22 67 69 74 68 75 meException('Config.value."githu
2a060 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 67 b-protocols".must.be.an.array,.g
2a080 6f 74 20 27 2e 67 65 74 74 79 70 65 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a 24 6d 65 ot.'.gettype($protocols));.}.$me
2a0a0 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 74 ssages.=.array();.foreach.($prot
2a0c0 6f 63 6f 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 ocols.as.$protocol).{.$url.=.$pr
2a0e0 6f 74 6f 63 6f 6c 20 2e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 otocol...$match[1];.if.(0.===.$t
2a100 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f his->process->execute(call_user_
2a120 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 69 func($commandCallable,.$url),.$i
2a140 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d gnoredOutput,.$cwd)).{.return;.}
2a160 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 27 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e .$messages[].=.'-.'...$url..."\n
2a180 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 "...preg_replace('#^#m',.'..',.$
2a1a0 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 this->process->getErrorOutput())
2a1c0 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 ;.if.($initialClone).{.$this->fi
2a1e0 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 69 67 43 lesystem->removeDirectory($origC
2a200 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f wd);.}.}....$this->throwExceptio
2a220 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 n('Failed.to.clone.'...$this->sa
2a240 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 2e 27 20 76 69 61 20 27 2e 69 6d 70 6c 6f 64 65 nitizeUrl($url)..'.via.'.implode
2a260 28 27 2c 20 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 29 2e 27 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 (',.',.$protocols).'.protocols,.
2a280 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c aborting.'..."\n\n"...implode("\
2a2a0 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 n",.$messages),.$url);.}..$comma
2a2c0 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c nd.=.call_user_func($commandCall
2a2e0 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 able,.$url);.if.(0.!==.$this->pr
2a300 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 ocess->execute($command,.$ignore
2a320 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 dOutput,.$cwd)).{...if.(preg_mat
2a340 63 68 28 27 7b 5e 67 69 74 40 28 67 69 74 68 75 62 2e 63 6f 6d 29 3a 28 2e 2b 3f 29 5c 2e 67 69 ch('{^git@(github.com):(.+?)\.gi
2a360 74 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 t$}i',.$url,.$match)).{.if.(!$th
2a380 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 is->io->hasAuthentication($match
2a3a0 5b 31 5d 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 [1])).{.$gitHubUtil.=.new.GitHub
2a3c0 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 ($this->io,.$this->config,.$this
2a3e0 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 ->process);.$message.=.'Cloning.
2a400 66 61 69 6c 65 64 20 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 failed.using.an.ssh.key.for.auth
2a420 65 6e 74 69 63 61 74 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 entication,.enter.your.GitHub.cr
2a440 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f edentials.to.access.private.repo
2a460 73 27 3b 0a 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 s';..if.(!$gitHubUtil->authorize
2a480 4f 41 75 74 68 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 OAuth($match[1]).&&.$this->io->i
2a4a0 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 sInteractive()).{.$gitHubUtil->a
2a4c0 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 uthorizeOAuthInteractively($matc
2a4e0 68 5b 31 5d 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d h[1],.$message);.}.}..if.($this-
2a500 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d >io->hasAuthentication($match[1]
2a520 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 )).{.$auth.=.$this->io->getAuthe
2a540 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 ntication($match[1]);.$url.=.'ht
2a560 74 70 73 3a 2f 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d tps://'.urlencode($auth['usernam
2a580 65 27 5d 29 20 2e 20 27 3a 27 20 2e 20 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 70 61 e'])...':'...urlencode($auth['pa
2a5a0 73 73 77 6f 72 64 27 5d 29 20 2e 20 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d ssword'])...'@'.$match[1].'/'.$m
2a5c0 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c atch[2].'.git';..$command.=.call
2a5e0 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 _user_func($commandCallable,.$ur
2a600 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 l);.if.(0.===.$this->process->ex
2a620 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 ecute($command,.$ignoredOutput,.
2a640 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 20 $cwd)).{.return;.}.}.}.elseif.(.
2a660 0a 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 0a ..$this->io->isInteractive().&&.
2a680 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 29 28 5b 5e 2f 5d 2b 29 28 preg_match('{(https?://)([^/]+)(
2a6a0 2e 2a 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 0a 73 74 72 70 6f 73 .*)$}i',.$url,.$match).&&.strpos
2a6c0 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 ($this->process->getErrorOutput(
2a6e0 29 2c 20 27 66 61 74 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 66 61 69 6c 65 64 ),.'fatal:.Authentication.failed
2a700 27 29 20 21 3d 3d 20 66 61 6c 73 65 0a 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e ').!==.false.).{.if.($this->io->
2a720 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a hasAuthentication($match[2])).{.
2a740 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 $auth.=.$this->io->getAuthentica
2a760 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d tion($match[2]);.}.else.{.$this-
2a780 3e 69 6f 2d 3e 77 72 69 74 65 28 24 75 72 6c 2e 27 20 72 65 71 75 69 72 65 73 20 41 75 74 68 65 >io->write($url.'.requires.Authe
2a7a0 6e 74 69 63 61 74 69 6f 6e 27 29 3b 0a 24 61 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 ntication');.$auth.=.array(.'use
2a7c0 72 6e 61 6d 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 rname'.=>.$this->io->ask('Userna
2a7e0 6d 65 3a 20 27 29 2c 0a 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d me:.'),.'password'.=>.$this->io-
2a800 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 2c >askAndHideAnswer('Password:.'),
2a820 0a 29 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 75 72 6c 65 6e 63 6f 64 .);.}..$url.=.$match[1].urlencod
2a840 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 29 2e 27 3a 27 2e 75 72 6c 65 6e 63 6f e($auth['username']).':'.urlenco
2a860 64 65 28 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 2e 27 40 27 2e 24 6d 61 74 63 68 de($auth['password']).'@'.$match
2a880 5b 32 5d 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f [2].$match[3];..$command.=.call_
2a8a0 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c user_func($commandCallable,.$url
2a8c0 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 );.if.(0.===.$this->process->exe
2a8e0 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 cute($command,.$ignoredOutput,.$
2a900 63 77 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 cwd)).{.$this->io->setAuthentica
2a920 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 2c 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 tion($match[2],.$auth['username'
2a940 5d 2c 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a ],.$auth['password']);..return;.
2a960 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d }.}..if.($initialClone).{.$this-
2a980 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 >filesystem->removeDirectory($or
2a9a0 69 67 43 77 64 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 igCwd);.}.$this->throwException(
2a9c0 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 'Failed.to.execute.'...$this->sa
2a9e0 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 nitizeUrl($command)..."\n\n"...$
2aa00 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c this->process->getErrorOutput(),
2aa20 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .$url);.}.}..protected.function.
2aa40 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b throwException($message,.$url).{
2aa60 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .if.(0.!==.$this->process->execu
2aa80 74 65 28 27 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 te('git.--version',.$ignoredOutp
2aaa0 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 ut)).{.throw.new.\RuntimeExcepti
2aac0 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 73 61 6e on('Failed.to.clone.'.$this->san
2aae0 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f itizeUrl($url).',.git.was.not.fo
2ab00 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 und,.check.that.it.is.installed.
2ab20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 and.in.your.PATH.env.'..."\n\n".
2ab40 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 ..$this->process->getErrorOutput
2ab60 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ());.}..throw.new.\RuntimeExcept
2ab80 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ion($message);.}..protected.func
2aba0 74 69 6f 6e 20 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 72 65 74 tion.sanitizeUrl($message).{.ret
2abc0 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 3a 2f 2f 28 2e 2b 3f 29 3a 2e 2b 3f 40 urn.preg_replace('{://(.+?):.+?@
2abe0 7d 27 2c 20 27 3a 2f 2f 24 31 3a 2a 2a 2a 40 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a }',.'://$1:***@',.$message);.}..
2ac00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 50 61 protected.function.setPushUrl(Pa
2ac20 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a ckageInterface.$package,.$path).
2ac40 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c {...if.(preg_match('{^(?:https?|
2ac60 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b git)://github.com/([^/]+)/([^/]+
2ac80 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f ?)(?:\.git)?$}',.$package->getSo
2aca0 75 72 63 65 55 72 6c 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 urceUrl(),.$match)).{.$protocols
2acc0 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 .=.$this->config->get('github-pr
2ace0 6f 74 6f 63 6f 6c 73 27 29 3b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 67 69 74 68 75 otocols');.$pushUrl.=.'git@githu
2ad00 62 2e 63 6f 6d 3a 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e b.com:'.$match[1].'/'.$match[2].
2ad20 27 2e 67 69 74 27 3b 0a 69 66 20 28 24 70 72 6f 74 6f 63 6f 6c 73 5b 30 5d 20 21 3d 3d 20 27 67 '.git';.if.($protocols[0].!==.'g
2ad40 69 74 27 29 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 it').{.$pushUrl.=.'https://githu
2ad60 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e b.com/'.$match[1].'/'.$match[2].
2ad80 27 2e 67 69 74 27 3b 0a 7d 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 '.git';.}.$cmd.=.sprintf('git.re
2ada0 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 mote.set-url.--push.origin.%s',.
2adc0 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 69 73 escapeshellarg($pushUrl));.$this
2ade0 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f 72 65 ->process->execute($cmd,.$ignore
2ae00 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 dOutput,.$path);.}.}.....protect
2ae20 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 ed.function.getCommitLogs($fromR
2ae40 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b eference,.$toReference,.$path).{
2ae60 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 .$path.=.$this->normalizePath($p
2ae80 61 74 68 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f ath);.$command.=.sprintf('git.lo
2aea0 67 20 25 73 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 6d 61 74 3a 22 25 25 68 20 2d 20 g.%s..%s.--pretty=format:"%%h.-.
2aec0 25 25 61 6e 3a 20 25 25 73 22 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f %%an:.%%s"',.$fromReference,.$to
2aee0 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 Reference);..if.(0.!==.$this->pr
2af00 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 ocess->execute($command,.$output
2af20 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ,.$path)).{.throw.new.\RuntimeEx
2af40 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 ception('Failed.to.execute.'...$
2af60 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 command..."\n\n"...$this->proces
2af80 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 s->getErrorOutput());.}..return.
2afa0 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 $output;.}......protected.functi
2afc0 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 on.discardChanges($path).{.$path
2afe0 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a .=.$this->normalizePath($path);.
2b000 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 if.(0.!==.$this->process->execut
2b020 65 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 e('git.reset.--hard',.$output,.$
2b040 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 path)).{.throw.new.\RuntimeExcep
2b060 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c tion("Could.not.reset.changes\n\
2b080 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 n:".$this->process->getErrorOutp
2b0a0 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ut());.}.}......protected.functi
2b0c0 6f 6e 20 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d on.stashChanges($path).{.$path.=
2b0e0 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 .$this->normalizePath($path);.if
2b100 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.!==.$this->process->execute(
2b120 27 67 69 74 20 73 74 61 73 68 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 'git.stash',.$output,.$path)).{.
2b140 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 throw.new.\RuntimeException("Cou
2b160 6c 64 20 6e 6f 74 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 ld.not.stash.changes\n\n:".$this
2b180 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a ->process->getErrorOutput());.}.
2b1a0 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 .$this->hasStashedChanges.=.true
2b1c0 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 ;.}..protected.function.cleanEnv
2b1e0 28 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 3b 0a 24 75 74 69 6c 2d ().{.$util.=.new.GitUtil;.$util-
2b200 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 >cleanEnv();.}..protected.functi
2b220 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 64 65 on.normalizePath($path).{.if.(de
2b240 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 fined('PHP_WINDOWS_VERSION_MAJOR
2b260 27 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 74 68 29 20 3e 20 30 29 20 7b 0a 24 62 61 73 65 ').&&.strlen($path).>.0).{.$base
2b280 50 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 24 72 65 6d 6f 76 65 64 20 3d 20 61 72 72 61 79 28 29 Path.=.$path;.$removed.=.array()
2b2a0 3b 0a 0a 77 68 69 6c 65 20 28 21 69 73 5f 64 69 72 28 24 62 61 73 65 50 61 74 68 29 20 26 26 20 ;..while.(!is_dir($basePath).&&.
2b2c0 24 62 61 73 65 50 61 74 68 20 21 3d 3d 20 27 5c 5c 27 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 $basePath.!==.'\\').{.array_unsh
2b2e0 69 66 74 28 24 72 65 6d 6f 76 65 64 2c 20 62 61 73 65 6e 61 6d 65 28 24 62 61 73 65 50 61 74 68 ift($removed,.basename($basePath
2b300 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 24 62 61 73 65 50 61 74 ));.$basePath.=.dirname($basePat
2b320 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 62 61 73 65 50 61 74 68 20 3d 3d 3d 20 27 5c 5c 27 29 20 7b h);.}..if.($basePath.===.'\\').{
2b340 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 72 74 72 69 6d 28 .return.$path;.}..$path.=.rtrim(
2b360 72 65 61 6c 70 61 74 68 28 24 62 61 73 65 50 61 74 68 29 20 2e 20 27 2f 27 20 2e 20 69 6d 70 6c realpath($basePath)...'/'...impl
2b380 6f 64 65 28 27 2f 27 2c 20 24 72 65 6d 6f 76 65 64 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 ode('/',.$removed),.'/');.}..ret
2b3a0 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$path;.}.}.<?php............
2b3c0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a namespace.Composer\Repository;..
2b3e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 .....class.InvalidRepositoryExce
2b400 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 ption.extends.\Exception.{.}.<?p
2b420 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
2b440 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Repository;..use.Composer\Packa
2b460 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ge\AliasPackage;.use.Composer\Pa
2b480 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ckage\PackageInterface;.use.Comp
2b4a0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 oser\Package\CompletePackageInte
2b4c0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 rface;.use.Composer\Package\Vers
2b4e0 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 ion\VersionParser;.......class.A
2b500 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 rrayRepository.implements.Reposi
2b520 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 toryInterface.{.protected.$packa
2b540 67 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ges;..public.function.__construc
2b560 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 t(array.$packages.=.array()).{.f
2b580 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
2b5a0 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a .$this->addPackage($package);.}.
2b5c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 }.....public.function.findPackag
2b5e0 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 50 e($name,.$version).{...$versionP
2b600 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 arser.=.new.VersionParser();.$ve
2b620 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
2b640 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 e($version);.$name.=.strtolower(
2b660 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b $name);..foreach.($this->getPack
2b680 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 ages().as.$package).{.if.($name.
2b6a0 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 ===.$package->getName().&&.$vers
2b6c0 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 ion.===.$package->getVersion()).
2b6e0 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 {.return.$package;.}.}.}.....pub
2b700 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c lic.function.findPackages($name,
2b720 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 73 74 .$version.=.null).{...$name.=.st
2b740 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d rtolower($name);....if.(null.!==
2b760 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 .$version).{.$versionParser.=.ne
2b780 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 w.VersionParser();.$version.=.$v
2b7a0 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e ersionParser->normalize($version
2b7c0 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 );.}..$packages.=.array();..fore
2b7e0 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 ach.($this->getPackages().as.$pa
2b800 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 ckage).{.if.($package->getName()
2b820 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e .===.$name.&&.(null.===.$version
2b840 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 .||.$version.===.$package->getVe
2b860 72 73 69 6f 6e 28 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 rsion())).{.$packages[].=.$packa
2b880 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a ge;.}.}..return.$packages;.}....
2b8a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 .public.function.search($query,.
2b8c0 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 $mode.=.0).{.$regex.=.'{(?:'.imp
2b8e0 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 lode('|',.preg_split('{\s+}',.$q
2b900 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 uery)).')}i';..$matches.=.array(
2b920 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 );.foreach.($this->getPackages()
2b940 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 .as.$package).{.$name.=.$package
2b960 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b ->getName();.if.(isset($matches[
2b980 24 6e 61 6d 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 70 72 65 67 5f $name])).{.continue;.}.if.(preg_
2b9a0 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 0a 7c 7c 20 28 24 6d 6f 64 65 20 3d match($regex,.$name).||.($mode.=
2b9c0 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 26 26 20 24 70 61 63 ==.self::SEARCH_FULLTEXT.&&.$pac
2b9e0 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 kage.instanceof.CompletePackageI
2ba00 6e 74 65 72 66 61 63 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 69 nterface.&&.preg_match($regex,.i
2ba20 6d 70 6c 6f 64 65 28 27 20 27 2c 20 28 61 72 72 61 79 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 mplode('.',.(array).$package->ge
2ba40 74 4b 65 79 77 6f 72 64 73 28 29 29 20 2e 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 tKeywords())...'.'...$package->g
2ba60 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 0a 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 etDescription())).).{.$matches[$
2ba80 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 name].=.array(.'name'.=>.$packag
2baa0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e e->getPrettyName(),.'description
2bac0 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c '.=>.$package->getDescription(),
2bae0 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a .);.}.}..return.$matches;.}.....
2bb00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 public.function.hasPackage(Packa
2bb20 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 geInterface.$package).{.$package
2bb40 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a Id.=.$package->getUniqueName();.
2bb60 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 .foreach.($this->getPackages().a
2bb80 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 s.$repoPackage).{.if.($packageId
2bba0 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 .===.$repoPackage->getUniqueName
2bbc0 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 ()).{.return.true;.}.}..return.f
2bbe0 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 alse;.}.......public.function.ad
2bc00 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 dPackage(PackageInterface.$packa
2bc20 67 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 ge).{.if.(null.===.$this->packag
2bc40 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 es).{.$this->initialize();.}.$pa
2bc60 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 ckage->setRepository($this);.$th
2bc80 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 is->packages[].=.$package;..if.(
2bca0 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 $package.instanceof.AliasPackage
2bcc0 29 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ).{.$aliasedPackage.=.$package->
2bce0 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 6c 69 61 getAliasOf();.if.(null.===.$alia
2bd00 73 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 sedPackage->getRepository()).{.$
2bd20 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 this->addPackage($aliasedPackage
2bd40 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 );.}.}.}..protected.function.cre
2bd60 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 ateAliasPackage(PackageInterface
2bd80 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 .$package,.$alias,.$prettyAlias)
2bda0 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b .{.return.new.AliasPackage($pack
2bdc0 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 3f 20 24 70 age.instanceof.AliasPackage.?.$p
2bde0 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3a 20 24 70 61 63 6b 61 67 65 2c ackage->getAliasOf().:.$package,
2be00 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$alias,.$prettyAlias);.}.......
2be20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 public.function.removePackage(Pa
2be40 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b ckageInterface.$package).{.$pack
2be60 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 ageId.=.$package->getUniqueName(
2be80 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 );..foreach.($this->getPackages(
2bea0 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 ).as.$key.=>.$repoPackage).{.if.
2bec0 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 ($packageId.===.$repoPackage->ge
2bee0 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 tUniqueName()).{.array_splice($t
2bf00 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e his->packages,.$key,.1);..return
2bf20 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 ;.}.}.}.....public.function.getP
2bf40 61 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e ackages().{.if.(null.===.$this->
2bf60 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b packages).{.$this->initialize();
2bf80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a .}..return.$this->packages;.}...
2bfa0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 ....public.function.count().{.re
2bfc0 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a turn.count($this->packages);.}..
2bfe0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 ...protected.function.initialize
2c000 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ().{.$this->packages.=.array();.
2c020 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
2c040 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 omposer\Repository;..use.Compose
2c060 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 r\Json\JsonFile;.use.Composer\Pa
2c080 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f ckage\Loader\ArrayLoader;.use.Co
2c0a0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 mposer\Package\Dumper\ArrayDumpe
2c0c0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 r;........class.FilesystemReposi
2c0e0 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 tory.extends.WritableArrayReposi
2c100 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tory.{.private.$file;.......publ
2c120 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 ic.function.__construct(JsonFile
2c140 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 .$repositoryFile).{.$this->file.
2c160 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 =.$repositoryFile;.}.....protect
2c180 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e ed.function.initialize().{.paren
2c1a0 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 t::initialize();..if.(!$this->fi
2c1c0 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 74 72 79 20 7b le->exists()).{.return;.}..try.{
2c1e0 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 .$packages.=.$this->file->read()
2c200 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 ;..if.(!is_array($packages)).{.t
2c220 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
2c240 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 on('Could.not.parse.package.list
2c260 20 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 .from.the.repository');.}.}.catc
2c280 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e h.(\Exception.$e).{.throw.new.In
2c2a0 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 validRepositoryException('Invali
2c2c0 64 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 74 61 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 66 69 d.repository.data.in.'.$this->fi
2c2e0 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 2c 20 70 61 63 6b 61 67 65 73 20 63 6f 75 6c 64 20 le->getPath().',.packages.could.
2c300 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e not.be.loaded:.['.get_class($e).
2c320 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 '].'.$e->getMessage());.}..$load
2c340 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 er.=.new.ArrayLoader();.foreach.
2c360 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 20 7b 0a 24 70 ($packages.as.$packageData).{.$p
2c380 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 ackage.=.$loader->load($packageD
2c3a0 61 74 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 ata);.$this->addPackage($package
2c3c0 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 );.}.}..public.function.reload()
2c3e0 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 .{.$this->packages.=.null;.$this
2c400 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ->initialize();.}.....public.fun
2c420 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b ction.write().{.$data.=.array();
2c440 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 0a 66 .$dumper.=.new.ArrayDumper();..f
2c460 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 oreach.($this->getCanonicalPacka
2c480 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 ges().as.$package).{.$data[].=.$
2c4a0 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 dumper->dump($package);.}..$this
2c4c0 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ->file->write($data);.}.}.<?php.
2c4e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
2c500 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c pository;..use.Composer\Package\
2c520 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 PackageInterface;.......interfac
2c540 65 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 e.WritableRepositoryInterface.ex
2c560 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 tends.RepositoryInterface.{....p
2c580 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ublic.function.write();.......pu
2c5a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 blic.function.addPackage(Package
2c5c0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 Interface.$package);.......publi
2c5e0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 c.function.removePackage(Package
2c600 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 Interface.$package);.......publi
2c620 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 c.function.getCanonicalPackages(
2c640 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 3b );.....public.function.reload();
2c660 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
2c680 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Repository;..use.Composer
2c6a0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 \IO\IOInterface;.use.Composer\Pa
2c6c0 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 ckage\Version\VersionParser;.use
2c6e0 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 .Composer\Repository\Pear\Channe
2c700 6c 52 65 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f lReader;.use.Composer\Package\Co
2c720 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f mpletePackage;.use.Composer\Repo
2c740 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 43 6f 6d sitory\Pear\ChannelInfo;.use.Com
2c760 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 poser\Package\Link;.use.Composer
2c780 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 \Package\LinkConstraint\VersionC
2c7a0 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d onstraint;.use.Composer\Util\Rem
2c7c0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 oteFilesystem;.use.Composer\Conf
2c7e0 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 6f 73 69 74 6f ig;...........class.PearReposito
2c800 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 ry.extends.ArrayRepository.{.pri
2c820 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 vate.$url;.private.$io;.private.
2c840 24 72 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a $rfs;.private.$versionParser;...
2c860 0a 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 75 62 6c 69 63 20 ..private.$vendorAlias;..public.
2c880 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f function.__construct(array.$repo
2c8a0 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 Config,.IOInterface.$io,.Config.
2c8c0 24 63 6f 6e 66 69 67 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d $config,.RemoteFilesystem.$rfs.=
2c8e0 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 .null).{.if.(!preg_match('{^http
2c900 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a s?://}',.$repoConfig['url'])).{.
2c920 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f 27 2e 24 $repoConfig['url'].=.'http://'.$
2c940 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d repoConfig['url'];.}..$urlBits.=
2c960 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a .parse_url($repoConfig['url']);.
2c980 69 66 20 28 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c if.(empty($urlBits['scheme']).||
2c9a0 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 74 68 72 6f .empty($urlBits['host'])).{.thro
2c9c0 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 w.new.\UnexpectedValueException(
2c9e0 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 50 45 41 52 20 72 65 70 6f 'Invalid.url.given.for.PEAR.repo
2ca00 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d sitory:.'.$repoConfig['url']);.}
2ca20 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 ..$this->url.=.rtrim($repoConfig
2ca40 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a ['url'],.'/');.$this->io.=.$io;.
2ca60 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 $this->rfs.=.$rfs.?:.new.RemoteF
2ca80 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e ilesystem($this->io);.$this->ven
2caa0 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 dorAlias.=.isset($repoConfig['ve
2cac0 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e ndor-alias']).?.$repoConfig['ven
2cae0 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 dor-alias'].:.null;.$this->versi
2cb00 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a onParser.=.new.VersionParser();.
2cb20 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 }..protected.function.initialize
2cb40 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 ().{.parent::initialize();..$thi
2cb60 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 50 45 41 52 20 s->io->write('Initializing.PEAR.
2cb80 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 24 72 65 61 64 repository.'.$this->url);..$read
2cba0 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 24 74 68 69 73 2d 3e 72 66 er.=.new.ChannelReader($this->rf
2cbc0 73 29 3b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 3d 20 24 72 65 61 64 65 72 s);.try.{.$channelInfo.=.$reader
2cbe0 2d 3e 72 65 61 64 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ->read($this->url);.}.catch.(\Ex
2cc00 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 ception.$e).{.$this->io->write('
2cc20 3c 77 61 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d 20 27 2e <warning>PEAR.repository.from.'.
2cc40 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 $this->url.'.could.not.be.loaded
2cc60 2e 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e ..'.$e->getMessage().'</warning>
2cc80 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 ');..return;.}.$packages.=.$this
2cca0 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 24 63 68 61 6e 6e 65 6c ->buildComposerPackages($channel
2ccc0 49 6e 66 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 66 6f 72 Info,.$this->versionParser);.for
2cce0 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 each.($packages.as.$package).{.$
2cd00 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a this->addPackage($package);.}.}.
2cd20 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f ........private.function.buildCo
2cd40 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c 49 6e 66 6f 20 24 63 68 61 6e mposerPackages(ChannelInfo.$chan
2cd60 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 76 65 72 73 69 6f 6e 50 nelInfo,.VersionParser.$versionP
2cd80 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 arser).{.$result.=.array();.fore
2cda0 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 ach.($channelInfo->getPackages()
2cdc0 20 61 73 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 66 6f 72 65 61 63 .as.$packageDefinition).{.foreac
2cde0 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 52 65 6c 65 61 73 h.($packageDefinition->getReleas
2ce00 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 65 6c 65 61 73 65 49 6e 66 6f es().as.$version.=>.$releaseInfo
2ce20 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 ).{.try.{.$normalizedVersion.=.$
2ce40 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f versionParser->normalize($versio
2ce60 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 n);.}.catch.(\UnexpectedValueExc
2ce80 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 eption.$e).{.if.($this->io->isVe
2cea0 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 43 6f 75 rbose()).{.$this->io->write('Cou
2cec0 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e ld.not.load.'.$packageDefinition
2cee0 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 2e 27 20 27 2e 24 76 65 72 73 69 6f 6e 2e ->getPackageName().'.'.$version.
2cf00 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e ':.'.$e->getMessage());.}.contin
2cf20 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 ue;.}..$composerPackageName.=.$t
2cf40 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 70 his->buildComposerPackageName($p
2cf60 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 ackageDefinition->getChannelName
2cf80 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 (),.$packageDefinition->getPacka
2cfa0 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a 20 0a 20 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 geName());......$urlBits.=.parse
2cfc0 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 24 73 63 68 65 6d 65 20 3d 20 28 69 73 73 _url($this->url);.$scheme.=.(iss
2cfe0 65 74 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 26 26 20 27 68 74 74 70 73 et($urlBits['scheme']).&&.'https
2d000 27 20 3d 3d 3d 20 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 20 26 26 20 65 78 74 65 '.===.$urlBits['scheme'].&&.exte
2d020 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 3f 20 27 68 74 74 70 nsion_loaded('openssl')).?.'http
2d040 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 64 69 73 74 55 72 6c 20 3d 20 22 7b 24 73 63 68 65 6d s'.:.'http';.$distUrl.=."{$schem
2d060 65 7d 3a 2f 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 e}://{$packageDefinition->getCha
2d080 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 65 74 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 nnelName()}/get/{$packageDefinit
2d0a0 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 76 65 72 73 69 6f 6e ion->getPackageName()}-{$version
2d0c0 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 }.tgz";..$requires.=.array();.$s
2d0e0 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 uggests.=.array();.$conflicts.=.
2d100 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a array();.$replaces.=.array();...
2d120 20 0a 20 69 66 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d ...if.($channelInfo->getName().=
2d140 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c =.$packageDefinition->getChannel
2d160 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 20 Name()).{.$composerPackageAlias.
2d180 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d =.$this->buildComposerPackageNam
2d1a0 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 61 63 e($channelInfo->getAlias(),.$pac
2d1c0 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 kageDefinition->getPackageName()
2d1e0 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f );.$aliasConstraint.=.new.Versio
2d200 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 nConstraint('==',.$normalizedVer
2d220 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 sion);.$replaces[].=.new.Link($c
2d240 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 omposerPackageName,.$composerPac
2d260 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 kageAlias,.$aliasConstraint,.'re
2d280 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 places',.(string).$aliasConstrai
2d2a0 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 76 65 6e 64 nt);.}....if.(!empty($this->vend
2d2c0 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 orAlias).&&.($this->vendorAlias.
2d2e0 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 !=.'pear-'.$channelInfo->getAlia
2d300 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 s().||.$channelInfo->getName().!
2d320 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c =.$packageDefinition->getChannel
2d340 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 Name()).).{.$composerPackageAlia
2d360 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 7d 2f 7b 24 70 61 63 6b s.=."{$this->vendorAlias}/{$pack
2d380 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d ageDefinition->getPackageName()}
2d3a0 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f ";.$aliasConstraint.=.new.Versio
2d3c0 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 nConstraint('==',.$normalizedVer
2d3e0 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 sion);.$replaces[].=.new.Link($c
2d400 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 61 63 omposerPackageName,.$composerPac
2d420 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 72 65 kageAlias,.$aliasConstraint,.'re
2d440 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 places',.(string).$aliasConstrai
2d460 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 nt);.}..foreach.($releaseInfo->g
2d480 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 etDependencyInfo()->getRequires(
2d4a0 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 ).as.$dependencyConstraint).{.$d
2d4c0 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 ependencyPackageName.=.$this->bu
2d4e0 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e ildComposerPackageName($dependen
2d500 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 cyConstraint->getChannelName(),.
2d520 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 $dependencyConstraint->getPackag
2d540 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 69 6f 6e eName());.$constraint.=.$version
2d560 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 65 6e 64 Parser->parseConstraints($depend
2d580 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 encyConstraint->getConstraint())
2d5a0 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b ;.$link.=.new.Link($composerPack
2d5c0 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 2c ageName,.$dependencyPackageName,
2d5e0 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 .$constraint,.$dependencyConstra
2d600 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 int->getType(),.$dependencyConst
2d620 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 63 68 20 raint->getConstraint());.switch.
2d640 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 ($dependencyConstraint->getType(
2d660 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 65 73 5b )).{.case.'required':.$requires[
2d680 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c 69 63 74 ].=.$link;.break;.case.'conflict
2d6a0 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b s':.$conflicts[].=.$link;.break;
2d6c0 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 .case.'replaces':.$replaces[].=.
2d6e0 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c $link;.break;.}.}..foreach.($rel
2d700 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 easeInfo->getDependencyInfo()->g
2d720 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 65 70 65 etOptionals().as.$group.=>.$depe
2d740 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 ndencyConstraints).{.foreach.($d
2d760 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 64 65 70 65 6e 64 65 ependencyConstraints.as.$depende
2d780 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b ncyConstraint).{.$dependencyPack
2d7a0 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 ageName.=.$this->buildComposerPa
2d7c0 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d ckageName($dependencyConstraint-
2d7e0 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f >getChannelName(),.$dependencyCo
2d800 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 73 75 nstraint->getPackageName());.$su
2d820 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 ggests[$group.'-'.$dependencyPac
2d840 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e kageName].=.$dependencyConstrain
2d860 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 67 t->getConstraint();.}.}..$packag
2d880 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 e.=.new.CompletePackage($compose
2d8a0 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e rPackageName,.$normalizedVersion
2d8c0 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 27 ,.$version);.$package->setType('
2d8e0 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 pear-library');.$package->setDes
2d900 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 cription($packageDefinition->get
2d920 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 Description());.$package->setDis
2d940 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 tType('file');.$package->setDist
2d960 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f Url($distUrl);.$package->setAuto
2d980 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 load(array('classmap'.=>.array('
2d9a0 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 ')));.$package->setIncludePaths(
2d9c0 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 array('/'));.$package->setRequir
2d9e0 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 es($requires);.$package->setConf
2da00 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 licts($conflicts);.$package->set
2da20 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 Suggests($suggests);.$package->s
2da40 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c 74 5b 5d etReplaces($replaces);.$result[]
2da60 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 .=.$package;.}.}..return.$result
2da80 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f ;.}..private.function.buildCompo
2daa0 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 serPackageName($channelName,.$pa
2dac0 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 3d 20 24 63 68 61 6e ckageName).{.if.('php'.===.$chan
2dae0 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 20 28 27 nelName).{.return."php";.}.if.('
2db00 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 ext'.===.$channelName).{.return.
2db20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 "ext-{$packageName}";.}..return.
2db40 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 65 4e 61 "pear-{$channelName}/{$packageNa
2db60 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 me}";.}.}.<?php............names
2db80 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 pace.Composer\Repository;..use.C
2dba0 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 omposer\IO\IOInterface;.use.Comp
2dbc0 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 oser\Config;.........class.Repos
2dbe0 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c 52 65 70 itoryManager.{.private.$localRep
2dc00 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d ository;.private.$repositories.=
2dc20 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 .array();.private.$repositoryCla
2dc40 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 sses.=.array();.private.$io;.pri
2dc60 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f vate.$config;..public.function._
2dc80 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 _construct(IOInterface.$io,.Conf
2dca0 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 ig.$config).{.$this->io.=.$io;.$
2dcc0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a this->config.=.$config;.}.......
2dce0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 ...public.function.findPackage($
2dd00 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 name,.$version).{.foreach.($this
2dd20 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b ->repositories.as.$repository).{
2dd40 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e .if.($package.=.$repository->fin
2dd60 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 dPackage($name,.$version)).{.ret
2dd80 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 urn.$package;.}.}.}..........pub
2dda0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c lic.function.findPackages($name,
2ddc0 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 .$version).{.$packages.=.array()
2dde0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 ;..foreach.($this->repositories.
2de00 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 as.$repository).{.$packages.=.ar
2de20 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 ray_merge($packages,.$repository
2de40 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 ->findPackages($name,.$version))
2de60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ;.}..return.$packages;.}.......p
2de80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 ublic.function.addRepository(Rep
2dea0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a ositoryInterface.$repository).{.
2dec0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 $this->repositories[].=.$reposit
2dee0 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ory;.}..........public.function.
2df00 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 74 79 70 65 2c 20 24 63 6f 6e 66 69 67 29 createRepository($type,.$config)
2df20 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 .{.if.(!isset($this->repositoryC
2df40 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 lasses[$type])).{.throw.new.\Inv
2df60 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 alidArgumentException('Repositor
2df80 79 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 3a 20 27 2e 24 74 79 70 y.type.is.not.registered:.'.$typ
2dfa0 65 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 e);.}..$class.=.$this->repositor
2dfc0 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 24 63 6c yClasses[$type];..return.new.$cl
2dfe0 61 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 ass($config,.$this->io,.$this->c
2e000 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e onfig);.}........public.function
2e020 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c 20 24 63 6c 61 73 .setRepositoryClass($type,.$clas
2e040 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 s).{.$this->repositoryClasses[$t
2e060 79 70 65 5d 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ype].=.$class;.}.......public.fu
2e080 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 nction.getRepositories().{.retur
2e0a0 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 n.$this->repositories;.}.......p
2e0c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 ublic.function.setLocalRepositor
2e0e0 79 28 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 y(WritableRepositoryInterface.$r
2e100 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 epository).{.$this->localReposit
2e120 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ory.=.$repository;.}.......publi
2e140 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 0a c.function.getLocalRepository().
2e160 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b {.return.$this->localRepository;
2e180 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 .}........public.function.getLoc
2e1a0 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 alRepositories().{.trigger_error
2e1c0 28 27 54 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 ('This.method.is.deprecated,.use
2e1e0 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 65 61 64 20 73 69 6e 63 .getLocalRepository.instead.sinc
2e200 65 20 74 68 65 20 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 20 69 73 20 6e e.the.getLocalDevRepository.is.n
2e220 6f 77 20 67 6f 6e 65 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 ow.gone',.E_USER_DEPRECATED);..r
2e240 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f eturn.array($this->localReposito
2e260 72 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ry);.}.}.<?php............namesp
2e280 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Repository;..use.Co
2e2a0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a mposer\Package\AliasPackage;....
2e2c0 0a 0a 0a 63 6c 61 73 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 ...class.WritableArrayRepository
2e2e0 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 .extends.ArrayRepository.impleme
2e300 6e 74 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a nts.WritableRepositoryInterface.
2e320 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 7d {....public.function.write().{.}
2e340 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a .....public.function.reload().{.
2e360 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 6e 6f 6e 69 63 }.....public.function.getCanonic
2e380 61 6c 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 alPackages().{.$packages.=.$this
2e3a0 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 42 79 4e ->getPackages();....$packagesByN
2e3c0 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ame.=.array();.foreach.($package
2e3e0 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 s.as.$package).{.if.(!isset($pac
2e400 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d kagesByName[$package->getName()]
2e420 29 20 7c 7c 20 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 ).||.$packagesByName[$package->g
2e440 65 74 4e 61 6d 65 28 29 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 etName()].instanceof.AliasPackag
2e460 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 e).{.$packagesByName[$package->g
2e480 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 24 63 61 6e 6f etName()].=.$package;.}.}..$cano
2e4a0 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 nicalPackages.=.array();....fore
2e4c0 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 61 73 20 24 70 61 63 6b 61 67 65 ach.($packagesByName.as.$package
2e4e0 29 20 7b 0a 77 68 69 6c 65 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 ).{.while.($package.instanceof.A
2e500 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 liasPackage).{.$package.=.$packa
2e520 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 ge->getAliasOf();.}..$canonicalP
2e540 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ackages[].=.$package;.}..return.
2e560 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a $canonicalPackages;.}.}.<?php...
2e580 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
2e5a0 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f sitory\Vcs;..use.Composer\Downlo
2e5c0 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d ader\TransportException;.use.Com
2e5e0 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 poser\Json\JsonFile;.use.Compose
2e600 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 r\Cache;.use.Composer\IO\IOInter
2e620 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 face;.use.Composer\Util\RemoteFi
2e640 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 lesystem;.use.Composer\Util\GitH
2e660 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 76 65 72 20 65 78 74 65 6e ub;.....class.GitHubDriver.exten
2e680 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b ds.VcsDriver.{.protected.$cache;
2e6a0 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 .protected.$owner;.protected.$re
2e6c0 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 pository;.protected.$tags;.prote
2e6e0 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 cted.$branches;.protected.$rootI
2e700 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 49 73 73 75 65 73 3b dentifier;.protected.$hasIssues;
2e720 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b .protected.$infoCache.=.array();
2e740 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a .protected.$isPrivate.=.false;..
2e760 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 72 3b 0a 0a 0a 0a 0a 70 .....protected.$gitDriver;.....p
2e780 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 ublic.function.initialize().{.pr
2e7a0 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f eg_match('#^(?:(?:https?|git)://
2e7c0 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b github\.com/|git@github\.com:)([
2e7e0 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 24 74 68 69 73 2d ^/]+)/(.+?)(?:\.git)?$#',.$this-
2e800 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d >url,.$match);.$this->owner.=.$m
2e820 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 atch[1];.$this->repository.=.$ma
2e840 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 tch[2];.$this->originUrl.=.'gith
2e860 75 62 2e 63 6f 6d 27 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 ub.com';.$this->cache.=.new.Cach
2e880 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 e($this->io,.$this->config->get(
2e8a0 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 'cache-repo-dir').'/'.$this->ori
2e8c0 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 ginUrl.'/'.$this->owner.'/'.$thi
2e8e0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 52 6f 6f s->repository);..$this->fetchRoo
2e900 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tIdentifier();.}.....public.func
2e920 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 24 tion.getRootIdentifier().{.if.($
2e940 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d this->gitDriver).{.return.$this-
2e960 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b >gitDriver->getRootIdentifier();
2e980 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 .}..return.$this->rootIdentifier
2e9a0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 ;.}.....public.function.getUrl()
2e9c0 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 .{.if.($this->gitDriver).{.retur
2e9e0 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a n.$this->gitDriver->getUrl();.}.
2ea00 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 .return.'https://github.com/'.$t
2ea20 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
2ea40 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .'.git';.}.....public.function.g
2ea60 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 etSource($identifier).{.if.($thi
2ea80 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 s->gitDriver).{.return.$this->gi
2eaa0 74 44 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b tDriver->getSource($identifier);
2eac0 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 .}.if.($this->isPrivate).{.....$
2eae0 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d url.=.$this->generateSshUrl();.}
2eb00 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a .else.{.$url.=.$this->getUrl();.
2eb20 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c }..return.array('type'.=>.'git',
2eb40 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 .'url'.=>.$url,.'reference'.=>.$
2eb60 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 identifier);.}.....public.functi
2eb80 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 on.getDist($identifier).{.if.($t
2eba0 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e his->gitDriver).{.return.$this->
2ebc0 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b gitDriver->getDist($identifier);
2ebe0 0a 7d 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f .}.$url.=.'https://api.github.co
2ec00 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 m/repos/'.$this->owner.'/'.$this
2ec20 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 7a 69 70 62 61 6c 6c 2f 27 2e 24 69 64 65 6e 74 69 ->repository.'/zipball/'.$identi
2ec40 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a fier;..return.array('type'.=>.'z
2ec60 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 ip',.'url'.=>.$url,.'reference'.
2ec80 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b =>.$identifier,.'shasum'.=>.'');
2eca0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 .}.....public.function.getCompos
2ecc0 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 erInformation($identifier).{.if.
2ece0 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ($this->gitDriver).{.return.$thi
2ed00 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 s->gitDriver->getComposerInforma
2ed20 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d tion($identifier);.}..if.(preg_m
2ed40 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 atch('{[a-f0-9]{40}}i',.$identif
2ed60 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 ier).&&.$res.=.$this->cache->rea
2ed80 64 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 d($identifier)).{.$this->infoCac
2eda0 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 he[$identifier].=.JsonFile::pars
2edc0 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 eJson($res);.}..if.(!isset($this
2ede0 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 6e 6f ->infoCache[$identifier])).{.$no
2ee00 74 46 6f 75 6e 64 52 65 74 72 69 65 73 20 3d 20 32 3b 0a 77 68 69 6c 65 20 28 24 6e 6f 74 46 6f tFoundRetries.=.2;.while.($notFo
2ee20 75 6e 64 52 65 74 72 69 65 73 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 undRetries).{.try.{.$resource.=.
2ee40 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 'https://api.github.com/repos/'.
2ee60 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f $this->owner.'/'.$this->reposito
2ee80 72 79 2e 27 2f 63 6f 6e 74 65 6e 74 73 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3f 72 65 66 3d ry.'/contents/composer.json?ref=
2eea0 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 70 6f '.urlencode($identifier);.$compo
2eec0 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d ser.=.JsonFile::parseJson($this-
2eee0 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 29 3b 0a 69 66 20 28 65 6d >getContents($resource));.if.(em
2ef00 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 20 7c 7c 20 24 63 6f pty($composer['content']).||.$co
2ef20 6d 70 6f 73 65 72 5b 27 65 6e 63 6f 64 69 6e 67 27 5d 20 21 3d 3d 20 27 62 61 73 65 36 34 27 20 mposer['encoding'].!==.'base64'.
2ef40 7c 7c 20 21 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 24 ||.!($composer.=.base64_decode($
2ef60 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e composer['content']))).{.throw.n
2ef80 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 ew.\RuntimeException('Could.not.
2efa0 72 65 74 72 69 65 76 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 72 6f 6d 20 27 2e 24 72 retrieve.composer.json.from.'.$r
2efc0 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e esource);.}.break;.}.catch.(Tran
2efe0 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 34 30 34 20 21 3d 3d sportException.$e).{.if.(404.!==
2f000 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a .$e->getCode()).{.throw.$e;.}...
2f020 20 0a 20 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 2d 2d 3b 0a 24 63 6f 6d 70 6f 73 65 72 ...$notFoundRetries--;.$composer
2f040 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a .=.false;.}.}..if.($composer).{.
2f060 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 $composer.=.JsonFile::parseJson(
2f080 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 $composer,.$resource);..if.(!iss
2f0a0 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 et($composer['time'])).{.$resour
2f0c0 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 ce.=.'https://api.github.com/rep
2f0e0 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 os/'.$this->owner.'/'.$this->rep
2f100 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 74 73 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 ository.'/commits/'.urlencode($i
2f120 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a dentifier);.$commit.=.JsonFile::
2f140 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 parseJson($this->getContents($re
2f160 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 source),.$resource);.$composer['
2f180 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d time'].=.$commit['commit']['comm
2f1a0 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 itter']['date'];.}.if.(!isset($c
2f1c0 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b omposer['support']['source'])).{
2f1e0 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 .$label.=.array_search($identifi
2f200 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 er,.$this->getTags()).?:.array_s
2f220 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 earch($identifier,.$this->getBra
2f240 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 nches()).?:.$identifier;.$compos
2f260 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 er['support']['source'].=.sprint
2f280 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 74 72 65 65 f('https://github.com/%s/%s/tree
2f2a0 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 /%s',.$this->owner,.$this->repos
2f2c0 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f itory,.$label);.}.if.(!isset($co
2f2e0 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 mposer['support']['issues']).&&.
2f300 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 $this->hasIssues).{.$composer['s
2f320 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 upport']['issues'].=.sprintf('ht
2f340 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 tps://github.com/%s/%s/issues',.
2f360 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 $this->owner,.$this->repository)
2f380 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d ;.}.}..if.(preg_match('{[a-f0-9]
2f3a0 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e {40}}i',.$identifier)).{.$this->
2f3c0 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 cache->write($identifier,.json_e
2f3e0 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 ncode($composer));.}..$this->inf
2f400 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b oCache[$identifier].=.$composer;
2f420 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 .}..return.$this->infoCache[$ide
2f440 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntifier];.}.....public.function.
2f460 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 getTags().{.if.($this->gitDriver
2f480 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 ).{.return.$this->gitDriver->get
2f4a0 54 61 67 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 Tags();.}.if.(null.===.$this->ta
2f4c0 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 gs).{.$resource.=.'https://api.g
2f4e0 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 ithub.com/repos/'.$this->owner.'
2f500 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 /'.$this->repository.'/tags';.$t
2f520 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 agsData.=.JsonFile::parseJson($t
2f540 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 his->getContents($resource),.$re
2f560 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a source);.$this->tags.=.array();.
2f580 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 foreach.($tagsData.as.$tag).{.$t
2f5a0 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 his->tags[$tag['name']].=.$tag['
2f5c0 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 commit']['sha'];.}.}..return.$th
2f5e0 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 is->tags;.}.....public.function.
2f600 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 getBranches().{.if.($this->gitDr
2f620 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d iver).{.return.$this->gitDriver-
2f640 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 >getBranches();.}.if.(null.===.$
2f660 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 this->branches).{.$resource.=.'h
2f680 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 ttps://api.github.com/repos/'.$t
2f6a0 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
2f6c0 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 64 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 .'/git/refs/heads';.$branchData.
2f6e0 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 =.JsonFile::parseJson($this->get
2f700 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b Contents($resource),.$resource);
2f720 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 .$this->branches.=.array();.fore
2f740 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 ach.($branchData.as.$branch).{.$
2f760 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 name.=.substr($branch['ref'],.11
2f780 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 62 72 61 );.$this->branches[$name].=.$bra
2f7a0 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 nch['object']['sha'];.}.}..retur
2f7c0 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$this->branches;.}.....public.
2f7e0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 static.function.supports(IOInter
2f800 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b face.$io,.$url,.$deep.=.false).{
2f820 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 .if.(!preg_match('#^((?:https?|g
2f840 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c 2e 63 it)://github\.com/|git@github\.c
2f860 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 om:)([^/]+)/(.+?)(?:\.git)?$#',.
2f880 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 $url)).{.return.false;.}..if.(!e
2f8a0 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 xtension_loaded('openssl')).{.if
2f8c0 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 .($io->isVerbose()).{.$io->write
2f8e0 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 75 62 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 ('Skipping.GitHub.driver.for.'.$
2f900 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 url.'.because.the.OpenSSL.PHP.ex
2f920 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e tension.is.missing.');.}..return
2f940 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .false;.}..return.true;.}.......
2f960 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 protected.function.generateSshUr
2f980 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 l().{.return.'git@github.com:'.$
2f9a0 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 this->owner.'/'.$this->repositor
2f9c0 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 y.'.git';.}.....protected.functi
2f9e0 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 on.getContents($url,.$fetchingRe
2fa00 70 6f 44 61 74 61 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 poData.=.false).{.try.{.return.p
2fa20 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 arent::getContents($url);.}.catc
2fa40 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 h.(TransportException.$e).{.$git
2fa60 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 HubUtil.=.new.GitHub($this->io,.
2fa80 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 $this->config,.$this->process,.$
2faa0 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 this->remoteFilesystem);..switch
2fac0 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 .($e->getCode()).{.case.401:.cas
2fae0 65 20 34 30 34 3a 0a 0a 20 69 66 20 28 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 e.404:...if.(!$fetchingRepoData)
2fb00 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 67 69 74 48 75 62 55 74 69 6c 2d .{.throw.$e;.}..if.($gitHubUtil-
2fb20 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c >authorizeOAuth($this->originUrl
2fb40 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 )).{.return.parent::getContents(
2fb60 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 $url);.}..if.(!$this->io->isInte
2fb80 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d ractive()).{.return.$this->attem
2fba0 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 ptCloneFallback();.}..$gitHubUti
2fbc0 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 l->authorizeOAuthInteractively($
2fbe0 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 59 6f 75 72 20 47 69 74 48 75 62 20 63 72 this->originUrl,.'Your.GitHub.cr
2fc00 65 64 65 6e 74 69 61 6c 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 edentials.are.required.to.fetch.
2fc20 70 72 69 76 61 74 65 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e private.repository.metadata.(<in
2fc40 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 fo>'.$this->url.'</info>)');..re
2fc60 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a turn.parent::getContents($url);.
2fc80 0a 63 61 73 65 20 34 30 33 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 .case.403:.if.(!$this->io->hasAu
2fca0 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 thentication($this->originUrl).&
2fcc0 26 20 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 &.$gitHubUtil->authorizeOAuth($t
2fce0 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 his->originUrl)).{.return.parent
2fd00 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 ::getContents($url);.}..if.(!$th
2fd20 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 is->io->isInteractive().&&.$fetc
2fd40 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 hingRepoData).{.return.$this->at
2fd60 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 74 65 4c 69 temptCloneFallback();.}..$rateLi
2fd80 6d 69 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 48 mited.=.false;.foreach.($e->getH
2fda0 65 61 64 65 72 73 28 29 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f eaders().as.$header).{.if.(preg_
2fdc0 6d 61 74 63 68 28 27 7b 5e 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 6d 61 69 6e 69 6e 67 3a 20 match('{^X-RateLimit-Remaining:.
2fde0 2a 30 24 7d 69 27 2c 20 74 72 69 6d 28 24 68 65 61 64 65 72 29 29 29 20 7b 0a 24 72 61 74 65 4c *0$}i',.trim($header))).{.$rateL
2fe00 69 6d 69 74 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e imited.=.true;.}.}..if.(!$this->
2fe20 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 io->hasAuthentication($this->ori
2fe40 67 69 6e 55 72 6c 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 ginUrl)).{.if.(!$this->io->isInt
2fe60 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 eractive()).{.$this->io->write('
2fe80 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 <error>GitHub.API.limit.exhauste
2fea0 64 2e 20 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 74 68 d..Failed.to.get.metadata.for.th
2fec0 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 e.'.$this->url.'.repository,.try
2fee0 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 .running.in.interactive.mode.so.
2ff00 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 that.you.can.enter.your.GitHub.c
2ff20 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 41 50 49 20 6c redentials.to.increase.the.API.l
2ff40 69 6d 69 74 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 67 69 imit</error>');.throw.$e;.}..$gi
2ff60 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 tHubUtil->authorizeOAuthInteract
2ff80 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 41 50 49 20 6c 69 6d ively($this->originUrl,.'API.lim
2ffa0 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 45 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 it.exhausted..Enter.your.GitHub.
2ffc0 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 67 65 74 20 61 20 6c 61 72 67 65 72 20 41 50 49 20 credentials.to.get.a.larger.API.
2ffe0 6c 69 6d 69 74 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 limit.(<info>'.$this->url.'</inf
30000 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e o>)');..return.parent::getConten
30020 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 24 72 61 74 65 4c 69 6d 69 74 65 64 29 20 7b ts($url);.}..if.($rateLimited).{
30040 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 61 74 65 4c 69 6d 69 .$rateLimit.=.$this->getRateLimi
30060 74 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e t($e->getHeaders());.$this->io->
30080 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 write(sprintf(.'<error>GitHub.AP
300a0 49 20 6c 69 6d 69 74 20 28 25 64 20 63 61 6c 6c 73 2f 68 72 29 20 69 73 20 65 78 68 61 75 73 74 I.limit.(%d.calls/hr).is.exhaust
300c0 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 7a 65 64 20 73 ed..You.are.already.authorized.s
300e0 6f 20 79 6f 75 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69 6c 20 25 73 20 62 65 66 6f o.you.have.to.wait.until.%s.befo
30100 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c 2f 65 72 72 6f 72 3e 27 2c re.doing.more.requests</error>',
30120 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 2c 0a 24 72 61 74 65 4c 69 6d 69 74 .$rateLimit['limit'],.$rateLimit
30140 5b 27 72 65 73 65 74 27 5d 0a 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 ['reset'].));.}..throw.$e;..defa
30160 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f ult:.throw.$e;.}.}.}.........pro
30180 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 61 74 65 4c 69 6d 69 74 28 61 72 72 tected.function.getRateLimit(arr
301a0 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 61 72 72 61 ay.$headers).{.$rateLimit.=.arra
301c0 79 28 0a 27 6c 69 6d 69 74 27 20 3d 3e 20 27 3f 27 2c 0a 27 72 65 73 65 74 27 20 3d 3e 20 27 3f y(.'limit'.=>.'?',.'reset'.=>.'?
301e0 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 ',.);..foreach.($headers.as.$hea
30200 64 65 72 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 74 72 69 6d 28 24 68 65 61 64 65 72 29 3b 0a der).{.$header.=.trim($header);.
30220 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 68 65 61 64 65 72 2c 20 27 58 if.(false.===.strpos($header,.'X
30240 2d 52 61 74 65 4c 69 6d 69 74 2d 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 6c 69 73 -RateLimit-')).{.continue;.}.lis
30260 74 28 24 74 79 70 65 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 t($type,.$value).=.explode(':',.
30280 24 68 65 61 64 65 72 2c 20 32 29 3b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 $header,.2);.switch.($type).{.ca
302a0 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 4c 69 6d 69 74 27 3a 0a 24 72 61 74 65 4c 69 6d se.'X-RateLimit-Limit':.$rateLim
302c0 69 74 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 it['limit'].=.(int).trim($value)
302e0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 73 65 74 ;.break;.case.'X-RateLimit-Reset
30300 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 20 3d 20 64 61 74 65 28 27 59 ':.$rateLimit['reset'].=.date('Y
30320 2d 6d 2d 64 20 48 3a 69 3a 73 27 2c 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 29 -m-d.H:i:s',.(int).trim($value))
30340 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 61 74 65 4c 69 6d 69 74 3b ;.break;.}.}..return.$rateLimit;
30360 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 .}.......protected.function.fetc
30380 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 72 65 70 6f 44 61 74 61 55 72 6c hRootIdentifier().{.$repoDataUrl
303a0 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 .=.'https://api.github.com/repos
303c0 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
303e0 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 itory;..$repoData.=.JsonFile::pa
30400 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f rseJson($this->getContents($repo
30420 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 DataUrl,.true),.$repoDataUrl);.i
30440 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 26 26 20 6e 75 6c 6c 20 21 3d f.(null.===.$repoData.&&.null.!=
30460 3d 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a =.$this->gitDriver).{.return;.}.
30480 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f .$this->isPrivate.=.!empty($repo
304a0 44 61 74 61 5b 27 70 72 69 76 61 74 65 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 Data['private']);.if.(isset($rep
304c0 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 oData['default_branch'])).{.$thi
304e0 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 64 s->rootIdentifier.=.$repoData['d
30500 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 efault_branch'];.}.elseif.(isset
30520 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a ($repoData['master_branch'])).{.
30540 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 $this->rootIdentifier.=.$repoDat
30560 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 a['master_branch'];.}.else.{.$th
30580 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 7d is->rootIdentifier.=.'master';.}
305a0 0a 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f .$this->hasIssues.=.!empty($repo
305c0 44 61 74 61 5b 27 68 61 73 5f 69 73 73 75 65 73 27 5d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 Data['has_issues']);.}..protecte
305e0 64 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 d.function.attemptCloneFallback(
30600 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a 0a 74 72 ).{.$this->isPrivate.=.true;..tr
30620 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e y.{.........$this->gitDriver.=.n
30640 65 77 20 47 69 74 44 72 69 76 65 72 28 0a 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 74 68 ew.GitDriver(.array('url'.=>.$th
30660 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 29 2c 0a 24 74 68 69 73 2d 3e 69 6f is->generateSshUrl()),.$this->io
30680 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c ,.$this->config,.$this->process,
306a0 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 69 .$this->remoteFilesystem.);.$thi
306c0 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 s->gitDriver->initialize();..ret
306e0 75 72 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 urn;.}.catch.(\RuntimeException.
30700 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a $e).{.$this->gitDriver.=.null;..
30720 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 $this->io->write('<error>Failed.
30740 74 6f 20 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 to.clone.the.'.$this->generateSs
30760 68 55 72 6c 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 hUrl().'.repository,.try.running
30780 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 .in.interactive.mode.so.that.you
307a0 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 .can.enter.your.GitHub.credentia
307c0 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f ls</error>');.throw.$e;.}.}.}.<?
307e0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
30800 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c r\Repository\Vcs;..use.Composer\
30820 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 Json\JsonFile;.use.Composer\IO\I
30840 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 42 69 74 62 75 63 6b OInterface;.....class.GitBitbuck
30860 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c 65 etDriver.extends.VcsDriver.imple
30880 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 ments.VcsDriverInterface.{.prote
308a0 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f cted.$owner;.protected.$reposito
308c0 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ry;.protected.$tags;.protected.$
308e0 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 branches;.protected.$rootIdentif
30900 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 ier;.protected.$infoCache.=.arra
30920 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c y();.....public.function.initial
30940 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 ize().{.preg_match('#^https://bi
30960 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 tbucket\.org/([^/]+)/(.+?)\.git$
30980 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e #',.$this->url,.$match);.$this->
309a0 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 owner.=.$match[1];.$this->reposi
309c0 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 tory.=.$match[2];.$this->originU
309e0 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c rl.=.'bitbucket.org';.}.....publ
30a00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a ic.function.getRootIdentifier().
30a20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 {.if.(null.===.$this->rootIdenti
30a40 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 fier).{.$resource.=.$this->getSc
30a60 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 heme()...'://api.bitbucket.org/1
30a80 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 .0/repositories/'.$this->owner.'
30aa0 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 72 65 70 6f 44 61 74 61 20 /'.$this->repository;.$repoData.
30ac0 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 =.JsonFile::parseJson($this->get
30ae0 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b Contents($resource),.$resource);
30b00 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 21 65 6d 70 74 79 28 .$this->rootIdentifier.=.!empty(
30b20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 29 20 3f 20 24 72 65 70 $repoData['main_branch']).?.$rep
30b40 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 3a 20 27 6d 61 73 74 65 72 27 3b oData['main_branch'].:.'master';
30b60 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 .}..return.$this->rootIdentifier
30b80 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 ;.}.....public.function.getUrl()
30ba0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .{.return.$this->url;.}.....publ
30bc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 ic.function.getSource($identifie
30be0 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 r).{.return.array('type'.=>.'git
30c00 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 ',.'url'.=>.$this->getUrl(),.'re
30c20 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a ference'.=>.$identifier);.}.....
30c40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 public.function.getDist($identif
30c60 69 65 72 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 ier).{.$url.=.$this->getScheme()
30c80 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 ...'://bitbucket.org/'.$this->ow
30ca0 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f ner.'/'.$this->repository.'/get/
30cc0 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 '.$identifier.'.zip';..return.ar
30ce0 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 ray('type'.=>.'zip',.'url'.=>.$u
30d00 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 rl,.'reference'.=>.$identifier,.
30d20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 'shasum'.=>.'');.}.....public.fu
30d40 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 nction.getComposerInformation($i
30d60 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 dentifier).{.if.(!isset($this->i
30d80 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 nfoCache[$identifier])).{.$resou
30da0 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 rce.=.$this->getScheme()...'://b
30dc0 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e itbucket.org/'.$this->owner.'/'.
30de0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 2e 24 69 64 65 6e 74 $this->repository.'/raw/'.$ident
30e00 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 ifier.'/composer.json';.$compose
30e20 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 r.=.$this->getContents($resource
30e40 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a );.if.(!$composer).{.return;.}..
30e60 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 $composer.=.JsonFile::parseJson(
30e80 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 $composer,.$resource);..if.(!iss
30ea0 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 et($composer['time'])).{.$resour
30ec0 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 ce.=.$this->getScheme()...'://ap
30ee0 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 i.bitbucket.org/1.0/repositories
30f00 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
30f20 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 itory.'/changesets/'.$identifier
30f40 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 ;.$changeset.=.JsonFile::parseJs
30f60 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 on($this->getContents($resource)
30f80 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 ,.$resource);.$composer['time'].
30fa0 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 =.$changeset['timestamp'];.}.$th
30fc0 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f is->infoCache[$identifier].=.$co
30fe0 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 mposer;.}..return.$this->infoCac
31000 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 he[$identifier];.}.....public.fu
31020 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 nction.getTags().{.if.(null.===.
31040 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 $this->tags).{.$resource.=.$this
31060 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 ->getScheme()...'://api.bitbucke
31080 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e t.org/1.0/repositories/'.$this->
310a0 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 owner.'/'.$this->repository.'/ta
310c0 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 gs';.$tagsData.=.JsonFile::parse
310e0 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 Json($this->getContents($resourc
31100 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 e),.$resource);.$this->tags.=.ar
31120 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 ray();.foreach.($tagsData.as.$ta
31140 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 g.=>.$data).{.$this->tags[$tag].
31160 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e =.$data['raw_node'];.}.}..return
31180 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this->tags;.}.....public.funct
311a0 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d ion.getBranches().{.if.(null.===
311c0 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 .$this->branches).{.$resource.=.
311e0 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 $this->getScheme()...'://api.bit
31200 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 bucket.org/1.0/repositories/'.$t
31220 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
31240 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e .'/branches';.$branchData.=.Json
31260 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e File::parseJson($this->getConten
31280 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 ts($resource),.$resource);.$this
312a0 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ->branches.=.array();.foreach.($
312c0 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 branchData.as.$branch.=>.$data).
312e0 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 {.$this->branches[$branch].=.$da
31300 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ta['raw_node'];.}.}..return.$thi
31320 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 s->branches;.}.....public.static
31340 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 .function.supports(IOInterface.$
31360 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 io,.$url,.$deep.=.false).{.if.(!
31380 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c preg_match('#^https://bitbucket\
313a0 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 75 72 6c .org/([^/]+)/(.+?)\.git$#',.$url
313c0 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e )).{.return.false;.}..if.(!exten
313e0 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 sion_loaded('openssl')).{.if.($i
31400 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b o->isVerbose()).{.$io->write('Sk
31420 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 65 72 20 66 6f 72 20 ipping.Bitbucket.git.driver.for.
31440 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 '.$url.'.because.the.OpenSSL.PHP
31460 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 .extension.is.missing.');.}..ret
31480 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c urn.false;.}..return.true;.}.}.<
314a0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
314c0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Repository\Vcs;..use.Composer
314e0 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 \Json\JsonFile;.use.Composer\Uti
31500 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c l\ProcessExecutor;.use.Composer\
31520 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 Util\Filesystem;.use.Composer\Ut
31540 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c il\Git.as.GitUtil;.use.Composer\
31560 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 72 69 IO\IOInterface;.....class.GitDri
31580 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 ver.extends.VcsDriver.{.protecte
315a0 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 d.$tags;.protected.$branches;.pr
315c0 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 otected.$rootIdentifier;.protect
315e0 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 ed.$repoDir;.protected.$infoCach
31600 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e e.=.array();.....public.function
31620 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f .initialize().{.if.(static::isLo
31640 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 calUrl($this->url)).{.$this->rep
31660 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 oDir.=.str_replace('file://',.''
31680 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 ,.$this->url);.}.else.{.$this->r
316a0 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 epoDir.=.$this->config->get('cac
316c0 68 65 2d 76 63 73 2d 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 he-vcs-dir')...'/'...preg_replac
316e0 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 e('{[^a-z0-9.]}i',.'-',.$this->u
31700 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 3b rl)...'/';..$util.=.new.GitUtil;
31720 0a 24 75 74 69 6c 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 .$util->cleanEnv();..$fs.=.new.F
31740 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 ilesystem();.$fs->ensureDirector
31760 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 yExists(dirname($this->repoDir))
31780 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 ;..if.(!is_writable(dirname($thi
317a0 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 s->repoDir))).{.throw.new.\Runti
317c0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 meException('Can.not.clone.'.$th
317e0 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f is->url.'.to.access.package.info
31800 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 rmation..The."'.dirname($this->r
31820 65 70 6f 44 69 72 29 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 epoDir).'".directory.is.not.writ
31840 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a able.by.the.current.user.');.}..
31860 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e if.(preg_match('{^ssh://[^@]+@[^
31880 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 74 68 :]+:[^0-9]+}',.$this->url)).{.th
318a0 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
318c0 6e 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 n('The.source.URL.'.$this->url.'
318e0 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 .is.invalid,.ssh.URLs.should.hav
31900 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 e.a.port.number.after.":".'."\n"
31920 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 .'Use.ssh://git@example.com:22/p
31940 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 ath.or.just.git@example.com:path
31960 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 .if.you.do.not.want.to.provide.a
31980 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a .password.or.custom.port.');.}..
319a0 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 ..if.(is_dir($this->repoDir).&&.
319c0 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 0.===.$this->process->execute('g
319e0 69 74 20 72 65 6d 6f 74 65 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f it.remote',.$output,.$this->repo
31a00 44 69 72 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 Dir)).{.if.(0.!==.$this->process
31a20 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 20 75 70 64 61 74 65 20 2d 2d 70 ->execute('git.remote.update.--p
31a40 72 75 6e 65 20 6f 72 69 67 69 6e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 rune.origin',.$output,.$this->re
31a60 70 6f 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 poDir)).{.$this->io->write('<err
31a80 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c or>Failed.to.update.'.$this->url
31aa0 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 .',.package.information.from.thi
31ac0 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e s.repository.may.be.outdated.('.
31ae0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
31b00 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d .')</error>');.}.}.else.{...$fs-
31b20 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 >removeDirectory($this->repoDir)
31b40 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 6c 6f 6e 65 ;..$command.=.sprintf('git.clone
31b60 20 2d 2d 6d 69 72 72 6f 72 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 .--mirror.%s.%s',.escapeshellarg
31b80 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 ($this->url),.escapeshellarg($th
31ba0 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e is->repoDir));.if.(0.!==.$this->
31bc0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 process->execute($command,.$outp
31be0 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d ut)).{.$output.=.$this->process-
31c00 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 >getErrorOutput();..if.(0.!==.$t
31c20 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d 2d 76 65 72 his->process->execute('git.--ver
31c40 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 sion',.$ignoredOutput)).{.throw.
31c60 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f new.\RuntimeException('Failed.to
31c80 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 67 69 74 20 77 61 73 20 6e .clone.'.$this->url.',.git.was.n
31ca0 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 ot.found,.check.that.it.is.insta
31cc0 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c lled.and.in.your.PATH.env.'..."\
31ce0 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f n\n"...$this->process->getErrorO
31d00 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 utput());.}..throw.new.\RuntimeE
31d20 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 xception('Failed.to.clone.'.$thi
31d40 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b 61 67 65 s->url.',.could.not.read.package
31d60 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 3b 0a 7d s.from.it'..."\n\n"..$output);.}
31d80 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 .}.}..$this->getTags();.$this->g
31da0 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 etBranches();.}.....public.funct
31dc0 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 ion.getRootIdentifier().{.if.(nu
31de0 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a ll.===.$this->rootIdentifier).{.
31e00 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 $this->rootIdentifier.=.'master'
31e20 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 ;....$this->process->execute('gi
31e40 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 t.branch.--no-color',.$output,.$
31e60 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 this->repoDir);.$branches.=.$thi
31e80 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b s->process->splitLines($output);
31ea0 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 72 61 6e .if.(!in_array('*.master',.$bran
31ec0 63 68 65 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 ches)).{.foreach.($branches.as.$
31ee0 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 branch).{.if.($branch.&&.preg_ma
31f00 74 63 68 28 27 7b 5e 5c 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 tch('{^\*.+(\S+)}',.$branch,.$ma
31f20 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 tch)).{.$this->rootIdentifier.=.
31f40 24 6d 61 74 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 $match[1];.break;.}.}.}.}..retur
31f60 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 n.$this->rootIdentifier;.}.....p
31f80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e ublic.function.getUrl().{.return
31fa0 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$this->url;.}.....public.functi
31fc0 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 on.getSource($identifier).{.retu
31fe0 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 rn.array('type'.=>.'git',.'url'.
32000 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 =>.$this->getUrl(),.'reference'.
32020 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 =>.$identifier);.}.....public.fu
32040 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 nction.getDist($identifier).{.re
32060 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e turn.null;.}.....public.function
32080 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 .getComposerInformation($identif
320a0 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 ier).{.if.(!isset($this->infoCac
320c0 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 he[$identifier])).{.$resource.=.
320e0 73 70 72 69 6e 74 66 28 27 25 73 3a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 sprintf('%s:composer.json',.esca
32100 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 3b 0a 24 74 68 69 73 2d peshellarg($identifier));.$this-
32120 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 73 >process->execute(sprintf('git.s
32140 68 6f 77 20 25 73 27 2c 20 24 72 65 73 6f 75 72 63 65 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 how.%s',.$resource),.$composer,.
32160 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d $this->repoDir);..if.(!trim($com
32180 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d poser)).{.return;.}..$composer.=
321a0 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 .JsonFile::parseJson($composer,.
321c0 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 $resource);..if.(!isset($compose
321e0 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 r['time'])).{.$this->process->ex
32200 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 2d 31 20 2d 2d 66 6f 72 6d ecute(sprintf('git.log.-1.--form
32220 61 74 3d 25 25 61 74 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 at=%%at.%s',.escapeshellarg($ide
32240 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 ntifier)),.$output,.$this->repoD
32260 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 ir);.$date.=.new.\DateTime('@'.t
32280 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 rim($output),.new.\DateTimeZone(
322a0 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 'UTC'));.$composer['time'].=.$da
322c0 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 te->format('Y-m-d.H:i:s');.}.$th
322e0 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f is->infoCache[$identifier].=.$co
32300 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 mposer;.}..return.$this->infoCac
32320 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 he[$identifier];.}.....public.fu
32340 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 nction.getTags().{.if.(null.===.
32360 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 $this->tags).{.$this->tags.=.arr
32380 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 ay();..$this->process->execute('
323a0 67 69 74 20 73 68 6f 77 2d 72 65 66 20 2d 2d 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 git.show-ref.--tags',.$output,.$
323c0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 75 74 70 75 74 this->repoDir);.foreach.($output
323e0 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f .=.$this->process->splitLines($o
32400 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 utput).as.$tag).{.if.($tag.&&.pr
32420 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 29 20 72 65 66 73 2f eg_match('{^([a-f0-9]{40}).refs/
32440 74 61 67 73 2f 28 5c 53 2b 29 24 7d 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a tags/(\S+)$}',.$tag,.$match)).{.
32460 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 6d 61 74 63 68 5b 32 5d 5d 20 3d 20 24 6d 61 74 63 68 5b $this->tags[$match[2]].=.$match[
32480 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 1];.}.}.}..return.$this->tags;.}
324a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 .....public.function.getBranches
324c0 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 ().{.if.(null.===.$this->branche
324e0 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 s).{.$branches.=.array();..$this
32500 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d ->process->execute('git.branch.-
32520 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 -no-color.--no-abbrev.-v',.$outp
32540 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 ut,.$this->repoDir);.foreach.($t
32560 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 his->process->splitLines($output
32580 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 ).as.$branch).{.if.($branch.&&.!
325a0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 preg_match('{^.*[^/]+/HEAD.}',.$
325c0 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a branch)).{.if.(preg_match('{^(?:
325e0 5c 2a 20 29 3f 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c \*.)?.*(\S+).*([a-f0-9]+)..*$}',
32600 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 .$branch,.$match)).{.$branches[$
32620 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 match[1]].=.$match[2];.}.}.}..$t
32640 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 his->branches.=.$branches;.}..re
32660 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c turn.$this->branches;.}.....publ
32680 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e ic.static.function.supports(IOIn
326a0 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 terface.$io,.$url,.$deep.=.false
326c0 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 67 69 74 3a 2f 2f 7c 5c 2e ).{.if.(preg_match('#(^git://|\.
326e0 67 69 74 24 7c 67 69 74 28 3f 3a 6f 6c 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 git$|git(?:olite)?@|//git\.|//gi
32700 74 68 75 62 2e 63 6f 6d 2f 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 thub.com/)#i',.$url)).{.return.t
32720 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c rue;.}....if.(static::isLocalUrl
32740 28 24 75 72 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 74 ($url)).{.if.(!is_dir($url)).{.t
32760 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 44 69 72 65 hrow.new.\RuntimeException('Dire
32780 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 72 6c 29 3b 0a 7d ctory.does.not.exist:.'.$url);.}
327a0 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 ..$process.=.new.ProcessExecutor
327c0 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 ();.$url.=.str_replace('file://'
327e0 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 ,.'',.$url);...if.($process->exe
32800 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d cute('git.tag',.$output,.$url).=
32820 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 ==.0).{.return.true;.}.}..if.(!$
32840 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 deep).{.return.false;.}....retur
32860 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 n.false;.}.}.<?php............na
32880 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b mespace.Composer\Repository\Vcs;
328a0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 ..use.Composer\Cache;.use.Compos
328c0 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 er\Json\JsonFile;.use.Composer\U
328e0 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 til\ProcessExecutor;.use.Compose
32900 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c r\Util\Filesystem;.use.Composer\
32920 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Util\Svn.as.SvnUtil;.use.Compose
32940 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 r\IO\IOInterface;.use.Composer\D
32960 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a ownloader\TransportException;...
32980 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 ...class.SvnDriver.extends.VcsDr
329a0 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 iver.{.protected.$cache;.protect
329c0 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 ed.$baseUrl;.protected.$tags;.pr
329e0 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f otected.$branches;.protected.$ro
32a00 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 otIdentifier;.protected.$infoCac
32a20 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b 50 he.=.array();..protected.$trunkP
32a40 61 74 68 20 3d 20 27 74 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 ath.=.'trunk';.protected.$branch
32a60 65 73 50 61 74 68 20 3d 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 esPath.=.'branches';.protected.$
32a80 74 61 67 73 50 61 74 68 20 3d 20 27 74 61 67 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 tagsPath.=.'tags';.protected.$pa
32aa0 63 6b 61 67 65 50 61 74 68 20 3d 20 27 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 ckagePath.=.'';.....private.$uti
32ac0 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a l;.....public.function.initializ
32ae0 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 e().{.$this->url.=.$this->baseUr
32b00 6c 20 3d 20 72 74 72 69 6d 28 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 l.=.rtrim(self::normalizeUrl($th
32b20 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 is->url),.'/');..if.(isset($this
32b40 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 ->repoConfig['trunk-path'])).{.$
32b60 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e this->trunkPath.=.$this->repoCon
32b80 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 fig['trunk-path'];.}.if.(isset($
32ba0 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 this->repoConfig['branches-path'
32bc0 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 24 74 68 69 ])).{.$this->branchesPath.=.$thi
32be0 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b 0a s->repoConfig['branches-path'];.
32c00 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 }.if.(isset($this->repoConfig['t
32c20 61 67 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 3d ags-path'])).{.$this->tagsPath.=
32c40 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 3b .$this->repoConfig['tags-path'];
32c60 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 .}.if.(isset($this->repoConfig['
32c80 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 package-path'])).{.$this->packag
32ca0 65 50 61 74 68 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f ePath.=.'/'...trim($this->repoCo
32cc0 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 nfig['package-path'],.'/');.}..i
32ce0 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 68 f.(false.!==.($pos.=.strrpos($th
32d00 69 73 2d 3e 75 72 6c 2c 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 is->url,.'/'...$this->trunkPath)
32d20 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 24 74 68 )).{.$this->baseUrl.=.substr($th
32d40 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 is->url,.0,.$pos);.}..$this->cac
32d60 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d he.=.new.Cache($this->io,.$this-
32d80 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 >config->get('cache-repo-dir').'
32da0 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c /'.preg_replace('{[^a-z0-9.]}i',
32dc0 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 73 2d 3e .'-',.$this->baseUrl));..$this->
32de0 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b getBranches();.$this->getTags();
32e00 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 .}.....public.function.getRootId
32e20 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 entifier().{.return.$this->rootI
32e40 64 65 6e 74 69 66 69 65 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a 7d dentifier.?:.$this->trunkPath;.}
32e60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a .....public.function.getUrl().{.
32e80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 return.$this->url;.}.....public.
32ea0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a function.getSource($identifier).
32ec0 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c 20 {.return.array('type'.=>.'svn',.
32ee0 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 65 'url'.=>.$this->baseUrl,.'refere
32f00 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c nce'.=>.$identifier);.}.....publ
32f20 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 ic.function.getDist($identifier)
32f40 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .{.return.null;.}.....public.fun
32f60 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 ction.getComposerInformation($id
32f80 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e 20 entifier).{.$identifier.=.'/'...
32fa0 74 72 69 6d 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 trim($identifier,.'/')...'/';..i
32fc0 66 20 28 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 f.($res.=.$this->cache->read($id
32fe0 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f entifier.'.json')).{.$this->info
33000 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 Cache[$identifier].=.JsonFile::p
33020 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 arseJson($res);.}..if.(!isset($t
33040 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a his->infoCache[$identifier])).{.
33060 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d 27 2c 20 preg_match('{^(.+?)(@\d+)?/$}',.
33080 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 $identifier,.$match);.if.(!empty
330a0 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 5b 31 5d ($match[2])).{.$path.=.$match[1]
330c0 3b 0a 24 72 65 76 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 ;.$rev.=.$match[2];.}.else.{.$pa
330e0 74 68 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a 0a th.=.$identifier;.$rev.=.'';.}..
33100 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 65 try.{.$resource.=.$path.'compose
33120 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 r.json';.$output.=.$this->execut
33140 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 e('svn.cat',.$this->baseUrl...$r
33160 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 70 esource...$rev);.if.(!trim($outp
33180 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 ut)).{.return;.}.}.catch.(\Runti
331a0 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e meException.$e).{.throw.new.Tran
331c0 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 sportException($e->getMessage())
331e0 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 ;.}..$composer.=.JsonFile::parse
33200 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 Json($output,.$this->baseUrl...$
33220 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 resource...$rev);..if.(!isset($c
33240 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 omposer['time'])).{.$output.=.$t
33260 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d 3e his->execute('svn.info',.$this->
33280 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 68 baseUrl...$path...$rev);.foreach
332a0 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 .($this->process->splitLines($ou
332c0 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 tput).as.$line).{.if.($line.&&.p
332e0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a 20 reg_match('{^Last.Changed.Date:.
33300 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 ([^(]+)}',.$line,.$match)).{.$da
33320 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 te.=.new.\DateTime($match[1],.ne
33340 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 w.\DateTimeZone('UTC'));.$compos
33360 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d er['time'].=.$date->format('Y-m-
33380 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e d.H:i:s');.break;.}.}.}..$this->
333a0 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 cache->write($identifier.'.json'
333c0 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 74 68 69 73 ,.json_encode($composer));.$this
333e0 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 ->infoCache[$identifier].=.$comp
33400 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 oser;.}..return.$this->infoCache
33420 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$identifier];.}.....public.func
33440 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 tion.getTags().{.if.(null.===.$t
33460 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 his->tags).{.$this->tags.=.array
33480 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d 20 66 61 6c ();..if.($this->tagsPath.!==.fal
334a0 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 se).{.$output.=.$this->execute('
334c0 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 svn.ls.--verbose',.$this->baseUr
334e0 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a 69 66 20 28 l...'/'...$this->tagsPath);.if.(
33500 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 $output).{.foreach.($this->proce
33520 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 ss->splitLines($output).as.$line
33540 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 ).{.$line.=.trim($line);.if.($li
33560 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 ne.&&.preg_match('{^\s*(\S+).*?(
33580 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 \S+)\s*$}',.$line,.$match)).{.if
335a0 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 .(isset($match[1]).&&.isset($mat
335c0 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a ch[2]).&&.$match[2].!==.'./').{.
335e0 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 $this->tags[rtrim($match[2],.'/'
33600 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 )].=.$this->buildIdentifier(.'/'
33620 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 ...$this->tagsPath...'/'...$matc
33640 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a h[2],.$match[1].);.}.}.}.}.}.}..
33660 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 return.$this->tags;.}.....public
33680 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 .function.getBranches().{.if.(nu
336a0 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d ll.===.$this->branches).{.$this-
336c0 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 >branches.=.array();..if.(false.
336e0 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 2c 20 27 2f 27 ===.strpos($this->trunkPath,.'/'
33700 29 29 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 )).{.$trunkParent.=.$this->baseU
33720 72 6c 20 2e 20 27 2f 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 rl...'/';.}.else.{.$trunkParent.
33740 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 64 69 72 6e 61 6d 65 =.$this->baseUrl...'/'...dirname
33760 28 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 20 2e 20 27 2f 27 3b 0a 7d 0a 0a 24 6f 75 ($this->trunkPath)...'/';.}..$ou
33780 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d tput.=.$this->execute('svn.ls.--
337a0 76 65 72 62 6f 73 65 27 2c 20 24 74 72 75 6e 6b 50 61 72 65 6e 74 29 3b 0a 69 66 20 28 24 6f 75 verbose',.$trunkParent);.if.($ou
337c0 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d tput).{.foreach.($this->process-
337e0 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b >splitLines($output).as.$line).{
33800 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 .$line.=.trim($line);.if.($line.
33820 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b &&.preg_match('{^\s*(\S+).*?(\S+
33840 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 )\s*$}',.$line,.$match)).{.if.(i
33860 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b sset($match[1]).&&.isset($match[
33880 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 6e 2]).&&.$match[2].===.$this->trun
338a0 6b 50 61 74 68 20 2e 20 27 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 kPath...'/').{.$this->branches[$
338c0 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 this->trunkPath].=.$this->buildI
338e0 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 dentifier(.'/'...$this->trunkPat
33900 68 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 h,.$match[1].);.$this->rootIdent
33920 69 66 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 74 ifier.=.$this->branches[$this->t
33940 72 75 6e 6b 50 61 74 68 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 runkPath];.break;.}.}.}.}.unset(
33960 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 $output);..if.($this->branchesPa
33980 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d th.!==.false).{.$output.=.$this-
339a0 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 >execute('svn.ls.--verbose',.$th
339c0 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 is->baseUrl...'/'...$this->branc
339e0 68 65 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 hesPath);.if.($output).{.foreach
33a00 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 .($this->process->splitLines(tri
33a20 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 m($output)).as.$line).{.$line.=.
33a40 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d trim($line);.if.($line.&&.preg_m
33a60 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 atch('{^\s*(\S+).*?(\S+)\s*$}',.
33a80 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 $line,.$match)).{.if.(isset($mat
33aa0 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d ch[1]).&&.isset($match[2]).&&.$m
33ac0 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 atch[2].!==.'./').{.$this->branc
33ae0 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 68 hes[rtrim($match[2],.'/')].=.$th
33b00 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 is->buildIdentifier(.'/'...$this
33b20 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d ->branchesPath...'/'...$match[2]
33b40 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 ,.$match[1].);.}.}.}.}.}.}..retu
33b60 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->branches;.}.....public
33b80 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 .static.function.supports(IOInte
33ba0 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a rface.$io,.$url,.$deep.=.false).
33bc0 7b 0a 24 75 72 6c 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c {.$url.=.self::normalizeUrl($url
33be0 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 73 76 6e 3a 2f 2f 7c 5e 73 76 );.if.(preg_match('#(^svn://|^sv
33c00 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 6e 5c 2e 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 n\+ssh://|svn\.)#i',.$url)).{.re
33c20 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 64 65 65 70 20 26 26 20 21 73 turn.true;.}....if.(!$deep.&&.!s
33c40 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 tatic::isLocalUrl($url)).{.retur
33c60 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e n.false;.}..$processExecutor.=.n
33c80 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 24 65 78 69 74 20 3d 20 24 ew.ProcessExecutor();..$exit.=.$
33ca0 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 0a 22 73 76 6e 20 69 processExecutor->execute(."svn.i
33cc0 6e 66 6f 20 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 7b 24 75 72 6c 7d 22 2c 0a 24 nfo.--non-interactive.{$url}",.$
33ce0 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 0a 29 3b 0a 0a 69 66 20 28 24 65 78 69 74 20 3d 3d 3d 20 ignoredOutput.);..if.($exit.===.
33d00 30 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 0).{...return.true;.}..if.(false
33d20 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 67 .!==.stripos($processExecutor->g
33d40 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 etErrorOutput(),.'authorization.
33d60 66 61 69 6c 65 64 3a 27 29 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a failed:')).{.....return.true;.}.
33d80 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .return.false;.}.........protect
33da0 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 ed.static.function.normalizeUrl(
33dc0 24 75 72 6c 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a $url).{.$fs.=.new.Filesystem();.
33de0 69 66 20 28 24 66 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 75 72 6c 29 29 20 7b if.($fs->isAbsolutePath($url)).{
33e00 0a 72 65 74 75 72 6e 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 24 75 72 6c 2c 20 .return.'file://'...strtr($url,.
33e20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a '\\',.'/');.}..return.$url;.}...
33e40 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 ........protected.function.execu
33e60 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d te($command,.$url).{.if.(null.==
33e80 3d 20 24 74 68 69 73 2d 3e 75 74 69 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 20 3d 20 6e =.$this->util).{.$this->util.=.n
33ea0 65 77 20 53 76 6e 55 74 69 6c 28 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 ew.SvnUtil($this->baseUrl,.$this
33ec0 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a ->io,.$this->process);.}..try.{.
33ee0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d return.$this->util->execute($com
33f00 6d 61 6e 64 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 mand,.$url);.}.catch.(\RuntimeEx
33f20 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 ception.$e).{.if.(0.!==.$this->p
33f40 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c rocess->execute('svn.--version',
33f60 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 .$ignoredOutput)).{.throw.new.\R
33f80 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 untimeException('Failed.to.load.
33fa0 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 73 76 6e 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e '.$this->url.',.svn.was.not.foun
33fc0 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e d,.check.that.it.is.installed.an
33fe0 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 d.in.your.PATH.env.'..."\n\n"...
34000 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
34020 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f );.}..throw.new.\RuntimeExceptio
34040 6e 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f n(.'Repository.'.$this->url.'.co
34060 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d uld.not.be.processed,.'.$e->getM
34080 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 essage().);.}.}..........protect
340a0 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 24 62 61 73 ed.function.buildIdentifier($bas
340c0 65 44 69 72 2c 20 24 72 65 76 69 73 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 eDir,.$revision).{.return.rtrim(
340e0 24 62 61 73 65 44 69 72 2c 20 27 2f 27 29 20 2e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 $baseDir,.'/')...$this->packageP
34100 61 74 68 20 2e 20 27 2f 40 27 20 2e 20 24 72 65 76 69 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ath...'/@'...$revision;.}.}.<?ph
34120 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
34140 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f Repository\Vcs;..use.Composer\IO
34160 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 63 73 44 \IOInterface;.....interface.VcsD
34180 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 riverInterface.{....public.funct
341a0 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ion.initialize();........public.
341c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 function.getComposerInformation(
341e0 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $identifier);.......public.funct
34200 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 ion.getRootIdentifier();.......p
34220 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 0a ublic.function.getBranches();...
34240 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 3b 0a 0a ....public.function.getTags();..
34260 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 ....public.function.getDist($ide
34280 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ntifier);......public.function.g
342a0 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 etSource($identifier);.......pub
342c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 lic.function.getUrl();.........p
342e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 ublic.function.hasComposerFile($
34300 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 identifier);..........public.sta
34320 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 tic.function.supports(IOInterfac
34340 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c e.$io,.$url,.$deep.=.false);.}.<
34360 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
34380 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Repository\Vcs;..use.Composer
343a0 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 \Json\JsonFile;.use.Composer\Uti
343c0 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c l\ProcessExecutor;.use.Composer\
343e0 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f Util\Filesystem;.use.Composer\IO
34400 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 72 69 76 65 72 \IOInterface;.....class.HgDriver
34420 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 .extends.VcsDriver.{.protected.$
34440 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 tags;.protected.$branches;.prote
34460 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 cted.$rootIdentifier;.protected.
34480 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d $repoDir;.protected.$infoCache.=
344a0 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e .array();.....public.function.in
344c0 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c itialize().{.if.(static::isLocal
344e0 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 Url($this->url)).{.$this->repoDi
34500 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 r.=.str_replace('file://',.'',.$
34520 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d this->url);.}.else.{.$cacheDir.=
34540 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 .$this->config->get('cache-vcs-d
34560 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 61 63 68 65 44 69 72 ir');.$this->repoDir.=.$cacheDir
34580 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 ...'/'...preg_replace('{[^a-z0-9
345a0 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 ]}i',.'-',.$this->url)...'/';..$
345c0 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 fs.=.new.Filesystem();.$fs->ensu
345e0 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 69 72 29 3b 0a 0a 69 reDirectoryExists($cacheDir);..i
34600 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 f.(!is_writable(dirname($this->r
34620 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 epoDir))).{.throw.new.\RuntimeEx
34640 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e ception('Can.not.clone.'.$this->
34660 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 url.'.to.access.package.informat
34680 69 6f 6e 2e 20 54 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f ion..The."'.$cacheDir.'".directo
346a0 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e ry.is.not.writable.by.the.curren
346c0 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 t.user.');.}....if.(is_dir($this
346e0 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 ->repoDir).&&.0.===.$this->proce
34700 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 ss->execute('hg.summary',.$outpu
34720 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 t,.$this->repoDir)).{.if.(0.!==.
34740 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 70 75 6c 6c $this->process->execute('hg.pull
34760 20 2d 75 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 .-u',.$output,.$this->repoDir)).
34780 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 {.$this->io->write('<error>Faile
347a0 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 6b d.to.update.'.$this->url.',.pack
347c0 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 69 age.information.from.this.reposi
347e0 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 74 68 69 73 2d 3e 70 tory.may.be.outdated.('.$this->p
34800 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2e 27 29 3c 2f 65 72 72 rocess->getErrorOutput().')</err
34820 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 44 or>');.}.}.else.{...$fs->removeD
34840 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 30 irectory($this->repoDir);..if.(0
34860 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 .!==.$this->process->execute(spr
34880 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 intf('hg.clone.%s.%s',.escapeshe
348a0 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 llarg($this->url),.escapeshellar
348c0 67 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 61 g($this->repoDir)),.$output,.$ca
348e0 63 68 65 44 69 72 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 cheDir)).{.$output.=.$this->proc
34900 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d ess->getErrorOutput();..if.(0.!=
34920 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 2d 2d =.$this->process->execute('hg.--
34940 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 version',.$ignoredOutput)).{.thr
34960 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 ow.new.\RuntimeException('Failed
34980 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 68 67 20 77 61 73 .to.clone.'.$this->url.',.hg.was
349a0 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 .not.found,.check.that.it.is.ins
349c0 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 talled.and.in.your.PATH.env.'...
349e0 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f "\n\n"...$this->process->getErro
34a00 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d rOutput());.}..throw.new.\Runtim
34a20 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 eException('Failed.to.clone.'.$t
34a40 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b 61 his->url.',.could.not.read.packa
34a60 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 3b ges.from.it'..."\n\n"..$output);
34a80 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d .}.}.}..$this->getTags();.$this-
34aa0 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >getBranches();.}.....public.fun
34ac0 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 ction.getRootIdentifier().{.if.(
34ae0 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 null.===.$this->rootIdentifier).
34b00 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 {.$this->process->execute(sprint
34b20 66 28 27 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 22 27 29 2c f('hg.tip.--template."{node}"'),
34b40 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 70 .$output,.$this->repoDir);.$outp
34b60 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 ut.=.$this->process->splitLines(
34b80 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 $output);.$this->rootIdentifier.
34ba0 3d 20 24 6f 75 74 70 75 74 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 =.$output[0];.}..return.$this->r
34bc0 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ootIdentifier;.}.....public.func
34be0 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 tion.getUrl().{.return.$this->ur
34c00 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 l;.}.....public.function.getSour
34c20 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 ce($identifier).{.return.array('
34c40 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 type'.=>.'hg',.'url'.=>.$this->g
34c60 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 etUrl(),.'reference'.=>.$identif
34c80 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 ier);.}.....public.function.getD
34ca0 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a ist($identifier).{.return.null;.
34cc0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 }.....public.function.getCompose
34ce0 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 rInformation($identifier).{.if.(
34d00 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 !isset($this->infoCache[$identif
34d20 69 65 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 ier])).{.$this->process->execute
34d40 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f 6d 70 6f 73 65 72 2e (sprintf('hg.cat.-r.%s.composer.
34d60 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 json',.escapeshellarg($identifie
34d80 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b r)),.$composer,.$this->repoDir);
34da0 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e ..if.(!trim($composer)).{.return
34dc0 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 ;.}..$composer.=.JsonFile::parse
34de0 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 Json($composer,.$identifier);..i
34e00 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a f.(!isset($composer['time'])).{.
34e20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 $this->process->execute(sprintf(
34e40 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 72 66 63 38 32 32 'hg.log.--template."{date|rfc822
34e60 64 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 date}".-r.%s',.escapeshellarg($i
34e80 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 dentifier)),.$output,.$this->rep
34ea0 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 74 72 69 oDir);.$date.=.new.\DateTime(tri
34ec0 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 m($output),.new.\DateTimeZone('U
34ee0 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 TC'));.$composer['time'].=.$date
34f00 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 ->format('Y-m-d.H:i:s');.}.$this
34f20 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 ->infoCache[$identifier].=.$comp
34f40 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 oser;.}..return.$this->infoCache
34f60 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$identifier];.}.....public.func
34f80 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 tion.getTags().{.if.(null.===.$t
34fa0 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 his->tags).{.$tags.=.array();..$
34fc0 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 74 61 67 73 27 this->process->execute('hg.tags'
34fe0 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 ,.$output,.$this->repoDir);.fore
35000 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 ach.($this->process->splitLines(
35020 24 6f 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 $output).as.$tag).{.if.($tag.&&.
35040 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a preg_match('(^([^\s]+)\s+\d+:(.*
35060 29 24 29 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 )$)',.$tag,.$match)).{.$tags[$ma
35080 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 tch[1]].=.$match[2];.}.}.unset($
350a0 74 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 tags['tip']);..$this->tags.=.$ta
350c0 67 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a gs;.}..return.$this->tags;.}....
350e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b .public.function.getBranches().{
35100 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b .if.(null.===.$this->branches).{
35120 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 .$branches.=.array();.$bookmarks
35140 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 .=.array();..$this->process->exe
35160 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 65 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 cute('hg.branches',.$output,.$th
35180 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 is->repoDir);.foreach.($this->pr
351a0 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 ocess->splitLines($output).as.$b
351c0 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 ranch).{.if.($branch.&&.preg_mat
351e0 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b 61 2d 66 30 2d 39 5d 2b 29 ch('(^([^\s]+)\s+\d+:([a-f0-9]+)
35200 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 )',.$branch,.$match)).{.$branche
35220 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 s[$match[1]].=.$match[2];.}.}..$
35240 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 6f 6f 6b 6d this->process->execute('hg.bookm
35260 61 72 6b 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b arks',.$output,.$this->repoDir);
35280 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c .foreach.($this->process->splitL
352a0 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 ines($output).as.$branch).{.if.(
352c0 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 3f 3a 5b 5c 73 2a $branch.&&.preg_match('(^(?:[\s*
352e0 5d 2a 29 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 62 72 61 6e ]*)([^\s]+)\s+\d+:(.*)$)',.$bran
35300 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b 24 6d 61 74 63 68 ch,.$match)).{.$bookmarks[$match
35320 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e [1]].=.$match[2];.}.}....$this->
35340 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f 6f 6b 6d 61 72 6b branches.=.array_merge($bookmark
35360 73 2c 20 24 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e s,.$branches);.}..return.$this->
35380 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 branches;.}.....public.static.fu
353a0 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c nction.supports(IOInterface.$io,
353c0 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 .$url,.$deep.=.false).{.if.(preg
353e0 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 3a 2f 2f 28 3f 3a 5b _match('#(^(?:https?|ssh)://(?:[
35400 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 3a 2f 2f 28 3f 3a 2e ^@]@)?bitbucket.org|https://(?:.
35420 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 *?)\.kilnhg.com)#i',.$url)).{.re
35440 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f turn.true;.}....if.(static::isLo
35460 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c calUrl($url)).{.if.(!is_dir($url
35480 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
354a0 28 27 44 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 ('Directory.does.not.exist:.'.$u
354c0 72 6c 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 rl);.}..$process.=.new.ProcessEx
354e0 65 63 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 ecutor();.$url.=.str_replace('fi
35500 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 le://',.'',.$url);...if.($proces
35520 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 s->execute('hg.summary',.$output
35540 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a ,.$url).===.0).{.return.true;.}.
35560 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d }..if.(!$deep).{.return.false;.}
35580 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 ..$processExecutor.=.new.Process
355a0 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 Executor();.$exit.=.$processExec
355c0 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 69 64 65 6e 74 69 utor->execute(sprintf('hg.identi
355e0 66 79 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 29 2c 20 24 fy.%s',.escapeshellarg($url)),.$
35600 69 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d 20 30 3b 0a 7d ignored);..return.$exit.===.0;.}
35620 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
35640 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 mposer\Repository\Vcs;..use.Comp
35660 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 oser\Downloader\TransportExcepti
35680 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d on;.use.Composer\Config;.use.Com
356a0 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 poser\IO\IOInterface;.use.Compos
356c0 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d er\Util\ProcessExecutor;.use.Com
356e0 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a poser\Util\RemoteFilesystem;....
35700 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c ...abstract.class.VcsDriver.impl
35720 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 ements.VcsDriverInterface.{.prot
35740 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 67 69 6e 55 72 6c ected.$url;.protected.$originUrl
35760 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 ;.protected.$repoConfig;.protect
35780 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 ed.$io;.protected.$config;.prote
357a0 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 cted.$process;.protected.$remote
357c0 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 70 75 62 6c Filesystem;...........final.publ
357e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 ic.function.__construct(array.$r
35800 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 epoConfig,.IOInterface.$io,.Conf
35820 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f ig.$config,.ProcessExecutor.$pro
35840 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 cess.=.null,.RemoteFilesystem.$r
35860 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 69 66 20 28 73 emoteFilesystem.=.null).{..if.(s
35880 65 6c 66 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c elf::isLocalUrl($repoConfig['url
358a0 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 65 61 6c '])).{.$repoConfig['url'].=.real
358c0 70 61 74 68 28 0a 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 66 69 6c 65 3a 5c 2f 5c 2f 2f path(.preg_replace('/^file:\/\//
358e0 27 2c 20 27 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 0a 29 3b 0a 7d 0a ',.'',.$repoConfig['url']).);.}.
35900 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d .$this->url.=.$repoConfig['url']
35920 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 ;.$this->originUrl.=.$repoConfig
35940 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 ['url'];.$this->repoConfig.=.$re
35960 70 6f 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 poConfig;.$this->io.=.$io;.$this
35980 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 ->config.=.$config;.$this->proce
359a0 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 ss.=.$process.?:.new.ProcessExec
359c0 75 74 6f 72 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 utor($io);.$this->remoteFilesyst
359e0 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 em.=.$remoteFilesystem.?:.new.Re
35a00 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 moteFilesystem($io);.}.....publi
35a20 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e c.function.hasComposerFile($iden
35a40 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 tifier).{.try.{.return.(bool).$t
35a60 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 his->getComposerInformation($ide
35a80 6e 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 ntifier);.}.catch.(TransportExce
35aa0 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ption.$e).{.}..return.false;.}..
35ac0 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 68 .......protected.function.getSch
35ae0 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 eme().{.if.(extension_loaded('op
35b00 65 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 65 enssl')).{.return.'https';.}..re
35b20 74 75 72 6e 20 27 68 74 74 70 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 turn.'http';.}.........protected
35b40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 .function.getContents($url).{.re
35b60 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 turn.$this->remoteFilesystem->ge
35b80 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 6c tContents($this->originUrl,.$url
35ba0 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 ,.false);.}.......protected.stat
35bc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 72 ic.function.isLocalUrl($url).{.r
35be0 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 eturn.(bool).preg_match('{^(file
35c00 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 75 72 6c 29 3b 0a ://|/|[a-z]:[\\\\/])}i',.$url);.
35c20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
35c40 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d omposer\Repository\Vcs;..use.Com
35c60 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 poser\Json\JsonFile;.use.Compose
35c80 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 42 69 r\IO\IOInterface;.....class.HgBi
35ca0 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a tbucketDriver.extends.VcsDriver.
35cc0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 {.protected.$owner;.protected.$r
35ce0 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 epository;.protected.$tags;.prot
35d00 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 ected.$branches;.protected.$root
35d20 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 Identifier;.protected.$infoCache
35d40 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.array();.....public.function.
35d60 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 initialize().{.preg_match('#^htt
35d80 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f ps://bitbucket\.org/([^/]+)/([^/
35da0 5d 2b 29 2f 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 ]+)/?$#',.$this->url,.$match);.$
35dc0 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e this->owner.=.$match[1];.$this->
35de0 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f repository.=.$match[2];.$this->o
35e00 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a riginUrl.=.'bitbucket.org';.}...
35e20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 ..public.function.getRootIdentif
35e40 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 ier().{.if.(null.===.$this->root
35e60 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d Identifier).{.$resource.=.$this-
35e80 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
35ea0 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f /api/1.0/repositories/'.$this->o
35ec0 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 wner.'/'.$this->repository.'/tag
35ee0 73 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a s';.$repoData.=.JsonFile::parseJ
35f00 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 son($this->getContents($resource
35f20 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 ),.$resource);.if.(array().===.$
35f40 72 65 70 6f 44 61 74 61 20 7c 7c 20 21 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 74 69 repoData.||.!isset($repoData['ti
35f60 70 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 p'])).{.throw.new.\RuntimeExcept
35f80 69 6f 6e 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 ion($this->url.'.does.not.appear
35fa0 20 74 6f 20 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 75 .to.be.a.mercurial.repository,.u
35fc0 73 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 20 69 66 20 74 68 69 73 20 69 73 se.'.$this->url.'.git.if.this.is
35fe0 20 61 20 67 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d .a.git.bitbucket.repository');.}
36000 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 .$this->rootIdentifier.=.$repoDa
36020 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e ta['tip']['raw_node'];.}..return
36040 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 .$this->rootIdentifier;.}.....pu
36060 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 blic.function.getUrl().{.return.
36080 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $this->url;.}.....public.functio
360a0 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 n.getSource($identifier).{.retur
360c0 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e n.array('type'.=>.'hg',.'url'.=>
360e0 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e .$this->getUrl(),.'reference'.=>
36100 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$identifier);.}.....public.func
36120 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 75 72 6c tion.getDist($identifier).{.$url
36140 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 .=.$this->getScheme()...'://bitb
36160 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 ucket.org/'.$this->owner.'/'.$th
36180 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 6e 74 69 66 69 is->repository.'/get/'.$identifi
361a0 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 er.'.zip';..return.array('type'.
361c0 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 =>.'zip',.'url'.=>.$url,.'refere
361e0 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e nce'.=>.$identifier,.'shasum'.=>
36200 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 .'');.}.....public.function.getC
36220 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a omposerInformation($identifier).
36240 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 {.if.(!isset($this->infoCache[$i
36260 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 dentifier])).{.$resource.=.$this
36280 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 ->getScheme()...'://bitbucket.or
362a0 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e g/api/1.0/repositories/'.$this->
362c0 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 73 72 owner.'/'.$this->repository.'/sr
362e0 63 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 c/'.$identifier.'/composer.json'
36300 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f ;.$repoData.=.JsonFile::parseJso
36320 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c n($this->getContents($resource),
36340 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 21 61 72 72 61 79 .$resource);..........if.(!array
36360 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 64 61 74 61 27 2c 20 24 72 65 70 6f 44 61 74 61 29 29 20 _key_exists('data',.$repoData)).
36380 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c {.return;.}..$composer.=.JsonFil
363a0 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 70 6f 44 61 74 61 5b 27 64 61 74 61 27 5d 2c 20 e::parseJson($repoData['data'],.
363c0 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 $resource);..if.(!isset($compose
363e0 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d r['time'])).{.$resource.=.$this-
36400 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
36420 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f /api/1.0/repositories/'.$this->o
36440 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 wner.'/'.$this->repository.'/cha
36460 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 ngesets/'.$identifier;.$changese
36480 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 t.=.JsonFile::parseJson($this->g
364a0 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 etContents($resource),.$resource
364c0 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 );.$composer['time'].=.$changese
364e0 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 t['timestamp'];.}.$this->infoCac
36500 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a he[$identifier].=.$composer;.}..
36520 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 return.$this->infoCache[$identif
36540 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 ier];.}.....public.function.getT
36560 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 ags().{.if.(null.===.$this->tags
36580 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 ).{.$resource.=.$this->getScheme
365a0 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 ()...'://bitbucket.org/api/1.0/r
365c0 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 epositories/'.$this->owner.'/'.$
365e0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 this->repository.'/tags';.$tagsD
36600 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d ata.=.JsonFile::parseJson($this-
36620 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 >getContents($resource),.$resour
36640 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 ce);.$this->tags.=.array();.fore
36660 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 ach.($tagsData.as.$tag.=>.$data)
36680 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 .{.$this->tags[$tag].=.$data['ra
366a0 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 74 61 67 73 5b 27 74 w_node'];.}.unset($this->tags['t
366c0 69 70 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a ip']);.}..return.$this->tags;.}.
366e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 ....public.function.getBranches(
36700 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 ).{.if.(null.===.$this->branches
36720 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 ).{.$resource.=.$this->getScheme
36740 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 ()...'://bitbucket.org/api/1.0/r
36760 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 epositories/'.$this->owner.'/'.$
36780 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 this->repository.'/branches';.$b
367a0 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 ranchData.=.JsonFile::parseJson(
367c0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 $this->getContents($resource),.$
367e0 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 resource);.$this->branches.=.arr
36800 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 ay();.foreach.($branchData.as.$b
36820 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 ranch.=>.$data).{.$this->branche
36840 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a s[$branch].=.$data['raw_node'];.
36860 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a }.}..return.$this->branches;.}..
36880 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 ...public.static.function.suppor
368a0 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 ts(IOInterface.$io,.$url,.$deep.
368c0 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 =.false).{.if.(!preg_match('#^ht
368e0 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e tps://bitbucket\.org/([^/]+)/([^
36900 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 /]+)/?$#',.$url)).{.return.false
36920 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e ;.}..if.(!extension_loaded('open
36940 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b ssl')).{.if.($io->isVerbose()).{
36960 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 .$io->write('Skipping.Bitbucket.
36980 68 67 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 hg.driver.for.'.$url.'.because.t
369a0 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 he.OpenSSL.PHP.extension.is.miss
369c0 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 ing.');.}..return.false;.}..retu
369e0 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 rn.true;.}.}.<?php............na
36a00 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a mespace.Composer\Repository;....
36a20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 .....class.InstalledArrayReposit
36a40 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 ory.extends.WritableArrayReposit
36a60 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f ory.implements.InstalledReposito
36a80 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ryInterface.{.}.<?php...........
36aa0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a .namespace.Composer\Repository;.
36ac0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 ......class.RepositorySecurityEx
36ae0 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c ception.extends.\Exception.{.}.<
36b00 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
36b20 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 er\Repository;..use.Composer\Pac
36b40 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c kage\AliasPackage;.use.Composer\
36b60 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e Package\PackageInterface;.....in
36b80 74 65 72 66 61 63 65 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 terface.StreamableRepositoryInte
36ba0 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 rface.extends.RepositoryInterfac
36bc0 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 e.{.....................public.f
36be0 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a unction.getMinimalPackages();...
36c00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 .....public.function.loadPackage
36c20 28 61 72 72 61 79 20 24 64 61 74 61 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 (array.$data);.........public.fu
36c40 6e 63 74 69 6f 6e 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 nction.loadAliasPackage(array.$d
36c60 61 74 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 29 3b ata,.PackageInterface.$aliasOf);
36c80 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
36ca0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Repository;..use.Composer
36cc0 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a \Downloader\TransportException;.
36ce0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 use.Composer\Repository\Vcs\VcsD
36d00 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 riverInterface;.use.Composer\Pac
36d20 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 kage\Version\VersionParser;.use.
36d40 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 Composer\Package\Loader\ArrayLoa
36d60 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 der;.use.Composer\Package\Loader
36d80 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 \ValidatingArrayLoader;.use.Comp
36da0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 oser\Package\Loader\InvalidPacka
36dc0 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 geException;.use.Composer\Packag
36de0 65 5c 4c 6f 61 64 65 72 5c 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f e\Loader\LoaderInterface;.use.Co
36e00 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f mposer\IO\IOInterface;.use.Compo
36e20 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 63 73 52 65 70 6f 73 69 74 ser\Config;.....class.VcsReposit
36e40 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 ory.extends.ArrayRepository.{.pr
36e60 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 otected.$url;.protected.$package
36e80 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 3b 0a 70 72 6f 74 65 63 Name;.protected.$verbose;.protec
36ea0 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 ted.$io;.protected.$config;.prot
36ec0 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 ected.$versionParser;.protected.
36ee0 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 $type;.protected.$loader;.protec
36f00 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e ted.$repoConfig;.protected.$bran
36f20 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 6c 69 63 chErrorOccurred.=.false;..public
36f40 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 .function.__construct(array.$rep
36f60 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 oConfig,.IOInterface.$io,.Config
36f80 20 24 63 6f 6e 66 69 67 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 73 20 3d 20 6e 75 6c 6c 29 .$config,.array.$drivers.=.null)
36fa0 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 69 76 65 72 73 20 3f 3a 20 .{.$this->drivers.=.$drivers.?:.
36fc0 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 array(.'github'.=>.'Composer\Rep
36fe0 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d ository\Vcs\GitHubDriver',.'git-
37000 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f bitbucket'.=>.'Composer\Reposito
37020 72 79 5c 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 ry\Vcs\GitBitbucketDriver',.'git
37040 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 '.=>.'Composer\Repository\Vcs\Gi
37060 74 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d tDriver',.'hg-bitbucket'.=>.'Com
37080 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 poser\Repository\Vcs\HgBitbucket
370a0 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 Driver',.'hg'.=>.'Composer\Repos
370c0 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a 0a 20 27 73 76 6e 27 20 3d 3e 20 itory\Vcs\HgDriver',...'svn'.=>.
370e0 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 53 76 6e 44 72 69 76 'Composer\Repository\Vcs\SvnDriv
37100 65 72 27 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 er',.);..$this->url.=.$repoConfi
37120 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 g['url'];.$this->io.=.$io;.$this
37140 2d 3e 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 ->type.=.isset($repoConfig['type
37160 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 20 3a 20 27 76 63 73 ']).?.$repoConfig['type'].:.'vcs
37180 27 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 62 6f ';.$this->verbose.=.$io->isVerbo
371a0 73 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 se();.$this->config.=.$config;.$
371c0 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a this->repoConfig.=.$repoConfig;.
371e0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 65 72 28 4c 6f 61 }..public.function.setLoader(Loa
37200 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c derInterface.$loader).{.$this->l
37220 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 oader.=.$loader;.}..public.funct
37240 69 6f 6e 20 67 65 74 44 72 69 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 ion.getDriver().{.if.(isset($thi
37260 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 29 29 20 7b 0a 24 63 6c 61 s->drivers[$this->type])).{.$cla
37280 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d ss.=.$this->drivers[$this->type]
372a0 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 72 65 ;.$driver.=.new.$class($this->re
372c0 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 poConfig,.$this->io,.$this->conf
372e0 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 ig);.$driver->initialize();..ret
37300 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e urn.$driver;.}..foreach.($this->
37320 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 drivers.as.$driver).{.if.($drive
37340 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 r::supports($this->io,.$this->ur
37360 6c 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 l)).{.$driver.=.new.$driver($thi
37380 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d s->repoConfig,.$this->io,.$this-
373a0 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b >config);.$driver->initialize();
373c0 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 ..return.$driver;.}.}..foreach.(
373e0 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 $this->drivers.as.$driver).{.if.
37400 28 24 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 ($driver::supports($this->io,.$t
37420 68 69 73 2d 3e 75 72 6c 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 his->url,.true)).{.$driver.=.new
37440 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 .$driver($this->repoConfig,.$thi
37460 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e s->io,.$this->config);.$driver->
37480 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d initialize();..return.$driver;.}
374a0 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 64 49 6e 76 61 6c 69 64 .}.}..public.function.hadInvalid
374c0 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 Branches().{.return.$this->branc
374e0 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e hErrorOccurred;.}..protected.fun
37500 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 ction.initialize().{.parent::ini
37520 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 62 6f 73 65 20 3d 20 24 74 68 69 73 2d 3e 76 65 tialize();..$verbose.=.$this->ve
37540 72 62 6f 73 65 3b 0a 0a 24 64 72 69 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 72 69 76 rbose;..$driver.=.$this->getDriv
37560 65 72 28 29 3b 0a 69 66 20 28 21 24 64 72 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 er();.if.(!$driver).{.throw.new.
37580 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 64 72 \InvalidArgumentException('No.dr
375a0 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 56 43 53 20 72 65 70 6f 73 69 74 iver.found.to.handle.VCS.reposit
375c0 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 65 72 ory.'.$this->url);.}..$this->ver
375e0 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a sionParser.=.new.VersionParser;.
37600 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 if.(!$this->loader).{.$this->loa
37620 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e 76 65 72 der.=.new.ArrayLoader($this->ver
37640 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 72 69 76 65 sionParser);.}..try.{.if.($drive
37660 72 2d 3e 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 r->hasComposerFile($driver->getR
37680 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 72 69 ootIdentifier())).{.$data.=.$dri
376a0 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 64 72 69 ver->getComposerInformation($dri
376c0 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 3b 0a 24 74 68 69 73 ver->getRootIdentifier());.$this
376e0 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 61 ->packageName.=.!empty($data['na
37700 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a me']).?.$data['name'].:.null;.}.
37720 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 }.catch.(\Exception.$e).{.if.($v
37740 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 erbose).{.$this->io->write('<err
37760 6f 72 3e 53 6b 69 70 70 65 64 20 70 61 72 73 69 6e 67 20 27 2e 24 64 72 69 76 65 72 2d 3e 67 65 or>Skipped.parsing.'.$driver->ge
37780 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 tRootIdentifier().',.'.$e->getMe
377a0 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 ssage().'</error>');.}.}..foreac
377c0 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 20 61 73 20 24 74 61 67 20 3d 3e h.($driver->getTags().as.$tag.=>
377e0 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 .$identifier).{.$msg.=.'Reading.
37800 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 composer.json.of.<info>'...($thi
37820 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 s->packageName.?:.$this->url)...
37840 27 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 61 67 20 2e 20 27 3c '</info>.(<comment>'...$tag...'<
37860 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 /comment>)';.if.($verbose).{.$th
37880 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 is->io->write($msg);.}.else.{.$t
378a0 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b his->io->overwrite($msg,.false);
378c0 0a 7d 0a 0a 0a 20 24 74 61 67 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 72 65 6c 65 61 73 .}....$tag.=.str_replace('releas
378e0 65 2d 27 2c 20 27 27 2c 20 24 74 61 67 29 3b 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 54 61 67 e-',.'',.$tag);..if.(!$parsedTag
37900 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 61 67 28 24 74 61 67 29 29 20 7b 0a 69 .=.$this->validateTag($tag)).{.i
37920 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 f.($verbose).{.$this->io->write(
37940 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 '<warning>Skipped.tag.'.$tag.',.
37960 69 6e 76 61 6c 69 64 20 74 61 67 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a invalid.tag.name</warning>');.}.
37980 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 continue;.}..try.{.if.(!$data.=.
379a0 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 $driver->getComposerInformation(
379c0 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a $identifier)).{.if.($verbose).{.
379e0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 $this->io->write('<warning>Skipp
37a00 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c ed.tag.'.$tag.',.no.composer.fil
37a20 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 e</warning>');.}.continue;.}....
37a40 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 if.(isset($data['version'])).{.$
37a60 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 74 68 data['version_normalized'].=.$th
37a80 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 64 61 is->versionParser->normalize($da
37aa0 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 64 61 74 61 ta['version']);.}.else.{...$data
37ac0 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 74 61 67 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 ['version'].=.$tag;.$data['versi
37ae0 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 54 61 67 3b 0a 7d 0a on_normalized'].=.$parsedTag;.}.
37b00 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 ...$data['version'].=.preg_repla
37b20 63 65 28 27 7b 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 ce('{[.-]?dev$}i',.'',.$data['ve
37b40 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 rsion']);.$data['version_normali
37b60 7a 65 64 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e zed'].=.preg_replace('{(^dev-|[.
37b80 2d 5d 3f 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f -]?dev$)}i',.'',.$data['version_
37ba0 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 69 66 20 28 24 64 61 74 61 5b 27 76 65 72 normalized']);....if.($data['ver
37bc0 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 21 3d 3d 20 24 70 61 72 73 65 64 54 61 67 sion_normalized'].!==.$parsedTag
37be0 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 ).{.if.($verbose).{.$this->io->w
37c00 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 rite('<warning>Skipped.tag.'.$ta
37c20 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 54 61 67 2e 27 29 20 64 6f 65 73 20 6e g.',.tag.('.$parsedTag.').does.n
37c40 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 ot.match.version.('.$data['versi
37c60 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a on_normalized'].').in.composer.j
37c80 73 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a son</warning>');.}.continue;.}..
37ca0 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 if.($verbose).{.$this->io->write
37cc0 28 27 49 6d 70 6f 72 74 69 6e 67 20 74 61 67 20 27 2e 24 74 61 67 2e 27 20 28 27 2e 24 64 61 74 ('Importing.tag.'.$tag.'.('.$dat
37ce0 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 27 29 3b 0a 7d 0a a['version_normalized'].')');.}.
37d00 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 .$this->addPackage($this->loader
37d20 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 ->load($this->preProcess($driver
37d40 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 ,.$data,.$identifier)));.}.catch
37d60 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 .(\Exception.$e).{.if.($verbose)
37d80 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b .{.$this->io->write('<warning>Sk
37da0 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e ipped.tag.'.$tag.',.'.($e.instan
37dc0 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f ceof.TransportException.?.'no.co
37de0 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 mposer.file.was.found'.:.$e->get
37e00 4d 65 73 73 61 67 65 28 29 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 Message()).'</warning>');.}.cont
37e20 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 inue;.}.}..if.(!$verbose).{.$thi
37e40 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a s->io->overwrite('',.false);.}..
37e60 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 20 foreach.($driver->getBranches().
37e80 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 as.$branch.=>.$identifier).{.$ms
37ea0 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 g.=.'Reading.composer.json.of.<i
37ec0 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 nfo>'...($this->packageName.?:.$
37ee0 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e this->url)...'</info>.(<comment>
37f00 27 20 2e 20 24 62 72 61 6e 63 68 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 '...$branch...'</comment>)';.if.
37f20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d ($verbose).{.$this->io->write($m
37f40 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 sg);.}.else.{.$this->io->overwri
37f60 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 te($msg,.false);.}..if.(!$parsed
37f80 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 Branch.=.$this->validateBranch($
37fa0 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 branch)).{.if.($verbose).{.$this
37fc0 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 ->io->write('<warning>Skipped.br
37fe0 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 69 6e 76 61 6c 69 64 20 6e 61 6d 65 3c 2f anch.'.$branch.',.invalid.name</
38000 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b warning>');.}.continue;.}..try.{
38020 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 .if.(!$data.=.$driver->getCompos
38040 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 erInformation($identifier)).{.if
38060 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 .($verbose).{.$this->io->write('
38080 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 <warning>Skipped.branch.'.$branc
380a0 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 h.',.no.composer.file</warning>'
380c0 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 );.}.continue;.}....$data['versi
380e0 6f 6e 27 5d 20 3d 20 24 62 72 61 6e 63 68 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e on'].=.$branch;.$data['version_n
38100 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 3b 0a 0a 0a 20 ormalized'].=.$parsedBranch;....
38120 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 72 73 65 64 42 72 61 if.('dev-'.===.substr($parsedBra
38140 6e 63 68 2c 20 30 2c 20 34 29 20 7c 7c 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 nch,.0,.4).||.'9999999-dev'.===.
38160 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 $parsedBranch).{.$data['version'
38180 5d 20 3d 20 27 64 65 76 2d 27 20 2e 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d ].=.'dev-'...$data['version'];.}
381a0 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f .else.{.$data['version'].=.preg_
381c0 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 70 61 replace('{(\.9{7})+}',.'.x',.$pa
381e0 72 73 65 64 42 72 61 6e 63 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a rsedBranch);.}..if.($verbose).{.
38200 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f 72 74 69 6e 67 20 62 72 61 6e $this->io->write('Importing.bran
38220 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e ch.'.$branch.'.('.$data['version
38240 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 44 61 74 61 20 3d 20 24 74 68 69 73 '].')');.}..$packageData.=.$this
38260 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 ->preProcess($driver,.$data,.$id
38280 65 6e 74 69 66 69 65 72 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 entifier);.$package.=.$this->loa
382a0 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 69 66 20 28 24 74 68 der->load($packageData);.if.($th
382c0 69 73 2d 3e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 56 61 6c 69 64 61 74 69 6e 67 is->loader.instanceof.Validating
382e0 41 72 72 61 79 4c 6f 61 64 65 72 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 ArrayLoader.&&.$this->loader->ge
38300 74 57 61 72 6e 69 6e 67 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 tWarnings()).{.throw.new.Invalid
38320 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e PackageException($this->loader->
38340 67 65 74 45 72 72 6f 72 73 28 29 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 57 getErrors(),.$this->loader->getW
38360 61 72 6e 69 6e 67 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 7d 0a 24 74 68 69 arnings(),.$packageData);.}.$thi
38380 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 63 61 74 63 68 s->addPackage($package);.}.catch
383a0 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 .(TransportException.$e).{.if.($
383c0 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 verbose).{.$this->io->write('<wa
383e0 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 rning>Skipped.branch.'.$branch.'
38400 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 3c 2f 77 61 ,.no.composer.file.was.found</wa
38420 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 63 61 74 63 68 20 28 5c rning>');.}.continue;.}.catch.(\
38440 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b Exception.$e).{.if.(!$verbose).{
38460 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e .$this->io->write('');.}.$this->
38480 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 branchErrorOccurred.=.true;.$thi
384a0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 70 65 64 20 62 72 61 s->io->write('<error>Skipped.bra
384c0 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 nch.'.$branch.',.'.$e->getMessag
384e0 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 e().'</error>');.$this->io->writ
38500 65 28 27 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 62 e('');.continue;.}.}..if.(!$verb
38520 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 27 2c 20 ose).{.$this->io->overwrite('',.
38540 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 false);.}..if.(!$this->getPackag
38560 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 es()).{.throw.new.InvalidReposit
38580 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 76 61 6c 69 64 20 63 6f 6d 70 6f 73 65 72 2e oryException('No.valid.composer.
385a0 6a 73 6f 6e 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 62 72 61 6e 63 68 20 6f 72 20 json.was.found.in.any.branch.or.
385c0 74 61 67 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 tag.of.'.$this->url.',.could.not
385e0 20 6c 6f 61 64 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 69 74 2e 27 29 3b 0a 7d 0a 7d 0a .load.a.package.from.it.');.}.}.
38600 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 50 72 6f 63 65 73 73 28 56 63 73 .private.function.preProcess(Vcs
38620 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 72 69 76 65 72 2c 20 61 72 72 61 79 20 24 DriverInterface.$driver,.array.$
38640 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 0a 20 24 64 61 74 61 5b 27 6e 61 data,.$identifier).{...$data['na
38660 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 64 61 me'].=.$this->packageName.?:.$da
38680 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 64 ta['name'];..if.(!isset($data['d
386a0 69 73 74 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 20 3d 20 24 64 72 69 76 65 ist'])).{.$data['dist'].=.$drive
386c0 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 21 r->getDist($identifier);.}.if.(!
386e0 69 73 73 65 74 28 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b isset($data['source'])).{.$data[
38700 27 73 6f 75 72 63 65 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 'source'].=.$driver->getSource($
38720 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a identifier);.}..return.$data;.}.
38740 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 .private.function.validateBranch
38760 28 24 62 72 61 6e 63 68 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ($branch).{.try.{.return.$this->
38780 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 versionParser->normalizeBranch($
387a0 62 72 61 6e 63 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 branch);.}.catch.(\Exception.$e)
387c0 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 .{.}..return.false;.}..private.f
387e0 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 61 67 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a unction.validateTag($version).{.
38800 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 try.{.return.$this->versionParse
38820 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 r->normalize($version);.}.catch.
38840 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 (\Exception.$e).{.}..return.fals
38860 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 e;.}.}.<?php............namespac
38880 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 e.Composer\Repository;..use.Comp
388a0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 oser\Package\CompletePackage;.us
388c0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 e.Composer\Package\Version\Versi
388e0 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c onParser;.use.Composer\Plugin\Pl
38900 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 uginInterface;.....class.Platfor
38920 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 mRepository.extends.ArrayReposit
38940 6f 72 79 0a 7b 0a 63 6f 6e 73 74 20 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 ory.{.const.PLATFORM_PACKAGE_REG
38960 45 58 20 3d 20 27 7b 5e 28 3f 3a 70 68 70 28 3f 3a 2d 36 34 62 69 74 29 3f 7c 28 3f 3a 65 78 74 EX.=.'{^(?:php(?:-64bit)?|(?:ext
38980 7c 6c 69 62 29 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e |lib)-[^/]+)$}i';..protected.fun
389a0 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 ction.initialize().{.parent::ini
389c0 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 tialize();..$versionParser.=.new
389e0 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f .VersionParser();..$prettyVersio
38a00 6e 20 3d 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f n.=.PluginInterface::PLUGIN_API_
38a20 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 VERSION;.$version.=.$versionPars
38a40 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 er->normalize($prettyVersion);.$
38a60 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 composerPluginApi.=.new.Complete
38a80 50 61 63 6b 61 67 65 28 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 2c 20 24 Package('composer-plugin-api',.$
38aa0 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6d 70 6f version,.$prettyVersion);.$compo
38ac0 73 65 72 50 6c 75 67 69 6e 41 70 69 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 serPluginApi->setDescription('Th
38ae0 65 20 43 6f 6d 70 6f 73 65 72 20 50 6c 75 67 69 6e 20 41 50 49 27 29 3b 0a 70 61 72 65 6e 74 3a e.Composer.Plugin.API');.parent:
38b00 3a 61 64 64 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 29 3b :addPackage($composerPluginApi);
38b20 0a 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f 56 45 52 ..try.{.$prettyVersion.=.PHP_VER
38b40 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d SION;.$version.=.$versionParser-
38b60 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 >normalize($prettyVersion);.}.ca
38b80 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 tch.(\UnexpectedValueException.$
38ba0 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 e).{.$prettyVersion.=.preg_repla
38bc0 63 65 28 27 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 5f ce('#^([^~+-]+).*$#',.'$1',.PHP_
38be0 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 VERSION);.$version.=.$versionPar
38c00 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a ser->normalize($prettyVersion);.
38c20 7d 0a 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 }...$php.=.new.CompletePackage('
38c40 70 68 70 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b php',.$version,.$prettyVersion);
38c60 0a 24 70 68 70 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 69 .$php->setDescription('The.PHP.i
38c80 6e 74 65 72 70 72 65 74 65 72 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 nterpreter');.parent::addPackage
38ca0 28 24 70 68 70 29 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 3d 3d 3d 20 38 29 ($php);..if.(PHP_INT_SIZE.===.8)
38cc0 20 7b 0a 24 70 68 70 36 34 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 .{.$php64.=.new.CompletePackage(
38ce0 27 70 68 70 2d 36 34 62 69 74 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 'php-64bit',.$version,.$prettyVe
38d00 72 73 69 6f 6e 29 3b 0a 24 70 68 70 36 34 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 rsion);.$php64->setDescription('
38d20 54 68 65 20 50 48 50 20 69 6e 74 65 72 70 72 65 74 65 72 20 28 36 34 62 69 74 29 27 29 3b 0a 70 The.PHP.interpreter.(64bit)');.p
38d40 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 70 36 34 29 3b 0a 7d 0a 0a 24 6c arent::addPackage($php64);.}..$l
38d60 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 oadedExtensions.=.get_loaded_ext
38d80 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 ensions();....foreach.($loadedEx
38da0 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 tensions.as.$name).{.if.(in_arra
38dc0 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 73 74 61 6e 64 61 72 64 27 2c 20 27 43 6f 72 65 y($name,.array('standard',.'Core
38de0 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 66 6c 45 78 74 20 3d 20 6e '))).{.continue;.}..$reflExt.=.n
38e00 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a ew.\ReflectionExtension($name);.
38e20 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 66 6c 45 78 74 2d try.{.$prettyVersion.=.$reflExt-
38e40 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 >getVersion();.$version.=.$versi
38e60 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 onParser->normalize($prettyVersi
38e80 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 on);.}.catch.(\UnexpectedValueEx
38ea0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 27 ception.$e).{.$prettyVersion.=.'
38ec0 30 27 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 0';.$version.=.$versionParser->n
38ee0 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 65 78 ormalize($prettyVersion);.}..$ex
38f00 74 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 65 78 74 2d 27 2e 24 t.=.new.CompletePackage('ext-'.$
38f20 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b name,.$version,.$prettyVersion);
38f40 0a 24 65 78 74 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 .$ext->setDescription('The.'.$na
38f60 6d 65 2e 27 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 me.'.PHP.extension');.parent::ad
38f80 64 50 61 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 dPackage($ext);.}........foreach
38fa0 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a .($loadedExtensions.as.$name).{.
38fc0 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 73 77 69 74 63 68 20 28 24 $prettyVersion.=.null;.switch.($
38fe0 6e 61 6d 65 29 20 7b 0a 63 61 73 65 20 27 63 75 72 6c 27 3a 0a 24 63 75 72 6c 56 65 72 73 69 6f name).{.case.'curl':.$curlVersio
39000 6e 20 3d 20 63 75 72 6c 5f 76 65 72 73 69 6f 6e 28 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 n.=.curl_version();.$prettyVersi
39020 6f 6e 20 3d 20 24 63 75 72 6c 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 62 72 on.=.$curlVersion['version'];.br
39040 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 63 6f 6e 76 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 eak;..case.'iconv':.$prettyVersi
39060 6f 6e 20 3d 20 49 43 4f 4e 56 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 on.=.ICONV_VERSION;.break;..case
39080 20 27 69 6e 74 6c 27 3a 0a 24 6e 61 6d 65 20 3d 20 27 49 43 55 27 3b 0a 69 66 20 28 64 65 66 69 .'intl':.$name.=.'ICU';.if.(defi
390a0 6e 65 64 28 27 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 70 72 65 74 ned('INTL_ICU_VERSION')).{.$pret
390c0 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 tyVersion.=.INTL_ICU_VERSION;.}.
390e0 65 6c 73 65 20 7b 0a 24 72 65 66 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 else.{.$reflector.=.new.\Reflect
39100 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 74 6c 27 29 3b 0a 0a 6f 62 5f 73 74 61 72 74 28 ionExtension('intl');..ob_start(
39120 29 3b 0a 24 72 65 66 6c 65 63 74 6f 72 2d 3e 69 6e 66 6f 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d );.$reflector->info();.$output.=
39140 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e .ob_get_clean();..preg_match('/^
39160 49 43 55 20 76 65 72 73 69 6f 6e 20 3d 3e 20 28 2e 2a 29 24 2f 6d 27 2c 20 24 6f 75 74 70 75 74 ICU.version.=>.(.*)$/m',.$output
39180 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 6d ,.$matches);.$prettyVersion.=.$m
391a0 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6c 69 62 78 atches[1];.}..break;..case.'libx
391c0 6d 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 4d 4c 5f 44 4f 54 ml':.$prettyVersion.=.LIBXML_DOT
391e0 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 TED_VERSION;.break;..case.'opens
39200 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 sl':.$prettyVersion.=.preg_repla
39220 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 5e 28 3f 3a 4f 70 65 6e 53 53 4c 5c 73 2a 29 3f 28 5b ce_callback('{^(?:OpenSSL\s*)?([
39240 30 2d 39 2e 5d 2b 29 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 0-9.]+)([a-z]?).*}',.function.($
39260 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 28 65 6d 70 match).{.return.$match[1]...(emp
39280 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 20 3f 20 27 27 20 3a 20 27 2e 27 2e 28 6f 72 64 28 24 6d ty($match[2]).?.''.:.'.'.(ord($m
392a0 61 74 63 68 5b 32 5d 29 20 2d 20 39 36 29 29 3b 0a 7d 2c 20 4f 50 45 4e 53 53 4c 5f 56 45 52 53 atch[2]).-.96));.},.OPENSSL_VERS
392c0 49 4f 4e 5f 54 45 58 54 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 63 72 65 27 3a 0a ION_TEXT);.break;..case.'pcre':.
392e0 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b $prettyVersion.=.preg_replace('{
39300 5e 28 5c 53 2b 29 2e 2a 7d 27 2c 20 27 24 31 27 2c 20 50 43 52 45 5f 56 45 52 53 49 4f 4e 29 3b ^(\S+).*}',.'$1',.PCRE_VERSION);
39320 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 75 69 64 27 3a 0a 24 70 72 65 74 74 79 56 65 72 .break;..case.'uuid':.$prettyVer
39340 73 69 6f 6e 20 3d 20 70 68 70 76 65 72 73 69 6f 6e 28 27 75 75 69 64 27 29 3b 0a 62 72 65 61 6b sion.=.phpversion('uuid');.break
39360 3b 0a 0a 63 61 73 65 20 27 78 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 ;..case.'xsl':.$prettyVersion.=.
39380 4c 49 42 58 53 4c 54 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a LIBXSLT_DOTTED_VERSION;.break;..
393a0 64 65 66 61 75 6c 74 3a 0a 0a 20 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 0a 74 72 79 20 7b 0a default:...continue.2;.}..try.{.
393c0 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 $version.=.$versionParser->norma
393e0 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c lize($prettyVersion);.}.catch.(\
39400 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 63 UnexpectedValueException.$e).{.c
39420 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 62 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 ontinue;.}..$lib.=.new.CompleteP
39440 61 63 6b 61 67 65 28 27 6c 69 62 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 ackage('lib-'.$name,.$version,.$
39460 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 6c 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 prettyVersion);.$lib->setDescrip
39480 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 tion('The.'.$name.'.PHP.library'
394a0 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 7d );.parent::addPackage($lib);.}.}
394c0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
394e0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 mposer\Repository;.......class.I
39500 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 nstalledFilesystemRepository.ext
39520 65 6e 64 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d ends.FilesystemRepository.implem
39540 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 ents.InstalledRepositoryInterfac
39560 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 e.{.}.<?php............namespace
39580 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f .Composer\Repository;..use.Compo
395a0 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a ser\Package\PackageInterface;...
395c0 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 69 6d ....class.CompositeRepository.im
395e0 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a plements.RepositoryInterface.{..
39600 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 ...private.$repositories;......p
39620 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 ublic.function.__construct(array
39640 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 .$repositories).{.$this->reposit
39660 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 ories.=.array();.foreach.($repos
39680 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 itories.as.$repo).{.$this->addRe
396a0 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 pository($repo);.}.}.......publi
396c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 c.function.getRepositories().{.r
396e0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a eturn.$this->repositories;.}....
39700 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b .public.function.hasPackage(Pack
39720 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 ageInterface.$package).{.foreach
39740 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 .($this->repositories.as.$reposi
39760 74 6f 72 79 29 20 7b 0a 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 tory).{..if.($repository->hasPac
39780 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d kage($package)).{.return.true;.}
397a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .}..return.false;.}.....public.f
397c0 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 unction.findPackage($name,.$vers
397e0 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 ion).{.foreach.($this->repositor
39800 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 20 ies.as.$repository).{..$package.
39820 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 =.$repository->findPackage($name
39840 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 ,.$version);.if.(null.!==.$packa
39860 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ge).{.return.$package;.}.}..retu
39880 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 rn.null;.}.....public.function.f
398a0 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 indPackages($name,.$version.=.nu
398c0 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 ll).{.$packages.=.array();.forea
398e0 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f ch.($this->repositories.as.$repo
39900 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 sitory).{..$packages[].=.$reposi
39920 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 tory->findPackages($name,.$versi
39940 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 61 6c 6c 5f on);.}..return.$packages.?.call_
39960 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 user_func_array('array_merge',.$
39980 70 61 63 6b 61 67 65 73 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 packages).:.array();.}.....publi
399a0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 c.function.search($query,.$mode.
399c0 3d 20 30 29 0a 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 =.0).{.$matches.=.array();.forea
399e0 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f ch.($this->repositories.as.$repo
39a00 73 69 74 6f 72 79 29 20 7b 0a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 sitory).{..$matches[].=.$reposit
39a20 6f 72 79 2d 3e 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 72 ory->search($query,.$mode);.}..r
39a40 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 20 3f 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f eturn.$matches.?.call_user_func_
39a60 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 6d 61 74 63 68 65 73 29 20 3a array('array_merge',.$matches).:
39a80 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .array();.}.....public.function.
39aa0 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 filterPackages($callback,.$class
39ac0 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b .=.'Composer\Package\Package').{
39ae0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 .foreach.($this->repositories.as
39b00 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 .$repository).{.if.(false.===.$r
39b20 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 epository->filterPackages($callb
39b40 61 63 6b 2c 20 24 63 6c 61 73 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a ack,.$class)).{.return.false;.}.
39b60 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e }..return.true;.}.....public.fun
39b80 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 ction.getPackages().{.$packages.
39ba0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 =.array();.foreach.($this->repos
39bc0 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b itories.as.$repository).{..$pack
39be0 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 ages[].=.$repository->getPackage
39c00 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 61 6c 6c 5f s();.}..return.$packages.?.call_
39c20 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 user_func_array('array_merge',.$
39c40 70 61 63 6b 61 67 65 73 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 packages).:.array();.}.....publi
39c60 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 c.function.removePackage(Package
39c80 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 Interface.$package).{.foreach.($
39ca0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 this->repositories.as.$repositor
39cc0 79 29 20 7b 0a 0a 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 y).{..$repository->removePackage
39ce0 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ($package);.}.}.....public.funct
39d00 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 3b 0a 66 6f 72 65 61 63 ion.count().{.$total.=.0;.foreac
39d20 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 h.($this->repositories.as.$repos
39d40 69 74 6f 72 79 29 20 7b 0a 0a 24 74 6f 74 61 6c 20 2b 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d itory).{..$total.+=.$repository-
39d60 3e 63 6f 75 6e 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a >count();.}..return.$total;.}...
39d80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
39da0 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 (RepositoryInterface.$repository
39dc0 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 ).{.if.($repository.instanceof.s
39de0 65 6c 66 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 elf).{.foreach.($repository->get
39e00 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 Repositories().as.$repo).{.$this
39e20 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 20 65 6c 73 65 ->addRepository($repo);.}.}.else
39e40 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f .{.$this->repositories[].=.$repo
39e60 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e sitory;.}.}.}.<?php............n
39e80 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a amespace.Composer\Repository;...
39ea0 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 ......interface.InstalledReposit
39ec0 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 52 65 70 oryInterface.extends.WritableRep
39ee0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ositoryInterface.{.}.<?php......
39f00 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 ......namespace.Composer\Reposit
39f20 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 ory;..use.Composer\Package\Loade
39f40 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b r\ArrayLoader;.use.Composer\Pack
39f60 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 age\PackageInterface;.use.Compos
39f80 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d er\Package\AliasPackage;.use.Com
39fa0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 poser\Package\Version\VersionPar
39fc0 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f ser;.use.Composer\DependencyReso
39fe0 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f lver\Pool;.use.Composer\Json\Jso
3a000 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 nFile;.use.Composer\Cache;.use.C
3a020 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c omposer\Config;.use.Composer\IO\
3a040 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 IOInterface;.use.Composer\Util\R
3a060 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f emoteFilesystem;.....class.Compo
3a080 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 serRepository.extends.ArrayRepos
3a0a0 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 itory.implements.StreamableRepos
3a0c0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 itoryInterface.{.protected.$conf
3a0e0 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 ig;.protected.$options;.protecte
3a100 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 d.$url;.protected.$baseUrl;.prot
3a120 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 ected.$io;.protected.$rfs;.prote
3a140 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 79 55 72 cted.$cache;.protected.$notifyUr
3a160 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 61 72 63 68 55 72 6c 3b 0a 70 72 6f 74 65 63 74 l;.protected.$searchUrl;.protect
3a180 65 64 20 24 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 ed.$hasProviders.=.false;.protec
3a1a0 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 ted.$providersUrl;.protected.$pr
3a1c0 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 oviderListing;.protected.$provid
3a1e0 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 ers.=.array();.protected.$provid
3a200 65 72 73 42 79 55 69 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c ersByUid.=.array();.protected.$l
3a220 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 70 oader;.protected.$rootAliases;.p
3a240 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 66 61 rotected.$allowSslDowngrade.=.fa
3a260 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 61 77 44 61 74 61 3b 0a 70 72 69 76 61 74 65 20 24 lse;.private.$rawData;.private.$
3a280 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 72 61 64 minimalPackages;.private.$degrad
3a2a0 65 64 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 44 61 74 edMode.=.false;.private.$rootDat
3a2c0 61 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 a;..public.function.__construct(
3a2e0 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 array.$repoConfig,.IOInterface.$
3a300 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f io,.Config.$config).{.if.(!preg_
3a320 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e 5d 2b 5c 3f 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f match('{^[\w.]+\??://}',.$repoCo
3a340 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 nfig['url'])).{...$repoConfig['u
3a360 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 rl'].=.'http://'.$repoConfig['ur
3a380 6c 27 5d 3b 0a 7d 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 69 l'];.}.$repoConfig['url'].=.rtri
3a3a0 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 m($repoConfig['url'],.'/');..if.
3a3c0 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 ('https?'.===.substr($repoConfig
3a3e0 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 ['url'],.0,.6)).{.$repoConfig['u
3a400 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 rl'].=.(extension_loaded('openss
3a420 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 72 l').?.'https'.:.'http')...substr
3a440 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 24 75 72 6c ($repoConfig['url'],.6);.}..$url
3a460 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 Bits.=.parse_url($repoConfig['ur
3a480 6c 27 5d 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 l']);.if.(empty($urlBits['scheme
3a4a0 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 ']).||.empty($urlBits['host'])).
3a4c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
3a4e0 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 43 6f 6d ption('Invalid.url.given.for.Com
3a500 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b poser.repository:.'.$repoConfig[
3a520 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 'url']);.}..if.(!isset($repoConf
3a540 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f ig['options'])).{.$repoConfig['o
3a560 70 74 69 6f 6e 73 27 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 ptions'].=.array();.}.if.(isset(
3a580 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 $repoConfig['allow_ssl_downgrade
3a5a0 27 5d 29 20 26 26 20 74 72 75 65 20 3d 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c ']).&&.true.===.$repoConfig['all
3a5c0 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 6c ow_ssl_downgrade']).{.$this->all
3a5e0 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d owSslDowngrade.=.true;.}..$this-
3a600 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e >config.=.$config;.$this->option
3a620 73 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 3b 0a 24 74 68 69 s.=.$repoConfig['options'];.$thi
3a640 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 s->url.=.$repoConfig['url'];.$th
3a660 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 is->baseUrl.=.rtrim(preg_replace
3a680 28 27 7b 5e 28 2e 2a 29 28 3f 3a 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 29 3f 28 3f 3a 5b 3f ('{^(.*)(?:/packages.json)?(?:[?
3a6a0 23 5d 2e 2a 29 3f 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f #].*)?$}',.'$1',.$this->url),.'/
3a6c0 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 ');.$this->io.=.$io;.$this->cach
3a6e0 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 e.=.new.Cache($io,.$config->get(
3a700 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 'cache-repo-dir').'/'.preg_repla
3a720 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e ce('{[^a-z0-9.]}i',.'-',.$this->
3a740 75 72 6c 29 2c 20 27 61 2d 7a 30 2d 39 2e 24 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 url),.'a-z0-9.$');.$this->loader
3a760 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 72 66 73 .=.new.ArrayLoader();.$this->rfs
3a780 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 .=.new.RemoteFilesystem($this->i
3a7a0 6f 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 o,.$this->options);.}..public.fu
3a7c0 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 6f 6f nction.setRootAliases(array.$roo
3a7e0 74 41 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d tAliases).{.$this->rootAliases.=
3a800 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$rootAliases;.}..public.functio
3a820 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 n.getPackages().{.if.($this->has
3a840 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 Providers()).{.throw.new.\LogicE
3a860 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 xception('Composer.repositories.
3a880 74 68 61 74 20 68 61 76 65 20 70 72 6f 76 69 64 65 72 73 20 63 61 6e 20 6e 6f 74 20 6c 6f 61 64 that.have.providers.can.not.load
3a8a0 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2c 20 .the.complete.list.of.packages,.
3a8c0 75 73 65 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 20 69 6e 73 74 65 61 64 2e 27 29 3b use.getProviderNames.instead.');
3a8e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 50 61 63 6b 61 67 65 73 28 29 .}..return.parent::getPackages()
3a900 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d ;.}.....public.function.getMinim
3a920 61 6c 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e alPackages().{.if.(isset($this->
3a940 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 minimalPackages)).{.return.$this
3a960 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d ->minimalPackages;.}..if.(null.=
3a980 3d 3d 20 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 61 77 44 ==.$this->rawData).{.$this->rawD
3a9a0 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 ata.=.$this->loadDataFromServer(
3a9c0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 );.}..$this->minimalPackages.=.a
3a9e0 72 72 61 79 28 29 3b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 rray();.$versionParser.=.new.Ver
3aa00 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 61 77 sionParser;..foreach.($this->raw
3aa20 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 21 Data.as.$package).{.$version.=.!
3aa40 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a empty($package['version_normaliz
3aa60 65 64 27 5d 29 20 3f 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c ed']).?.$package['version_normal
3aa80 69 7a 65 64 27 5d 20 3a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 ized'].:.$versionParser->normali
3aaa0 7a 65 28 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 20 3d ze($package['version']);.$data.=
3aac0 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 .array(.'name'.=>.strtolower($pa
3aae0 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 29 2c 0a 27 72 65 70 6f 27 20 3d 3e 20 24 74 68 69 73 2c ckage['name']),.'repo'.=>.$this,
3ab00 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 72 61 77 27 20 3d 3e .'version'.=>.$version,.'raw'.=>
3ab20 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 .$package,.);.if.(!empty($packag
3ab40 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 72 65 70 6c 61 63 65 27 e['replace'])).{.$data['replace'
3ab60 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 ].=.$package['replace'];.}.if.(!
3ab80 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 24 64 empty($package['provide'])).{.$d
3aba0 61 74 61 5b 27 70 72 6f 76 69 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 ata['provide'].=.$package['provi
3abc0 64 65 27 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 de'];.}....if.($aliasNormalized.
3abe0 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 =.$this->loader->getBranchAlias(
3ac00 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 20 3d 20 70 72 $package)).{.$data['alias'].=.pr
3ac20 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 eg_replace('{(\.9{7})+}',.'.x',.
3ac40 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 3b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 5f $aliasNormalized);.$data['alias_
3ac60 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 3b normalized'].=.$aliasNormalized;
3ac80 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 .}..$this->minimalPackages[].=.$
3aca0 64 61 74 61 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 data;.}..return.$this->minimalPa
3acc0 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ckages;.}.....public.function.se
3ace0 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d arch($query,.$mode.=.0).{.$this-
3ad00 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 >loadRootServerFile();..if.($thi
3ad20 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 26 26 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a s->searchUrl.&&.$mode.===.self::
3ad40 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 SEARCH_FULLTEXT).{.$url.=.str_re
3ad60 70 6c 61 63 65 28 27 25 71 75 65 72 79 25 27 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e place('%query%',.$query,.$this->
3ad80 73 65 61 72 63 68 55 72 6c 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d searchUrl);..$json.=.$this->rfs-
3ada0 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b >getContents($url,.$url,.false);
3adc0 0a 24 72 65 73 75 6c 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 .$results.=.JsonFile::parseJson(
3ade0 24 6a 73 6f 6e 2c 20 24 75 72 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 5b 27 $json,.$url);..return.$results['
3ae00 72 65 73 75 6c 74 73 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 results'];.}..if.($this->hasProv
3ae20 69 64 65 72 73 28 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 iders()).{.$results.=.array();.$
3ae40 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 regex.=.'{(?:'.implode('|',.preg
3ae60 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a _split('{\s+}',.$query)).')}i';.
3ae80 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 .foreach.($this->getProviderName
3aea0 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 s().as.$name).{.if.(preg_match($
3aec0 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 5b 5d 20 3d 20 61 72 regex,.$name)).{.$results[].=.ar
3aee0 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ray('name'.=>.$name);.}.}..retur
3af00 6e 20 24 72 65 73 75 6c 74 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 73 65 n.$results;.}..return.parent::se
3af20 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 arch($query,.$mode);.}..public.f
3af40 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 0a 7b 0a 24 74 68 unction.getProviderNames().{.$th
3af60 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 6e is->loadRootServerFile();..if.(n
3af80 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 ull.===.$this->providerListing).
3afa0 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 {.$this->loadProviderListings($t
3afc0 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 69 his->loadRootServerFile());.}..i
3afe0 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e f.($this->providersUrl).{.return
3b000 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 .array_keys($this->providerListi
3b020 6e 67 29 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ng);.}....$providers.=.array();.
3b040 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 foreach.(array_keys($this->provi
3b060 64 65 72 4c 69 73 74 69 6e 67 29 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 70 72 6f derListing).as.$provider).{.$pro
3b080 76 69 64 65 72 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 70 72 6f 76 69 64 65 72 2c 20 32 2c 20 viders[].=.substr($provider,.2,.
3b0a0 2d 35 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 0a 0a -5);.}..return.$providers;.}....
3b0c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 .public.function.loadPackage(arr
3b0e0 61 79 20 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 ay.$data).{.$package.=.$this->cr
3b100 65 61 74 65 50 61 63 6b 61 67 65 28 24 64 61 74 61 5b 27 72 61 77 27 5d 2c 20 27 43 6f 6d 70 6f eatePackage($data['raw'],.'Compo
3b120 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 69 66 20 28 24 70 61 63 6b ser\Package\Package');.if.($pack
3b140 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 age.instanceof.AliasPackage).{.$
3b160 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 package.=.$package->getAliasOf()
3b180 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 ;.}.$package->setRepository($thi
3b1a0 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c s);..return.$package;.}.....publ
3b1c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 ic.function.loadAliasPackage(arr
3b1e0 61 79 20 24 64 61 74 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 ay.$data,.PackageInterface.$alia
3b200 73 4f 66 29 0a 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 sOf).{.$aliasPackage.=.$this->cr
3b220 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 4f 66 2c 20 24 64 61 74 61 eateAliasPackage($aliasOf,.$data
3b240 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 ['version'],.$data['alias']);.$a
3b260 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 liasPackage->setRepository($this
3b280 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 );..return.$aliasPackage;.}..pub
3b2a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a 7b 0a 24 74 lic.function.hasProviders().{.$t
3b2c0 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 his->loadRootServerFile();..retu
3b2e0 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 rn.$this->hasProviders;.}..publi
3b300 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 0a 7b 0a 66 c.function.resetPackageIds().{.f
3b320 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 61 73 oreach.($this->providersByUid.as
3b340 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e .$package).{.if.($package.instan
3b360 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 ceof.AliasPackage).{.$package->g
3b380 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 61 63 6b 61 etAliasOf()->setId(-1);.}.$packa
3b3a0 67 65 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ge->setId(-1);.}.}..public.funct
3b3c0 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6e 61 ion.whatProvides(Pool.$pool,.$na
3b3e0 6d 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 me).{.if.(isset($this->providers
3b400 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 [$name])).{.return.$this->provid
3b420 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 ers[$name];.}....if.(preg_match(
3b440 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 PlatformRepository::PLATFORM_PAC
3b460 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6e 61 6d 65 29 20 7c 7c 20 27 5f 5f 72 6f 6f 74 5f 5f 27 KAGE_REGEX,.$name).||.'__root__'
3b480 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a .===.$name).{.return.array();.}.
3b4a0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 .if.(null.===.$this->providerLis
3b4c0 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 ting).{.$this->loadProviderListi
3b4e0 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 29 ngs($this->loadRootServerFile())
3b500 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a ;.}..if.($this->providersUrl).{.
3b520 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 ..if.(!isset($this->providerList
3b540 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d ing[$name])).{.return.array();.}
3b560 0a 0a 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 ..$hash.=.$this->providerListing
3b580 5b 24 6e 61 6d 65 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 [$name]['sha256'];.$url.=.str_re
3b5a0 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 68 61 73 68 25 place(array('%package%',.'%hash%
3b5c0 27 29 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 68 61 73 68 29 2c 20 24 74 68 69 73 2d 3e '),.array($name,.$hash),.$this->
3b5e0 70 72 6f 76 69 64 65 72 73 55 72 6c 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 27 70 72 6f 76 providersUrl);.$cacheKey.=.'prov
3b600 69 64 65 72 2d 27 2e 73 74 72 74 72 28 24 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 24 27 29 2e 27 2e ider-'.strtr($name,.'/',.'$').'.
3b620 6a 73 6f 6e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e json';.}.else.{...$url.=.'p/'.$n
3b640 61 6d 65 2e 27 2e 6a 73 6f 6e 27 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 ame.'.json';....if.(!isset($this
3b660 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 ->providerListing[$url])).{.retu
3b680 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f rn.array();.}.$hash.=.$this->pro
3b6a0 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 63 viderListing[$url]['sha256'];.$c
3b6c0 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 acheKey.=.null;.}..if.($this->ca
3b6e0 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 68 61 73 68 che->sha256($cacheKey).===.$hash
3b700 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 ).{.$packages.=.json_decode($thi
3b720 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 s->cache->read($cacheKey),.true)
3b740 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 ;.}.else.{.$packages.=.$this->fe
3b760 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 68 61 73 68 29 3b tchFile($url,.$cacheKey,.$hash);
3b780 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 .}..$this->providers[$name].=.ar
3b7a0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 27 70 61 63 6b 61 ray();.foreach.($packages['packa
3b7c0 67 65 73 27 5d 20 61 73 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 ges'].as.$versions).{.foreach.($
3b7e0 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 69 73 versions.as.$version).{...if.(is
3b800 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 set($this->providersByUid[$versi
3b820 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 on['uid']])).{...if.(!isset($thi
3b840 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 s->providers[$name][$version['ui
3b860 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 d']])).{...if.($this->providersB
3b880 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 69 6e 73 74 61 6e 63 65 6f 66 yUid[$version['uid']].instanceof
3b8a0 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 .AliasPackage).{.$this->provider
3b8c0 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 s[$name][$version['uid']].=.$thi
3b8e0 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 s->providersByUid[$version['uid'
3b900 5d 5d 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 ]]->getAliasOf();.$this->provide
3b920 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 rs[$name][$version['uid'].'-alia
3b940 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 s'].=.$this->providersByUid[$ver
3b960 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 sion['uid']];.}.else.{.$this->pr
3b980 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 oviders[$name][$version['uid']].
3b9a0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e =.$this->providersByUid[$version
3b9c0 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 ['uid']];.}...if.(isset($this->p
3b9e0 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d rovidersByUid[$version['uid'].'-
3ba00 72 6f 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d root'])).{.$this->providers[$nam
3ba20 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 74 e][$version['uid'].'-root'].=.$t
3ba40 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 his->providersByUid[$version['ui
3ba60 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 d'].'-root'];.}.}.}.else.{.if.(i
3ba80 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 70 72 6f 76 69 64 65 27 5d 29 20 7c 7c 20 69 73 73 sset($version['provide']).||.iss
3baa0 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 0a 20 24 6e 61 et($version['replace'])).{...$na
3bac0 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e mes.=.array(.strtolower($version
3bae0 5b 27 6e 61 6d 65 27 5d 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 ['name']).=>.true,.);.if.(isset(
3bb00 24 76 65 72 73 69 6f 6e 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 $version['provide'])).{.foreach.
3bb20 28 24 76 65 72 73 69 6f 6e 5b 27 70 72 6f 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 ($version['provide'].as.$target.
3bb40 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 74 6f 6c 6f =>.$constraint).{.$names[strtolo
3bb60 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 wer($target)].=.true;.}.}.if.(is
3bb80 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 66 6f 72 65 set($version['replace'])).{.fore
3bba0 61 63 68 20 28 24 76 65 72 73 69 6f 6e 5b 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 24 74 61 72 ach.($version['replace'].as.$tar
3bbc0 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 get.=>.$constraint).{.$names[str
3bbe0 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 24 6e tolower($target)].=.true;.}.}.$n
3bc00 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 20 65 6c 73 ames.=.array_keys($names);.}.els
3bc20 65 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 e.{.$names.=.array(strtolower($v
3bc40 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 24 70 6f 6f 6c 2d 3e ersion['name']));.}.if.(!$pool->
3bc60 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 isPackageAcceptable(strtolower($
3bc80 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a version['name']),.VersionParser:
3bca0 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f :parseStability($version['versio
3bcc0 6e 27 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 n']))).{.continue;.}....$package
3bce0 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 76 65 72 73 69 6f 6e .=.$this->createPackage($version
3bd00 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 24 ,.'Composer\Package\Package');.$
3bd20 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a package->setRepository($this);..
3bd40 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
3bd60 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 kage).{.$aliased.=.$package->get
3bd80 41 6c 69 61 73 4f 66 28 29 3b 0a 24 61 6c 69 61 73 65 64 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f AliasOf();.$aliased->setReposito
3bda0 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 ry($this);..$this->providers[$na
3bdc0 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 61 6c 69 61 73 65 64 3b me][$version['uid']].=.$aliased;
3bde0 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f .$this->providers[$name][$versio
3be00 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a n['uid'].'-alias'].=.$package;..
3be20 0a 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e ..$this->providersByUid[$version
3be40 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 ['uid']].=.$package;.}.else.{.$t
3be60 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 his->providers[$name][$version['
3be80 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 uid']].=.$package;.$this->provid
3bea0 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 ersByUid[$version['uid']].=.$pac
3bec0 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 kage;.}....unset($rootAliasData)
3bee0 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b ;..if.(isset($this->rootAliases[
3bf00 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 $name][$package->getVersion()]))
3bf20 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 .{.$rootAliasData.=.$this->rootA
3bf40 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 liases[$name][$package->getVersi
3bf60 6f 6e 28 29 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e on()];.}.elseif.($package.instan
3bf80 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 ceof.AliasPackage.&&.isset($this
3bfa0 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 ->rootAliases[$name][$package->g
3bfc0 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 etAliasOf()->getVersion()])).{.$
3bfe0 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 rootAliasData.=.$this->rootAlias
3c000 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 es[$name][$package->getAliasOf()
3c020 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 ->getVersion()];.}..if.(isset($r
3c040 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 68 69 73 2d ootAliasData)).{.$alias.=.$this-
3c060 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 72 >createAliasPackage($package,.$r
3c080 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d ootAliasData['alias_normalized']
3c0a0 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 ,.$rootAliasData['alias']);.$ali
3c0c0 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 as->setRepository($this);..$this
3c0e0 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 ->providers[$name][$version['uid
3c100 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f '].'-root'].=.$alias;.$this->pro
3c120 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f vidersByUid[$version['uid'].'-ro
3c140 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ot'].=.$alias;.}.}.}.}..return.$
3c160 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 this->providers[$name];.}.....pr
3c180 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a otected.function.initialize().{.
3c1a0 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 72 65 70 6f 44 61 74 61 parent::initialize();..$repoData
3c1c0 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a .=.$this->loadDataFromServer();.
3c1e0 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 29 .foreach.($repoData.as.$package)
3c200 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 65 61 .{.$this->addPackage($this->crea
3c220 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 tePackage($package,.'Composer\Pa
3c240 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 70 ckage\CompletePackage'));.}.}..p
3c260 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 rotected.function.loadRootServer
3c280 46 69 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f File().{.if.(null.!==.$this->roo
3c2a0 74 44 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b tData).{.return.$this->rootData;
3c2c0 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 .}..if.(!extension_loaded('opens
3c2e0 73 6c 27 29 20 26 26 20 27 68 74 74 70 73 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 sl').&&.'https'.===.substr($this
3c300 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ->url,.0,.5)).{.throw.new.\Runti
3c320 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 meException('You.must.enable.the
3c340 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 .openssl.extension.in.your.php.i
3c360 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 ni.to.load.information.from.'.$t
3c380 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 his->url);.}..$jsonUrlParts.=.pa
3c3a0 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 rse_url($this->url);..if.(isset(
3c3c0 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 $jsonUrlParts['path']).&&.false.
3c3e0 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d !==.strpos($jsonUrlParts['path']
3c400 2c 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 ,.'/packages.json')).{.$jsonUrl.
3c420 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 =.$this->url;.}.else.{.$jsonUrl.
3c440 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b =.$this->url...'/packages.json';
3c460 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 6a 73 .}..$data.=.$this->fetchFile($js
3c480 6f 6e 55 72 6c 2c 20 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 3b 0a 0a 69 66 20 28 21 65 onUrl,.'packages.json');..if.(!e
3c4a0 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 29 20 7b 0a 24 mpty($data['notify-batch'])).{.$
3c4c0 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 this->notifyUrl.=.$this->canonic
3c4e0 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 3b alizeUrl($data['notify-batch']);
3c500 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f .}.elseif.(!empty($data['notify_
3c520 62 61 74 63 68 27 5d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d batch'])).{...$this->notifyUrl.=
3c540 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e .$this->canonicalizeUrl($data['n
3c560 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 otify_batch']);.}.elseif.(!empty
3c580 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 ($data['notify'])).{.$this->noti
3c5a0 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 fyUrl.=.$this->canonicalizeUrl($
3c5c0 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 data['notify']);.}..if.(!empty($
3c5e0 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 61 72 63 68 data['search'])).{.$this->search
3c600 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 Url.=.$this->canonicalizeUrl($da
3c620 74 61 5b 27 73 65 61 72 63 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6c 6c ta['search']);.}..if.($this->all
3c640 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 73 owSslDowngrade).{.$this->url.=.s
3c660 74 72 5f 72 65 70 6c 61 63 65 28 27 68 74 74 70 73 3a 2f 2f 27 2c 20 27 68 74 74 70 3a 2f 2f 27 tr_replace('https://',.'http://'
3c680 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 ,.$this->url);.}..if.(!empty($da
3c6a0 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 ta['providers-url'])).{.$this->p
3c6c0 72 6f 76 69 64 65 72 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a rovidersUrl.=.$this->canonicaliz
3c6e0 65 55 72 6c 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 3b 0a 24 74 eUrl($data['providers-url']);.$t
3c700 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 his->hasProviders.=.true;.}..if.
3c720 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 20 7c 7c 20 21 (!empty($data['providers']).||.!
3c740 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 empty($data['providers-includes'
3c760 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 ])).{.$this->hasProviders.=.true
3c780 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 20 3d 20 24 64 ;.}..return.$this->rootData.=.$d
3c7a0 61 74 61 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6f 6e ata;.}..protected.function.canon
3c7c0 69 63 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 icalizeUrl($url).{.if.('/'.===.$
3c7e0 75 72 6c 5b 30 5d 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b url[0]).{.return.preg_replace('{
3c800 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 75 (https?://[^/]+).*}i',.'$1'...$u
3c820 72 6c 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b rl,.$this->url);.}..return.$url;
3c840 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 44 61 74 61 46 .}..protected.function.loadDataF
3c860 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 romServer().{.$data.=.$this->loa
3c880 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 dRootServerFile();..return.$this
3c8a0 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ->loadIncludes($data);.}..protec
3c8c0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 ted.function.loadProviderListing
3c8e0 73 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 s($data).{.if.(isset($data['prov
3c900 69 64 65 72 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d iders'])).{.if.(!is_array($this-
3c920 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 >providerListing)).{.$this->prov
3c940 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e iderListing.=.array();.}.$this->
3c960 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 providerListing.=.array_merge($t
3c980 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 2c 20 24 64 61 74 61 5b 27 70 72 6f his->providerListing,.$data['pro
3c9a0 76 69 64 65 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 viders']);.}..if.($this->provide
3c9c0 72 73 55 72 6c 20 26 26 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 rsUrl.&&.isset($data['provider-i
3c9e0 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b ncludes'])).{.$includes.=.$data[
3ca00 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 'provider-includes'];.foreach.($
3ca20 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 includes.as.$include.=>.$metadat
3ca40 61 29 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 a).{.$url.=.$this->baseUrl...'/'
3ca60 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 6d 65 74 61 64 61 ...str_replace('%hash%',.$metada
3ca80 74 61 5b 27 73 68 61 32 35 36 27 5d 2c 20 24 69 6e 63 6c 75 64 65 29 3b 0a 24 63 61 63 68 65 4b ta['sha256'],.$include);.$cacheK
3caa0 65 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 68 61 73 68 25 27 2c ey.=.str_replace(array('%hash%',
3cac0 27 24 27 29 2c 20 27 27 2c 20 24 69 6e 63 6c 75 64 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e '$'),.'',.$include);.if.($this->
3cae0 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 6d 65 cache->sha256($cacheKey).===.$me
3cb00 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 tadata['sha256']).{.$includedDat
3cb20 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 a.=.json_decode($this->cache->re
3cb40 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ad($cacheKey),.true);.}.else.{.$
3cb60 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 includedData.=.$this->fetchFile(
3cb80 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 $url,.$cacheKey,.$metadata['sha2
3cba0 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 56']);.}..$this->loadProviderLis
3cbc0 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 tings($includedData);.}.}.elseif
3cbe0 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 .(isset($data['providers-include
3cc00 73 27 5d 29 29 20 7b 0a 0a 20 24 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f s'])).{...$includes.=.$data['pro
3cc20 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 viders-includes'];.foreach.($inc
3cc40 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 ludes.as.$include.=>.$metadata).
3cc60 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 69 6e 63 6c {.if.($this->cache->sha256($incl
3cc80 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a ude).===.$metadata['sha256']).{.
3cca0 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 $includedData.=.json_decode($thi
3ccc0 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b s->cache->read($include),.true);
3cce0 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d .}.else.{.$includedData.=.$this-
3cd00 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 >fetchFile($include,.null,.$meta
3cd20 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 data['sha256']);.}..$this->loadP
3cd40 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a roviderListings($includedData);.
3cd60 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e }.}.}..protected.function.loadIn
3cd80 63 6c 75 64 65 73 28 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 cludes($data).{.$packages.=.arra
3cda0 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 y();....if.(!isset($data['packag
3cdc0 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 es']).&&.!isset($data['includes'
3cde0 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a ])).{.foreach.($data.as.$pkg).{.
3ce00 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 foreach.($pkg['versions'].as.$me
3ce20 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 tadata).{.$packages[].=.$metadat
3ce40 61 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 a;.}.}..return.$packages;.}..if.
3ce60 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 66 6f 72 (isset($data['packages'])).{.for
3ce80 65 61 63 68 20 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b each.($data['packages'].as.$pack
3cea0 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 age.=>.$versions).{.foreach.($ve
3cec0 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 rsions.as.$version.=>.$metadata)
3cee0 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a .{.$packages[].=.$metadata;.}.}.
3cf00 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 }..if.(isset($data['includes']))
3cf20 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 .{.foreach.($data['includes'].as
3cf40 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 .$include.=>.$metadata).{.if.($t
3cf60 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 his->cache->sha1($include).===.$
3cf80 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 metadata['sha1']).{.$includedDat
3cfa0 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 a.=.json_decode($this->cache->re
3cfc0 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 ad($include),.true);.}.else.{.$i
3cfe0 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 ncludedData.=.$this->fetchFile($
3d000 69 6e 63 6c 75 64 65 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 include);.}.$packages.=.array_me
3d020 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 rge($packages,.$this->loadInclud
3d040 65 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 es($includedData));.}.}..return.
3d060 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e $packages;.}..protected.function
3d080 20 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 63 6c 61 .createPackage(array.$data,.$cla
3d0a0 73 73 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 6f ss).{.try.{.if.(!isset($data['no
3d0c0 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 6e 6f 74 69 tification-url'])).{.$data['noti
3d0e0 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 fication-url'].=.$this->notifyUr
3d100 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 l;.}..return.$this->loader->load
3d120 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 ($data,.'Composer\Package\Comple
3d140 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e tePackage');.}.catch.(\Exception
3d160 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 .$e).{.throw.new.\RuntimeExcepti
3d180 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 70 61 63 6b 61 67 65 20 27 2e 28 69 73 on('Could.not.load.package.'.(is
3d1a0 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 set($data['name']).?.$data['name
3d1c0 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 29 2e 27 20 69 6e 20 27 2e '].:.json_encode($data)).'.in.'.
3d1e0 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 $this->url.':.['.get_class($e).'
3d200 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a ].'.$e->getMessage(),.0,.$e);.}.
3d220 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 46 69 6c 65 28 }..protected.function.fetchFile(
3d240 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 2c 20 24 73 68 $filename,.$cacheKey.=.null,.$sh
3d260 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 63 61 63 68 65 4b 65 79 29 20 7b a256.=.null).{.if.(!$cacheKey).{
3d280 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 6e 61 6d .$cacheKey.=.$filename;.$filenam
3d2a0 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e 61 6d 65 e.=.$this->baseUrl.'/'.$filename
3d2c0 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 ;.}..$retries.=.3;.while.($retri
3d2e0 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 es--).{.try.{.$json.=.$this->rfs
3d300 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 66 69 6c 65 6e 61 ->getContents($filename,.$filena
3d320 6d 65 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 73 68 61 32 35 36 20 26 26 20 24 73 68 61 32 me,.false);.if.($sha256.&&.$sha2
3d340 35 36 20 21 3d 3d 20 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 6a 73 6f 6e 29 29 20 7b 0a 56.!==.hash('sha256',.$json)).{.
3d360 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a if.($retries).{.usleep(100000);.
3d380 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 52 65 70 6f 73 69 .continue;.}....throw.new.Reposi
3d3a0 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6e 74 65 torySecurityException('The.conte
3d3c0 6e 74 73 20 6f 66 20 27 2e 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 6f 20 6e 6f 74 20 6d 61 74 63 nts.of.'.$filename.'.do.not.matc
3d3e0 68 20 69 74 73 20 73 69 67 6e 61 74 75 72 65 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 20 69 6e 64 h.its.signature..This.should.ind
3d400 69 63 61 74 65 20 61 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c 65 20 61 74 74 61 63 6b icate.a.man-in-the-middle.attack
3d420 2e 20 54 72 79 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 61 67 61 69 6e 20 61 6e 64 ..Try.running.composer.again.and
3d440 20 72 65 70 6f 72 74 20 74 68 69 73 20 69 66 20 79 6f 75 20 74 68 69 6e 6b 20 69 74 20 69 73 20 .report.this.if.you.think.it.is.
3d460 61 20 6d 69 73 74 61 6b 65 2e 27 29 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 a.mistake.');.}.$data.=.JsonFile
3d480 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 24 ::parseJson($json,.$filename);.$
3d4a0 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 63 61 63 68 65 4b 65 79 2c 20 24 6a this->cache->write($cacheKey,.$j
3d4c0 73 6f 6e 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f son);..break;.}.catch.(\Exceptio
3d4e0 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 n.$e).{.if.($retries).{.usleep(1
3d500 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 65 20 69 6e 73 74 00000);.continue;.}..if.($e.inst
3d520 61 6e 63 65 6f 66 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 anceof.RepositorySecurityExcepti
3d540 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 on).{.throw.$e;.}..if.($contents
3d560 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 .=.$this->cache->read($cacheKey)
3d580 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 29 20 7b 0a ).{.if.(!$this->degradedMode).{.
3d5a0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 65 2d $this->io->write('<warning>'.$e-
3d5c0 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 >getMessage().'</warning>');.$th
3d5e0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 74 68 69 73 2d is->io->write('<warning>'.$this-
3d600 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 75 6c 6c 79 20 6c 6f 61 64 65 64 >url.'.could.not.be.fully.loaded
3d620 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 61 73 20 6c 6f 61 64 65 64 ,.package.information.was.loaded
3d640 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 63 61 63 68 65 20 61 6e 64 20 6d 61 79 20 62 65 .from.the.local.cache.and.may.be
3d660 20 6f 75 74 20 6f 66 20 64 61 74 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 24 74 68 69 .out.of.date</warning>');.}.$thi
3d680 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 3b 0a 24 64 61 74 61 20 3d 20 s->degradedMode.=.true;.$data.=.
3d6a0 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 JsonFile::parseJson($contents,.$
3d6c0 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 65 74 52 6f 6f 74 28 29 2e 24 63 61 63 68 65 4b 65 79 this->cache->getRoot().$cacheKey
3d6e0 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 );..break;.}..throw.$e;.}.}..ret
3d700 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$data;.}.}.<?php............
3d720 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 namespace.Composer\Repository\Pe
3d740 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b ar;.......class.DependencyInfo.{
3d760 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 .private.$requires;.private.$opt
3d780 69 6f 6e 61 6c 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ionals;......public.function.__c
3d7a0 6f 6e 73 74 72 75 63 74 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a onstruct($requires,.$optionals).
3d7c0 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 {.$this->requires.=.$requires;.$
3d7e0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a this->optionals.=.$optionals;.}.
3d800 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 ....public.function.getRequires(
3d820 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a ).{.return.$this->requires;.}...
3d840 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 ..public.function.getOptionals()
3d860 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a .{.return.$this->optionals;.}.}.
3d880 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
3d8a0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ser\Repository\Pear;.......class
3d8c0 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a .PackageDependencyParser.{......
3d8e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 .public.function.buildDependency
3d900 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 Info($depArray).{.if.(!is_array(
3d920 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 $depArray)).{.return.new.Depende
3d940 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 ncyInfo(array(),.array());.}.if.
3d960 28 21 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 (!$this->isHash($depArray)).{.re
3d980 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 turn.new.DependencyInfo($this->b
3d9a0 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c uildDependency10Info($depArray),
3d9c0 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c .array());.}..return.$this->buil
3d9e0 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a dDependency20Info($depArray);.}.
3da00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 .............private.function.bu
3da20 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b ildDependency10Info($depArray).{
3da40 0a 73 74 61 74 69 63 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 .static.$dep10toOperatorMap.=.ar
3da60 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 ray('has'=>'==',.'eq'.=>.'==',.'
3da80 67 65 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d ge'.=>.'>=',.'gt'.=>.'>',.'le'.=
3daa0 3e 20 27 3c 3d 27 2c 20 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 >.'<=',.'lt'.=>.'<',.'not'.=>.'!
3dac0 3d 27 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 =');..$result.=.array();..foreac
3dae0 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 h.($depArray.as.$depItem).{.if.(
3db00 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 empty($depItem['rel']).||.!array
3db20 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 _key_exists($depItem['rel'],.$de
3db40 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b p10toOperatorMap)).{...continue;
3db60 0a 7d 0a 0a 24 64 65 70 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 .}..$depType.=.!empty($depItem['
3db80 6f 70 74 69 6f 6e 61 6c 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d optional']).&&.'yes'.==.$depItem
3dba0 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 ['optional'].?.'optional'.:.'req
3dbc0 75 69 72 65 64 27 3b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 uired';.$depType.=.'not'.==.$dep
3dbe0 49 74 65 6d 5b 27 72 65 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 Item['rel'].?.'conflicts'.:.$dep
3dc00 54 79 70 65 3b 0a 0a 24 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 Type;..$depVersion.=.!empty($dep
3dc20 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 Item['version']).?.$this->parseV
3dc40 65 72 73 69 6f 6e 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a ersion($depItem['version']).:.'*
3dc60 27 3b 0a 0a 0a 20 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 ';....$depVersionConstraint.=.('
3dc80 68 61 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 has'.==.$depItem['rel'].||.'not'
3dca0 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 .==.$depItem['rel']).&&.'*'.==.$
3dcc0 64 65 70 56 65 72 73 69 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 depVersion.?.'*'.:.$dep10toOpera
3dce0 74 6f 72 4d 61 70 5b 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 torMap[$depItem['rel']]...$depVe
3dd00 72 73 69 6f 6e 3b 0a 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d rsion;..switch.($depItem['type']
3dd20 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 ).{.case.'php':.$depChannelName.
3dd40 3d 20 27 70 68 70 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 =.'php';.$depPackageName.=.'';.b
3dd60 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d reak;.case.'pkg':.$depChannelNam
3dd80 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 e.=.!empty($depItem['channel']).
3dda0 3f 20 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 ?.$depItem['channel'].:.'pear.ph
3ddc0 70 2e 6e 65 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 p.net';.$depPackageName.=.$depIt
3dde0 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 em['name'];.break;.case.'ext':.$
3de00 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b depChannelName.=.'ext';.$depPack
3de20 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 ageName.=.$depItem['name'];.brea
3de40 6b 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 k;.case.'os':.case.'sapi':.$depC
3de60 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 hannelName.=.'';.$depPackageName
3de80 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e .=.'';.break;.default:.$depChann
3dea0 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 elName.=.'';.$depPackageName.=.'
3dec0 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e ';.break;.}..if.(''.!=.$depChann
3dee0 65 6c 4e 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 elName).{.$result[].=.new.Depend
3df00 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 encyConstraint(.$depType,.$depVe
3df20 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 rsionConstraint,.$depChannelName
3df40 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ,.$depPackageName.);.}.}..return
3df60 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .$result;.}........private.funct
3df80 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 ion.buildDependency20Info($depAr
3dfa0 72 61 79 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f ray).{.$result.=.array();.$optio
3dfc0 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c nals.=.array();.$defaultOptional
3dfe0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 s.=.array();.foreach.($depArray.
3e000 61 73 20 24 64 65 70 54 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a as.$depType.=>.$depTypeGroup).{.
3e020 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a if.(!is_array($depTypeGroup)).{.
3e040 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 continue;.}.if.('required'.==.$d
3e060 65 70 54 79 70 65 20 7c 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 epType.||.'optional'.==.$depType
3e080 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 ).{.foreach.($depTypeGroup.as.$d
3e0a0 65 70 49 74 65 6d 54 79 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 epItemType.=>.$depItem).{.switch
3e0c0 20 28 24 64 65 70 49 74 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 .($depItemType).{.case.'php':.$r
3e0e0 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 esult[].=.new.DependencyConstrai
3e100 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 nt(.$depType,.$this->parse20Vers
3e120 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a ionConstraint($depItem),.'php',.
3e140 27 27 0a 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 ''.);.break;.case.'package':.$de
3e160 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 ps.=.$this->buildDepPackageConst
3e180 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 raints($depItem,.$depType);.$res
3e1a0 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 ult.=.array_merge($result,.$deps
3e1c0 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 );.break;.case.'extension':.$dep
3e1e0 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 s.=.$this->buildDepExtensionCons
3e200 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 traints($depItem,.$depType);.$re
3e220 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 sult.=.array_merge($result,.$dep
3e240 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 s);.break;.case.'subpackage':.$d
3e260 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 eps.=.$this->buildDepPackageCons
3e280 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 traints($depItem,.'replaces');.$
3e2a0 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b defaultOptionals.+=.$deps;.break
3e2c0 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 ;.case.'os':.case.'pearinstaller
3e2e0 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 ':.break;.default:.break;.}.}.}.
3e300 65 6c 73 65 69 66 20 28 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 elseif.('group'.==.$depType).{.i
3e320 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 f.($this->isHash($depTypeGroup))
3e340 20 7b 0a 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 .{.$depTypeGroup.=.array($depTyp
3e360 65 47 72 6f 75 70 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f eGroup);.}..foreach.($depTypeGro
3e380 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 up.as.$depItem).{.$groupName.=.$
3e3a0 64 65 70 49 74 65 6d 5b 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 depItem['attribs']['name'];.if.(
3e3c0 21 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 !isset($optionals[$groupName])).
3e3e0 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 {.$optionals[$groupName].=.array
3e400 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 ();.}..if.(isset($depItem['subpa
3e420 63 6b 61 67 65 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d ckage'])).{.$optionals[$groupNam
3e440 65 5d 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 e].+=.$this->buildDepPackageCons
3e460 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 traints($depItem['subpackage'],.
3e480 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 'replaces');.}.else.{.$result.+=
3e4a0 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e .$this->buildDepPackageConstrain
3e4c0 74 73 28 24 64 65 70 49 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 ts($depItem['package'],.'optiona
3e4e0 6c 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 l');.}.}.}.}..if.(count($default
3e500 4f 70 74 69 6f 6e 61 6c 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 Optionals).>.0).{.$optionals['*'
3e520 5d 20 3d 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e ].=.$defaultOptionals;.}..return
3e540 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 .new.DependencyInfo($result,.$op
3e560 74 69 6f 6e 61 6c 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 tionals);.}.........private.func
3e580 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 tion.buildDepExtensionConstraint
3e5a0 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 s($depItem,.$depType).{.if.($thi
3e5c0 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 s->isHash($depItem)).{.$depItem.
3e5e0 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 =.array($depItem);.}..$result.=.
3e600 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 array();.foreach.($depItem.as.$s
3e620 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 ubDepItem).{.$depChannelName.=.'
3e640 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 ext';.$depPackageName.=.$subDepI
3e660 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 tem['name'];.$depVersionConstrai
3e680 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 nt.=.$this->parse20VersionConstr
3e6a0 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 aint($subDepItem);..$result[].=.
3e6c0 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 new.DependencyConstraint(.$depTy
3e6e0 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 pe,.$depVersionConstraint,.$depC
3e700 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d hannelName,.$depPackageName.);.}
3e720 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 ..return.$result;.}.........priv
3e740 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 ate.function.buildDepPackageCons
3e760 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 traints($depItem,.$depType).{.if
3e780 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 .($this->isHash($depItem)).{.$de
3e7a0 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 pItem.=.array($depItem);.}..$res
3e7c0 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d ult.=.array();.foreach.($depItem
3e7e0 20 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 .as.$subDepItem).{.$depChannelNa
3e800 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 me.=.$subDepItem['channel'];.$de
3e820 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 pPackageName.=.$subDepItem['name
3e840 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 '];.$depVersionConstraint.=.$thi
3e860 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 s->parse20VersionConstraint($sub
3e880 44 65 70 49 74 65 6d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b DepItem);.if.(isset($subDepItem[
3e8a0 27 63 6f 6e 66 6c 69 63 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 'conflicts'])).{.$depType.=.'con
3e8c0 66 6c 69 63 74 73 27 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 flicts';.}..$result[].=.new.Depe
3e8e0 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 ndencyConstraint(.$depType,.$dep
3e900 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 VersionConstraint,.$depChannelNa
3e920 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e me,.$depPackageName.);.}..return
3e940 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .$result;.}........private.funct
3e960 69 6f 6e 20 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 ion.parse20VersionConstraint(arr
3e980 61 79 20 24 64 61 74 61 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 ay.$data).{.static.$dep20toOpera
3e9a0 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 6d 69 6e torMap.=.array('has'=>'==',.'min
3e9c0 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 65 78 63 6c 75 '.=>.'>=',.'max'.=>.'<=',.'exclu
3e9e0 64 65 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 de'.=>.'!=');..$versions.=.array
3ea00 28 29 3b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 ();.$values.=.array_intersect_ke
3ea20 79 28 24 64 61 74 61 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 3b 0a 69 y($data,.$dep20toOperatorMap);.i
3ea40 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e f.(0.==.count($values)).{.return
3ea60 20 27 2a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d .'*';.}.if.(isset($values['min']
3ea80 29 20 26 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 ).&&.isset($values['exclude']).&
3eaa0 26 20 24 64 61 74 61 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 &.$data['min'].==.$data['exclude
3eac0 27 5d 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e 20 24 74 68 69 73 2d ']).{.$versions[].=.'>'...$this-
3eae0 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 3b 0a 7d >parseVersion($values['min']);.}
3eb00 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 20 26 .elseif.(isset($values['max']).&
3eb20 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 &.isset($values['exclude']).&&.$
3eb40 64 61 74 61 5b 27 6d 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 data['max'].==.$data['exclude'])
3eb60 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 .{.$versions[].=.'<'...$this->pa
3eb80 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 3b 0a 7d 20 65 6c rseVersion($values['max']);.}.el
3eba0 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 6f 70 20 3d 3e 20 se.{.foreach.($values.as.$op.=>.
3ebc0 24 76 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 20 3d 3d 20 24 6f 70 $version).{.if.('exclude'.==.$op
3ebe0 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 66 6f 72 65 61 63 .&&.is_array($version)).{.foreac
3ec00 68 20 28 24 76 65 72 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 72 74 29 20 7b 0a 24 h.($version.as.$versionPart).{.$
3ec20 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 versions[].=.$dep20toOperatorMap
3ec40 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 [$op]...$this->parseVersion($ver
3ec60 73 69 6f 6e 50 61 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b sionPart);.}.}.else.{.$versions[
3ec80 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 ].=.$dep20toOperatorMap[$op]...$
3eca0 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a this->parseVersion($version);.}.
3ecc0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 76 65 72 73 69 6f }.}..return.implode(',',.$versio
3ece0 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 ns);.}........private.function.p
3ed00 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 70 72 65 67 arseVersion($version).{.if.(preg
3ed20 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e _match('{^v?(\d{1,3})(\.\d+)?(\.
3ed40 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 \d+)?(\.\d+)?}i',.$version,.$mat
3ed60 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a ches)).{.$version.=.$matches[1].
3ed80 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 .(!empty($matches[2]).?.$matches
3eda0 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d [2].:.'.0')..(!empty($matches[3]
3edc0 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 ).?.$matches[3].:.'.0')..(!empty
3ede0 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e ($matches[4]).?.$matches[4].:.'.
3ee00 30 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 0');..return.$version;.}..return
3ee20 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e .null;.}........private.function
3ee40 20 69 73 48 61 73 68 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 65 74 75 72 6e 20 21 .isHash(array.$array).{.return.!
3ee60 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 79 29 20 26 26 20 21 array_key_exists(1,.$array).&&.!
3ee80 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 79 29 3b 0a 7d 0a 7d array_key_exists(0,.$array);.}.}
3eea0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
3eec0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 oser\Repository\Pear;.......clas
3eee0 73 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 s.ChannelInfo.{.private.$name;.p
3ef00 72 69 76 61 74 65 20 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 73 rivate.$alias;.private.$packages
3ef20 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ;.......public.function.__constr
3ef40 75 63 74 28 24 6e 61 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 uct($name,.$alias,.array.$packag
3ef60 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 es).{.$this->name.=.$name;.$this
3ef80 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 ->alias.=.$alias;.$this->package
3efa0 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s.=.$packages;.}.......public.fu
3efc0 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getName().{.return.$this-
3efe0 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 >name;.}.......public.function.g
3f000 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b etAlias().{.return.$this->alias;
3f020 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b .}.......public.function.getPack
3f040 61 67 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b ages().{.return.$this->packages;
3f060 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
3f080 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 Composer\Repository\Pear;..use.C
3f0a0 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a omposer\Util\RemoteFilesystem;..
3f0c0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 20 65 78 74 65 6e .......class.ChannelReader.exten
3f0e0 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 72 69 76 61 74 65 20 ds.BaseChannelReader.{..private.
3f100 24 72 65 61 64 65 72 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 $readerMap;..public.function.__c
3f120 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a onstruct(RemoteFilesystem.$rfs).
3f140 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 72 {.parent::__construct($rfs);..$r
3f160 65 73 74 31 30 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 est10reader.=.new.ChannelRest10R
3f180 65 61 64 65 72 28 24 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 72 20 3d 20 6e 65 77 eader($rfs);.$rest11reader.=.new
3f1a0 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 0a 24 74 68 .ChannelRest11Reader($rfs);..$th
3f1c0 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 45 53 54 31 2e 33 27 is->readerMap.=.array(.'REST1.3'
3f1e0 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 32 27 20 3d 3e 20 .=>.$rest11reader,.'REST1.2'.=>.
3f200 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 3d 3e 20 24 72 65 73 $rest11reader,.'REST1.1'.=>.$res
3f220 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 72 65 73 74 31 30 72 t11reader,.'REST1.0'.=>.$rest10r
3f240 65 61 64 65 72 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 eader,.);.}.........public.funct
3f260 69 6f 6e 20 72 65 61 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 ion.read($url).{.$xml.=.$this->r
3f280 65 71 75 65 73 74 58 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 6d 6c 22 29 3b equestXml($url,."/channel.xml");
3f2a0 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e ..$channelName.=.(string).$xml->
3f2c0 6e 61 6d 65 3b 0a 24 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 73 74 72 69 6e 67 29 name;.$channelSummary.=.(string)
3f2e0 20 24 78 6d 6c 2d 3e 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 20 3d 20 .$xml->summary;.$channelAlias.=.
3f300 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 3b 0a 0a (string).$xml->suggestedalias;..
3f320 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 $supportedVersions.=.array_keys(
3f340 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 74 65 64 52 65 73 74 $this->readerMap);.$selectedRest
3f360 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 Version.=.$this->selectRestVersi
3f380 6f 6e 28 24 78 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 3b 0a 69 66 on($xml,.$supportedVersions);.if
3f3a0 20 28 21 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 .(!$selectedRestVersion).{.throw
3f3c0 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 .new.\UnexpectedValueException(s
3f3e0 70 72 69 6e 74 66 28 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 73 20 64 6f 65 73 20 printf('PEAR.repository.%s.does.
3f400 6e 6f 74 20 73 75 70 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 6f 74 6f 63 6f 6c 73 not.supports.any.of.%s.protocols
3f420 2e 27 2c 20 24 75 72 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 75 70 70 6f 72 74 .',.$url,.implode(',.',.$support
3f440 65 64 56 65 72 73 69 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 20 3d 20 24 74 68 69 edVersions)));.}..$reader.=.$thi
3f460 73 2d 3e 72 65 61 64 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f s->readerMap[$selectedRestVersio
3f480 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f n['version']];.$packageDefinitio
3f4a0 6e 73 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 74 65 64 52 65 73 74 ns.=.$reader->read($selectedRest
3f4c0 56 65 72 73 69 6f 6e 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 Version['baseUrl']);..return.new
3f4e0 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 63 68 61 6e .ChannelInfo($channelName,.$chan
3f500 6e 65 6c 41 6c 69 61 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 29 3b 0a nelAlias,.$packageDefinitions);.
3f520 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 }.........private.function.selec
3f540 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c 20 24 73 75 70 70 6f tRestVersion($channelXml,.$suppo
3f560 72 74 65 64 56 65 72 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 72 65 67 rtedVersions).{.$channelXml->reg
3f580 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a isterXPathNamespace('ns',.self::
3f5a0 43 48 41 4e 4e 45 4c 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 75 70 70 6f 72 74 65 CHANNEL_NS);..foreach.($supporte
3f5c0 64 56 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 78 70 61 74 68 54 dVersions.as.$version).{.$xpathT
3f5e0 65 73 74 20 3d 20 22 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d 61 72 79 2f 6e 73 3a est.=."ns:servers/ns:primary/ns:
3f600 72 65 73 74 2f 6e 73 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 76 65 72 73 69 6f 6e rest/ns:baseurl[@type='{$version
3f620 7d 27 5d 22 3b 0a 24 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d }']";.$testResult.=.$channelXml-
3f640 3e 78 70 61 74 68 28 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 >xpath($xpathTest);.if.(count($t
3f660 65 73 74 52 65 73 75 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 estResult).>.0).{.return.array('
3f680 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 73 65 55 72 6c 27 20 version'.=>.$version,.'baseUrl'.
3f6a0 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 5d 29 3b 0a 7d 0a 7d =>.(string).$testResult[0]);.}.}
3f6c0 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ..return.null;.}.}.<?php........
3f6e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ....namespace.Composer\Repositor
3f700 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 49 6e 66 6f 0a y\Pear;.......class.PackageInfo.
3f720 7b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 {.private.$channelName;.private.
3f740 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 3b 0a $packageName;.private.$license;.
3f760 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 private.$shortDescription;.priva
3f780 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 65 61 73 te.$description;.private.$releas
3f7a0 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 es;..........public.function.__c
3f7c0 6f 6e 73 74 72 75 63 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e onstruct($channelName,.$packageN
3f7e0 61 6d 65 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e ame,.$license,.$shortDescription
3f800 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 73 29 0a 7b 0a 24 74 68 ,.$description,.$releases).{.$th
3f820 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a is->channelName.=.$channelName;.
3f840 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d $this->packageName.=.$packageNam
3f860 65 3b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 24 74 e;.$this->license.=.$license;.$t
3f880 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 73 68 6f 72 74 44 65 his->shortDescription.=.$shortDe
3f8a0 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 scription;.$this->description.=.
3f8c0 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 20 3d 20 $description;.$this->releases.=.
3f8e0 24 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $releases;.}.....public.function
3f900 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .getChannelName().{.return.$this
3f920 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->channelName;.}.....public.func
3f940 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getPackageName().{.return.$
3f960 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 this->packageName;.}.....public.
3f980 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 function.getDescription().{.retu
3f9a0 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rn.$this->description;.}.....pub
3f9c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e lic.function.getShortDescription
3f9e0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 ().{.return.$this->shortDescript
3fa00 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 ion;.}.....public.function.getLi
3fa20 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b cense().{.return.$this->license;
3fa40 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 .}.....public.function.getReleas
3fa60 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 3b 0a 7d es().{.return.$this->releases;.}
3fa80 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
3faa0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c mposer\Repository\Pear;.......cl
3fac0 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 ass.DependencyConstraint.{.priva
3fae0 74 65 20 24 74 79 70 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 te.$type;.private.$constraint;.p
3fb00 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 rivate.$channelName;.private.$pa
3fb20 63 6b 61 67 65 4e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ckageName;........public.functio
3fb40 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 79 70 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 n.__construct($type,.$constraint
3fb60 2c 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a ,.$channelName,.$packageName).{.
3fb80 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 $this->type.=.$type;.$this->cons
3fba0 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 63 68 61 traint.=.$constraint;.$this->cha
3fbc0 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e nnelName.=.$channelName;.$this->
3fbe0 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 packageName.=.$packageName;.}..p
3fc00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a ublic.function.getChannelName().
3fc20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a {.return.$this->channelName;.}..
3fc40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a public.function.getConstraint().
3fc60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 {.return.$this->constraint;.}..p
3fc80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a ublic.function.getPackageName().
3fca0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a {.return.$this->packageName;.}..
3fcc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 public.function.getType().{.retu
3fce0 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a rn.$this->type;.}.}.<?php.......
3fd00 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f .....namespace.Composer\Reposito
3fd20 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c ry\Pear;...........class.Channel
3fd40 52 65 73 74 31 31 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c Rest11Reader.extends.BaseChannel
3fd60 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 Reader.{.private.$dependencyRead
3fd80 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 er;..public.function.__construct
3fda0 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 ($rfs).{.parent::__construct($rf
3fdc0 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e s);..$this->dependencyReader.=.n
3fde0 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a ew.PackageDependencyParser();.}.
3fe00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 ........public.function.read($ba
3fe20 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 43 68 61 6e 6e seUrl).{.return.$this->readChann
3fe40 65 6c 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a elPackages($baseUrl);.}.........
3fe60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b private.function.readChannelPack
3fe80 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 ages($baseUrl).{.$result.=.array
3fea0 28 29 3b 0a 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 ();..$xml.=.$this->requestXml($b
3fec0 61 73 65 55 72 6c 2c 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 29 3b 0a 24 78 aseUrl,."/c/categories.xml");.$x
3fee0 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c ml->registerXPathNamespace('ns',
3ff00 20 73 65 6c 66 3a 3a 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 .self::ALL_CATEGORIES_NS);.forea
3ff20 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 73 20 24 6e 6f 64 65 ch.($xml->xpath('ns:c').as.$node
3ff40 29 20 7b 0a 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f ).{.$categoryName.=.(string).$no
3ff60 64 65 3b 0a 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 de;.$categoryPackages.=.$this->r
3ff80 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 eadCategoryPackages($baseUrl,.$c
3ffa0 61 74 65 67 6f 72 79 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 ategoryName);.$result.=.array_me
3ffc0 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 29 3b rge($result,.$categoryPackages);
3ffe0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .}..return.$result;.}..........p
40000 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b rivate.function.readCategoryPack
40020 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 0a 7b 0a ages($baseUrl,.$categoryName).{.
40040 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 67 6f 72 79 50 61 74 $result.=.array();..$categoryPat
40060 68 20 3d 20 27 2f 63 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 67 6f 72 79 4e 61 6d h.=.'/c/'.urlencode($categoryNam
40080 65 29 2e 27 2f 70 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 e).'/packagesinfo.xml';.$xml.=.$
400a0 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 this->requestXml($baseUrl,.$cate
400c0 67 6f 72 79 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 goryPath);.$xml->registerXPathNa
400e0 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 mespace('ns',.self::CATEGORY_PAC
40100 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 KAGES_INFO_NS);.foreach.($xml->x
40120 70 61 74 68 28 27 6e 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 path('ns:pi').as.$node).{.$packa
40140 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 6e 6f geInfo.=.$this->parsePackage($no
40160 64 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d de);.$result[].=.$packageInfo;.}
40180 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ..return.$result;.}........priva
401a0 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 te.function.parsePackage($packag
401c0 65 49 6e 66 6f 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 67 69 73 74 65 72 58 eInfo).{.$packageInfo->registerX
401e0 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f PathNamespace('ns',.self::CATEGO
40200 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 61 6e 6e 65 6c 4e 61 RY_PACKAGES_INFO_NS);.$channelNa
40220 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 63 me.=.(string).$packageInfo->p->c
40240 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 ;.$packageName.=.(string).$packa
40260 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 geInfo->p->n;.$license.=.(string
40280 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 ).$packageInfo->p->l;.$shortDesc
402a0 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d ription.=.(string).$packageInfo-
402c0 3e 70 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 >p->s;.$description.=.(string).$
402e0 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 packageInfo->p->d;..$dependencie
40300 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 49 6e s.=.array();.foreach.($packageIn
40320 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b fo->xpath('ns:deps').as.$node).{
40340 0a 24 64 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 .$dependencyVersion.=.(string).$
40360 6e 6f 64 65 2d 3e 76 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 node->v;.$dependencyArray.=.unse
40380 72 69 61 6c 69 7a 65 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 29 3b 0a 0a 24 64 65 rialize((string).$node->d);..$de
403a0 70 65 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 pendencyInfo.=.$this->dependency
403c0 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 Reader->buildDependencyInfo($dep
403e0 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 64 endencyArray);..$dependencies[$d
40400 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 ependencyVersion].=.$dependencyI
40420 6e 66 6f 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 nfo;.}..$releases.=.array();.$re
40440 6c 65 61 73 65 73 49 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 leasesInfo.=.$packageInfo->xpath
40460 28 27 6e 73 3a 61 2f 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f ('ns:a/ns:r');.if.($releasesInfo
40480 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 61 73 20 24 6e ).{.foreach.($releasesInfo.as.$n
404a0 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 ode).{.$releaseVersion.=.(string
404c0 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 ).$node->v;.$releaseStability.=.
404e0 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 73 65 73 5b 24 72 65 (string).$node->s;.$releases[$re
40500 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 leaseVersion].=.new.ReleaseInfo(
40520 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 28 24 64 65 70 65 6e .$releaseStability,.isset($depen
40540 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 20 3f 20 24 64 65 70 dencies[$releaseVersion]).?.$dep
40560 65 6e 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3a 20 6e 65 77 endencies[$releaseVersion].:.new
40580 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 .DependencyInfo(array(),.array()
405a0 29 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f ).);.}.}..return.new.PackageInfo
405c0 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c (.$channelName,.$packageName,.$l
405e0 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 icense,.$shortDescription,.$desc
40600 72 69 70 74 69 6f 6e 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ription,.$releases.);.}.}.<?php.
40620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
40640 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6c 65 61 pository\Pear;.......class.Relea
40660 73 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 70 72 69 seInfo.{.private.$stability;.pri
40680 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 vate.$dependencyInfo;......publi
406a0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 61 62 69 6c 69 74 c.function.__construct($stabilit
406c0 79 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 y,.$dependencyInfo).{.$this->sta
406e0 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 68 69 73 2d 3e 64 65 70 65 bility.=.$stability;.$this->depe
40700 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a ndencyInfo.=.$dependencyInfo;.}.
40720 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 65 6e 64 65 6e 63 ....public.function.getDependenc
40740 79 49 6e 66 6f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e yInfo().{.return.$this->dependen
40760 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 cyInfo;.}.....public.function.ge
40780 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 tStability().{.return.$this->sta
407a0 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d bility;.}.}.<?php............nam
407c0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b espace.Composer\Repository\Pear;
407e0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 ..use.Composer\Util\RemoteFilesy
40800 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 stem;.........abstract.class.Bas
40820 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 43 48 41 4e 4e 45 eChannelReader.{....const.CHANNE
40840 4c 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 63 68 61 6e L_NS.=.'http://pear.php.net/chan
40860 6e 65 6c 2d 31 2e 30 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e nel-1.0';.const.ALL_CATEGORIES_N
40880 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 S.=.'http://pear.php.net/dtd/res
408a0 74 2e 61 6c 6c 63 61 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 41 54 45 47 4f 52 59 t.allcategories';.const.CATEGORY
408c0 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 _PACKAGES_INFO_NS.=.'http://pear
408e0 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 79 70 61 63 6b 61 67 .php.net/dtd/rest.categorypackag
40900 65 69 6e 66 6f 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 20 3d 20 einfo';.const.ALL_PACKAGES_NS.=.
40920 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 'http://pear.php.net/dtd/rest.al
40940 6c 70 61 63 6b 61 67 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e lpackages';.const.ALL_RELEASES_N
40960 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 S.=.'http://pear.php.net/dtd/res
40980 74 2e 61 6c 6c 72 65 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 4b 41 47 45 5f 49 4e t.allreleases';.const.PACKAGE_IN
409a0 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 FO_NS.=.'http://pear.php.net/dtd
409c0 2f 72 65 73 74 2e 70 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a /rest.package';...private.$rfs;.
409e0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 .protected.function.__construct(
40a00 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e RemoteFilesystem.$rfs).{.$this->
40a20 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 rfs.=.$rfs;.}..........protected
40a40 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e .function.requestContent($origin
40a60 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c ,.$path).{.$url.=.rtrim($origin,
40a80 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b .'/')...'/'...ltrim($path,.'/');
40aa0 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 .$content.=.$this->rfs->getConte
40ac0 6e 74 73 28 24 6f 72 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 nts($origin,.$url,.false);.if.(!
40ae0 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 $content).{.throw.new.\Unexpecte
40b00 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 dValueException('The.PEAR.channe
40b20 6c 20 61 74 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e l.at.'...$url...'.did.not.respon
40b40 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a d.');.}..return.$content;.}.....
40b60 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 58 .....protected.function.requestX
40b80 6d 6c 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 6d 6c 20 3d 20 73 69 ml($origin,.$path).{...$xml.=.si
40ba0 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 72 65 71 75 65 mplexml_load_string($this->reque
40bc0 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 2c 20 22 53 69 6d 70 stContent($origin,.$path),."Simp
40be0 6c 65 58 4d 4c 45 6c 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 52 52 4f 52 29 3b 0a leXMLElement",.LIBXML_NOERROR);.
40c00 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 72 74 72 .if.(false.==.$xml).{.$url.=.rtr
40c20 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 im($origin,.'/')...'/'...ltrim($
40c40 70 61 74 68 2c 20 27 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 path,.'/');.throw.new.\Unexpecte
40c60 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 50 45 41 dValueException(sprintf('The.PEA
40c80 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 2e 20 27 20 69 73 20 R.channel.at.'...$origin...'.is.
40ca0 62 72 6f 6b 65 6e 2e 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 69 6c 65 20 60 25 73 broken..(Invalid.XML.at.file.`%s
40cc0 60 29 27 2c 20 24 70 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 78 6d 6c 3b 0a 7d 0a `)',.$path));.}..return.$xml;.}.
40ce0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
40d00 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 poser\Repository\Pear;..use.Comp
40d20 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 oser\Downloader\TransportExcepti
40d40 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 on;.............class.ChannelRes
40d60 74 31 30 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 t10Reader.extends.BaseChannelRea
40d80 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b der.{.private.$dependencyReader;
40da0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 ..public.function.__construct($r
40dc0 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b fs).{.parent::__construct($rfs);
40de0 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 ..$this->dependencyReader.=.new.
40e00 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a PackageDependencyParser();.}....
40e20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 .....public.function.read($baseU
40e40 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 73 rl).{.return.$this->readPackages
40e60 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ($baseUrl);.}.........private.fu
40e80 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a nction.readPackages($baseUrl).{.
40ea0 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 $result.=.array();..$xmlPath.=.'
40ec0 2f 70 2f 70 61 63 6b 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e /p/packages.xml';.$xml.=.$this->
40ee0 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a requestXml($baseUrl,.$xmlPath);.
40f00 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 $xml->registerXPathNamespace('ns
40f20 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 ',.self::ALL_PACKAGES_NS);.forea
40f40 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 27 29 20 61 73 20 24 6e 6f 64 65 ch.($xml->xpath('ns:p').as.$node
40f60 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 ).{.$packageName.=.(string).$nod
40f80 65 3b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 e;.$packageInfo.=.$this->readPac
40fa0 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 kage($baseUrl,.$packageName);.$r
40fc0 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 esult[].=.$packageInfo;.}..retur
40fe0 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 n.$result;.}..........private.fu
41000 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 nction.readPackage($baseUrl,.$pa
41020 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 27 20 2e 20 ckageName).{.$xmlPath.=.'/p/'...
41040 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 69 6e 66 strtolower($packageName)...'/inf
41060 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c o.xml';.$xml.=.$this->requestXml
41080 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 ($baseUrl,.$xmlPath);.$xml->regi
410a0 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 50 sterXPathNamespace('ns',.self::P
410c0 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d ACKAGE_INFO_NS);..$channelName.=
410e0 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 .(string).$xml->c;.$packageName.
41100 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 =.(string).$xml->n;.$license.=.(
41120 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 string).$xml->l;.$shortDescripti
41140 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 on.=.(string).$xml->s;.$descript
41160 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a 72 65 74 75 72 6e 20 ion.=.(string).$xml->d;..return.
41180 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 new.PackageInfo(.$channelName,.$
411a0 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 packageName,.$license,.$shortDes
411c0 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 74 68 69 73 2d 3e 72 cription,.$description,.$this->r
411e0 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 eadPackageReleases($baseUrl,.$pa
41200 63 6b 61 67 65 4e 61 6d 65 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ckageName).);.}...........privat
41220 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 e.function.readPackageReleases($
41240 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 baseUrl,.$packageName).{.$result
41260 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f .=.array();..try.{.$xmlPath.=.'/
41280 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e r/'...strtolower($packageName)..
412a0 20 27 2f 61 6c 6c 72 65 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 .'/allreleases.xml';.$xml.=.$thi
412c0 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 s->requestXml($baseUrl,.$xmlPath
412e0 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 );.$xml->registerXPathNamespace(
41300 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 29 3b 0a 66 6f 'ns',.self::ALL_RELEASES_NS);.fo
41320 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 72 27 29 20 61 73 20 24 6e reach.($xml->xpath('ns:r').as.$n
41340 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 ode).{.$releaseVersion.=.(string
41360 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 ).$node->v;.$releaseStability.=.
41380 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c (string).$node->s;..try.{.$resul
413a0 74 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 t[$releaseVersion].=.new.Release
413c0 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 24 74 68 69 73 2d 3e Info(.$releaseStability,.$this->
413e0 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 readPackageReleaseDependencies($
41400 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 6c 65 61 73 65 56 baseUrl,.$packageName,.$releaseV
41420 65 72 73 69 6f 6e 29 0a 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 ersion).);.}.catch.(TransportExc
41440 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 eption.$exception).{.if.($except
41460 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 ion->getCode().!=.404).{.throw.$
41480 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 exception;.}.}.}.}.catch.(Transp
414a0 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 ortException.$exception).{.if.($
414c0 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 exception->getCode().!=.404).{.t
414e0 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 hrow.$exception;.}.}..return.$re
41500 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 sult;.}...........private.functi
41520 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 on.readPackageReleaseDependencie
41540 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 s($baseUrl,.$packageName,.$versi
41560 6f 6e 29 0a 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 on).{.$dependencyReader.=.new.Pa
41580 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 0a 24 64 65 70 74 68 ckageDependencyParser();..$depth
415a0 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 Path.=.'/r/'...strtolower($packa
415c0 67 65 4e 61 6d 65 29 20 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 geName)...'/deps.'...$version...
415e0 27 2e 74 78 74 27 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 '.txt';.$content.=.$this->reques
41600 74 43 6f 6e 74 65 6e 74 28 24 62 61 73 65 55 72 6c 2c 20 24 64 65 70 74 68 50 61 74 68 29 3b 0a tContent($baseUrl,.$depthPath);.
41620 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 24 $dependencyArray.=.unserialize($
41640 63 6f 6e 74 65 6e 74 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 52 content);.$result.=.$dependencyR
41660 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 eader->buildDependencyInfo($depe
41680 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d ndencyArray);..return.$result;.}
416a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
416c0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Repository;..use.Composer
416e0 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a \Package\PackageInterface;......
41700 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 ...interface.RepositoryInterface
41720 20 65 78 74 65 6e 64 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 53 45 41 52 .extends.\Countable.{.const.SEAR
41740 43 48 5f 46 55 4c 4c 54 45 58 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 45 41 52 43 48 5f 4e 41 CH_FULLTEXT.=.0;.const.SEARCH_NA
41760 4d 45 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ME.=.1;.........public.function.
41780 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 hasPackage(PackageInterface.$pac
417a0 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 kage);..........public.function.
417c0 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a findPackage($name,.$version);...
417e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 .......public.function.findPacka
41800 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a ges($name,.$version.=.null);....
41820 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 ...public.function.getPackages()
41840 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 ;.........public.function.search
41860 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ($query,.$mode.=.0);.}.<?php....
41880 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ........namespace.Composer\Repos
418a0 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 itory;..use.Composer\IO\IOInterf
418c0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b ace;.use.Composer\Json\JsonFile;
418e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 .use.Composer\Package\Loader\Arr
41900 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 74 69 66 61 63 74 52 65 70 6f ayLoader;.....class.ArtifactRepo
41920 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b sitory.extends.ArrayRepository.{
41940 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 ..protected.$loader;..protected.
41960 24 6c 6f 6f 6b 75 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 $lookup;..public.function.__cons
41980 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 truct(array.$repoConfig,.IOInter
419a0 66 61 63 65 20 24 69 6f 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 face.$io).{.if.(!extension_loade
419c0 64 28 27 7a 69 70 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 d('zip')).{.throw.new.\RuntimeEx
419e0 63 65 70 74 69 6f 6e 28 27 54 68 65 20 61 72 74 69 66 61 63 74 20 72 65 70 6f 73 69 74 6f 72 79 ception('The.artifact.repository
41a00 20 72 65 71 75 69 72 65 73 20 50 48 50 5c 27 73 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 27 29 .requires.PHP\'s.zip.extension')
41a20 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f ;.}..$this->loader.=.new.ArrayLo
41a40 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 20 3d 20 24 72 65 70 6f 43 6f 6e ader();.$this->lookup.=.$repoCon
41a60 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a fig['url'];.$this->io.=.$io;.}..
41a80 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a protected.function.initialize().
41aa0 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e {.parent::initialize();..$this->
41ac0 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 29 3b 0a 7d 0a scanDirectory($this->lookup);.}.
41ae0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 .private.function.scanDirectory(
41b00 24 70 61 74 68 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 0a 24 64 69 72 65 $path).{.$io.=.$this->io;..$dire
41b20 63 74 6f 72 79 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 ctory.=.new.\RecursiveDirectoryI
41b40 74 65 72 61 74 6f 72 28 24 70 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 terator($path);.$iterator.=.new.
41b60 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 \RecursiveIteratorIterator($dire
41b80 63 74 6f 72 79 29 3b 0a 24 72 65 67 65 78 20 3d 20 6e 65 77 20 5c 52 65 67 65 78 49 74 65 72 61 ctory);.$regex.=.new.\RegexItera
41ba0 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 27 2f 5e 2e 2b 5c 2e 28 7a 69 70 7c 70 68 61 72 29 tor($iterator,.'/^.+\.(zip|phar)
41bc0 24 2f 69 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 67 65 78 20 61 73 20 24 66 69 6c 65 29 $/i');.foreach.($regex.as.$file)
41be0 20 7b 0a 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 63 6f 6e 74 .{..if.(!$file->isFile()).{.cont
41c00 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f inue;.}..$package.=.$this->getCo
41c20 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 66 69 6c 65 29 3b 0a 69 66 20 28 21 24 mposerInformation($file);.if.(!$
41c40 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 package).{.if.($io->isVerbose())
41c60 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 22 46 69 6c 65 20 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 66 .{.$io->write("File.<comment>{$f
41c80 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 6d 65 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 64 6f ile->getBasename()}</comment>.do
41ca0 65 73 6e 27 74 20 73 65 65 6d 20 74 6f 20 68 6f 6c 64 20 61 20 70 61 63 6b 61 67 65 22 29 3b 0a esn't.seem.to.hold.a.package");.
41cc0 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 }.continue;.}..if.($io->isVerbos
41ce0 65 28 29 29 20 7b 0a 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 46 6f 75 6e 64 20 70 61 63 6b 61 67 e()).{.$template.=.'Found.packag
41d00 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f e.<info>%s</info>.(<comment>%s</
41d20 63 6f 6d 6d 65 6e 74 3e 29 20 69 6e 20 66 69 6c 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f comment>).in.file.<info>%s</info
41d40 3e 27 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 >';.$io->write(sprintf($template
41d60 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d ,.$package->getName(),.$package-
41d80 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 66 69 6c 65 2d 3e 67 65 74 42 >getPrettyVersion(),.$file->getB
41da0 61 73 65 6e 61 6d 65 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 asename()));.}..$this->addPackag
41dc0 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 e($package);.}.}..private.functi
41de0 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 5c 53 70 6c 46 69 on.getComposerInformation(\SplFi
41e00 6c 65 49 6e 66 6f 20 24 66 69 6c 65 29 0a 7b 0a 24 7a 69 70 20 3d 20 6e 65 77 20 5c 5a 69 70 41 leInfo.$file).{.$zip.=.new.\ZipA
41e20 72 63 68 69 76 65 28 29 3b 0a 24 7a 69 70 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 2d 3e 67 65 74 50 rchive();.$zip->open($file->getP
41e40 61 74 68 6e 61 6d 65 28 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 24 7a 69 70 2d 3e 6e 75 6d 46 athname());..if.(0.==.$zip->numF
41e60 69 6c 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 46 iles).{.return.false;.}..$foundF
41e80 69 6c 65 49 6e 64 65 78 20 3d 20 24 7a 69 70 2d 3e 6c 6f 63 61 74 65 4e 61 6d 65 28 27 63 6f 6d ileIndex.=.$zip->locateName('com
41ea0 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 5c 5a 69 70 41 72 63 68 69 76 65 3a 3a 46 4c 5f 4e 4f 44 poser.json',.\ZipArchive::FL_NOD
41ec0 49 52 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 IR);.if.(false.===.$foundFileInd
41ee0 65 78 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 75 72 ex).{.return.false;.}..$configur
41f00 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 20 3d 20 24 7a 69 70 2d 3e 67 65 74 4e 61 6d 65 49 6e 64 ationFileName.=.$zip->getNameInd
41f20 65 78 28 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 46 ex($foundFileIndex);..$composerF
41f40 69 6c 65 20 3d 20 22 7a 69 70 3a 2f 2f 7b 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 ile.=."zip://{$file->getPathname
41f60 28 29 7d 23 24 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 22 3b 0a 24 6a 73 ()}#$configurationFileName";.$js
41f80 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6f 6d 70 6f 73 65 72 on.=.file_get_contents($composer
41fa0 46 69 6c 65 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 File);..$package.=.JsonFile::par
41fc0 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 24 70 seJson($json,.$composerFile);.$p
41fe0 61 63 6b 61 67 65 5b 27 64 69 73 74 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d ackage['dist'].=.array(.'type'.=
42000 3e 20 27 7a 69 70 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c >.'zip',.'url'.=>.$file->getReal
42020 50 61 74 68 28 29 2c 0a 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 Path(),.'reference'.=>.$file->ge
42040 74 42 61 73 65 6e 61 6d 65 28 29 2c 0a 27 73 68 61 73 75 6d 27 20 3d 3e 20 73 68 61 31 5f 66 69 tBasename(),.'shasum'.=>.sha1_fi
42060 6c 65 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 70 61 le($file->getRealPath()).);..$pa
42080 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 ckage.=.$this->loader->load($pac
420a0 6b 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 kage);..return.$package;.}.}.<?p
420c0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
420e0 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Repository;..use.Composer\Packa
42100 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f ge\Loader\ArrayLoader;.use.Compo
42120 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 ser\Package\Loader\ValidatingArr
42140 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 ayLoader;.......class.PackageRep
42160 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a ository.extends.ArrayRepository.
42180 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 {.private.$config;.......public.
421a0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 function.__construct(array.$conf
421c0 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 ig).{.$this->config.=.$config['p
421e0 61 63 6b 61 67 65 27 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 ackage'];....if.(!is_numeric(key
42200 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ($this->config))).{.$this->confi
42220 67 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a g.=.array($this->config);.}.}...
42240 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 ..protected.function.initialize(
42260 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 ).{.parent::initialize();..$load
42280 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e er.=.new.ValidatingArrayLoader(n
422a0 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 2c 20 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 ew.ArrayLoader,.false);.foreach.
422c0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 72 ($this->config.as.$package).{.tr
422e0 79 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 y.{.$package.=.$loader->load($pa
42300 63 6b 61 67 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 ckage);.}.catch.(\Exception.$e).
42320 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 {.throw.new.InvalidRepositoryExc
42340 65 70 74 69 6f 6e 28 27 41 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 66 20 74 79 70 65 20 22 70 61 eption('A.repository.of.type."pa
42360 63 6b 61 67 65 22 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 70 61 63 6b 61 ckage".contains.an.invalid.packa
42380 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 ge.definition:.'.$e->getMessage(
423a0 29 2e 22 5c 6e 5c 6e 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f )."\n\nInvalid.package.definitio
423c0 6e 3a 5c 6e 22 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a n:\n".json_encode($package));.}.
423e0 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a .$this->addPackage($package);.}.
42400 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
42420 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d omposer\Package;.......class.Com
42440 70 6c 65 74 65 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 20 69 6d 70 pletePackage.extends.Package.imp
42460 6c 65 6d 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 lements.CompletePackageInterface
42480 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 6f 74 .{.protected.$repositories;.prot
424a0 65 63 74 65 64 20 24 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 ected.$license.=.array();.protec
424c0 74 65 64 20 24 6b 65 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 ted.$keywords;.protected.$author
424e0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 s;.protected.$description;.prote
42500 63 74 65 64 20 24 68 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 cted.$homepage;.protected.$scrip
42520 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 70 70 6f 72 74 ts.=.array();.protected.$support
42540 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.array();.....public.function.
42560 73 65 74 53 63 72 69 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a 7b 0a 24 74 68 setScripts(array.$scripts).{.$th
42580 69 73 2d 3e 73 63 72 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 is->scripts.=.$scripts;.}.....pu
425a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 blic.function.getScripts().{.ret
425c0 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urn.$this->scripts;.}.......publ
425e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 ic.function.setRepositories($rep
42600 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 ositories).{.$this->repositories
42620 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .=.$repositories;.}.....public.f
42640 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 unction.getRepositories().{.retu
42660 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->repositories;.}.......
42680 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 public.function.setLicense(array
426a0 20 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c .$license).{.$this->license.=.$l
426c0 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 icense;.}.....public.function.ge
426e0 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e tLicense().{.return.$this->licen
42700 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4b se;.}.......public.function.setK
42720 65 79 77 6f 72 64 73 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 68 69 73 eywords(array.$keywords).{.$this
42740 2d 3e 6b 65 79 77 6f 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ->keywords.=.$keywords;.}.....pu
42760 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 blic.function.getKeywords().{.re
42780 74 75 72 6e 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 turn.$this->keywords;.}.......pu
427a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 79 20 24 blic.function.setAuthors(array.$
427c0 61 75 74 68 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 61 75 74 authors).{.$this->authors.=.$aut
427e0 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 hors;.}.....public.function.getA
42800 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 uthors().{.return.$this->authors
42820 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 ;.}.......public.function.setDes
42840 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e cription($description).{.$this->
42860 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a description.=.$description;.}...
42880 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e ..public.function.getDescription
428a0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a ().{.return.$this->description;.
428c0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 6d 65 70 }.......public.function.setHomep
428e0 61 67 65 28 24 68 6f 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 age($homepage).{.$this->homepage
42900 20 3d 20 24 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .=.$homepage;.}.....public.funct
42920 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.getHomepage().{.return.$this
42940 2d 3e 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ->homepage;.}.......public.funct
42960 69 6f 6e 20 73 65 74 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b ion.setSupport(array.$support).{
42980 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a .$this->support.=.$support;.}...
429a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b ..public.function.getSupport().{
429c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 .return.$this->support;.}.}.<?ph
429e0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
42a00 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 Package\Dumper;..use.Composer\Pa
42a20 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c ckage\BasePackage;.use.Composer\
42a40 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f Package\PackageInterface;.use.Co
42a60 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e mposer\Package\CompletePackageIn
42a80 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f terface;.use.Composer\Package\Ro
42aa0 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 otPackageInterface;.use.Composer
42ac0 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 \Package\Link;......class.ArrayD
42ae0 75 6d 70 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 umper.{.public.function.dump(Pac
42b00 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 kageInterface.$package).{.$keys.
42b20 3d 20 61 72 72 61 79 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 =.array(.'binaries'.=>.'bin',.'t
42b40 79 70 65 27 2c 0a 27 65 78 74 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 ype',.'extra',.'installationSour
42b60 63 65 27 20 3d 3e 20 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 ce'.=>.'installation-source',.'a
42b80 75 74 6f 6c 6f 61 64 27 2c 0a 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 27 20 3d 3e 20 27 utoload',.'notificationUrl'.=>.'
42ba0 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 notification-url',.'includePaths
42bc0 27 20 3d 3e 20 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d '.=>.'include-path',.);..$data.=
42be0 20 61 72 72 61 79 28 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 .array();.$data['name'].=.$packa
42c00 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 ge->getPrettyName();.$data['vers
42c20 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ion'].=.$package->getPrettyVersi
42c40 6f 6e 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 on();.$data['version_normalized'
42c60 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 ].=.$package->getVersion();..if.
42c80 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 ($package->getTargetDir()).{.$da
42ca0 74 61 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ta['target-dir'].=.$package->get
42cc0 54 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 TargetDir();.}..if.($package->ge
42ce0 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d tSourceType()).{.$data['source']
42d00 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 ['type'].=.$package->getSourceTy
42d20 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 pe();.$data['source']['url'].=.$
42d40 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 package->getSourceUrl();.$data['
42d60 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 source']['reference'].=.$package
42d80 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 ->getSourceReference();.}..if.($
42da0 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b package->getDistType()).{.$data[
42dc0 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 'dist']['type'].=.$package->getD
42de0 69 73 74 54 79 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 istType();.$data['dist']['url'].
42e00 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b =.$package->getDistUrl();.$data[
42e20 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 'dist']['reference'].=.$package-
42e40 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 >getDistReference();.$data['dist
42e60 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 ']['shasum'].=.$package->getDist
42e80 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d Sha1Checksum();.}..if.($package-
42ea0 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 >getArchiveExcludes()).{.$data['
42ec0 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d archive']['exclude'].=.$package-
42ee0 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 >getArchiveExcludes();.}..foreac
42f00 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 h.(BasePackage::$supportedLinkTy
42f20 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 pes.as.$type.=>.$opts).{.if.($li
42f40 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 nks.=.$package->{'get'.ucfirst($
42f60 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 opts['method'])}()).{.foreach.($
42f80 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 links.as.$link).{.$data[$type][$
42fa0 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 link->getTarget()].=.$link->getP
42fc0 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 64 61 74 61 rettyConstraint();.}.ksort($data
42fe0 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d 20 24 [$type]);.}.}..if.($packages.=.$
43000 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b 73 6f 72 74 28 package->getSuggests()).{.ksort(
43020 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 $packages);.$data['suggest'].=.$
43040 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 packages;.}..if.($package->getRe
43060 6c 65 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d 20 24 leaseDate()).{.$data['time'].=.$
43080 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 2d 3e 66 6f 72 6d 61 package->getReleaseDate()->forma
430a0 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 t('Y-m-d.H:i:s');.}..$data.=.$th
430c0 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 is->dumpValues($package,.$keys,.
430e0 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 $data);..if.($package.instanceof
43100 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6b 65 .CompletePackageInterface).{.$ke
43120 79 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 65 6e 73 65 27 ys.=.array(.'scripts',.'license'
43140 2c 0a 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 0a 27 68 6f 6d ,.'authors',.'description',.'hom
43160 65 70 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 epage',.'keywords',.'repositorie
43180 73 27 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 s',.'support',.);..$data.=.$this
431a0 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 ->dumpValues($package,.$keys,.$d
431c0 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 ata);..if.(isset($data['keywords
431e0 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 ']).&&.is_array($data['keywords'
43200 5d 29 29 20 7b 0a 73 6f 72 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d ])).{.sort($data['keywords']);.}
43220 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 .}..if.($package.instanceof.Root
43240 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 PackageInterface).{.$minimumStab
43260 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 ility.=.$package->getMinimumStab
43280 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 ility();.if.($minimumStability).
432a0 7b 0a 24 64 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 20 24 {.$data['minimum-stability'].=.$
432c0 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 minimumStability;.}.}..return.$d
432e0 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 56 61 6c ata;.}..private.function.dumpVal
43300 75 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 ues(PackageInterface.$package,.a
43320 72 72 61 79 20 24 6b 65 79 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 66 6f 72 65 61 rray.$keys,.array.$data).{.forea
43340 63 68 20 28 24 6b 65 79 73 20 61 73 20 24 6d 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a ch.($keys.as.$method.=>.$key).{.
43360 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 if.(is_numeric($method)).{.$meth
43380 6f 64 20 3d 20 24 6b 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 od.=.$key;.}..$getter.=.'get'.uc
433a0 66 69 72 73 74 28 24 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 first($method);.$value.=.$packag
433c0 65 2d 3e 24 67 65 74 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c e->$getter();..if.(null.!==.$val
433e0 75 65 20 26 26 20 21 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d ue.&&.!(is_array($value).&&.0.==
43400 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 =.count($value))).{.$data[$key].
43420 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d =.$value;.}.}..return.$data;.}.}
43440 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
43460 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 oser\Package\Loader;.....class.I
43480 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c nvalidPackageException.extends.\
434a0 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 72 69 Exception.{.private.$errors;.pri
434c0 76 61 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 61 3b 0a 0a vate.$warnings;.private.$data;..
434e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 public.function.__construct(arra
43500 79 20 24 65 72 72 6f 72 73 2c 20 61 72 72 61 79 20 24 77 61 72 6e 69 6e 67 73 2c 20 61 72 72 61 y.$errors,.array.$warnings,.arra
43520 79 20 24 64 61 74 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f y.$data).{.$this->errors.=.$erro
43540 72 73 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 24 77 61 72 6e 69 6e 67 73 3b rs;.$this->warnings.=.$warnings;
43560 0a 24 74 68 69 73 2d 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f .$this->data.=.$data;.parent::__
43580 63 6f 6e 73 74 72 75 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 construct("Invalid.package.infor
435a0 6d 61 74 69 6f 6e 3a 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f mation:.\n".implode("\n",.array_
435c0 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 29 29 3b 0a 7d 0a 0a merge($errors,.$warnings)));.}..
435e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 public.function.getData().{.retu
43600 72 6e 20 24 74 68 69 73 2d 3e 64 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rn.$this->data;.}..public.functi
43620 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 on.getErrors().{.return.$this->e
43640 72 72 6f 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 rrors;.}..public.function.getWar
43660 6e 69 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 nings().{.return.$this->warnings
43680 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
436a0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 .Composer\Package\Loader;..use.C
436c0 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 omposer\Json\JsonFile;.....class
436e0 20 4a 73 6f 6e 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a .JsonLoader.{.private.$loader;..
43700 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 public.function.__construct(Load
43720 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f erInterface.$loader).{.$this->lo
43740 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ader.=.$loader;.}......public.fu
43760 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 nction.load($json).{.if.($json.i
43780 6e 73 74 61 6e 63 65 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 nstanceof.JsonFile).{.$config.=.
437a0 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 $json->read();.}.elseif.(file_ex
437c0 69 73 74 73 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c ists($json)).{.$config.=.JsonFil
437e0 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 e::parseJson(file_get_contents($
43800 6a 73 6f 6e 29 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 json),.$json);.}.elseif.(is_stri
43820 6e 67 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a ng($json)).{.$config.=.JsonFile:
43840 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 :parseJson($json);.}..return.$th
43860 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c is->loader->load($config);.}.}.<
43880 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
438a0 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 er\Package\Loader;.......interfa
438c0 63 65 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ce.LoaderInterface.{........publ
438e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 2c ic.function.load(array.$package,
43900 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 .$class.=.'Composer\Package\Comp
43920 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a letePackage');.}.<?php..........
43940 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 ..namespace.Composer\Package\Loa
43960 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 der;..use.Composer\Package;.use.
43980 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 Composer\Package\AliasPackage;.u
439a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 41 6c 69 61 73 50 61 63 se.Composer\Package\RootAliasPac
439c0 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 kage;.use.Composer\Package\RootP
439e0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ackageInterface;.use.Composer\Pa
43a00 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a ckage\Version\VersionParser;....
43a20 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c ..class.ArrayLoader.implements.L
43a40 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 oaderInterface.{.protected.$vers
43a60 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ionParser;..public.function.__co
43a80 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 nstruct(VersionParser.$parser.=.
43aa0 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 65 72 20 null).{.if.(!$parser).{.$parser.
43ac0 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 =.new.VersionParser;.}.$this->ve
43ae0 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 rsionParser.=.$parser;.}..public
43b00 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 .function.load(array.$config,.$c
43b20 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 lass.=.'Composer\Package\Complet
43b40 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b ePackage').{.if.(!isset($config[
43b60 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 'name'])).{.throw.new.\Unexpecte
43b80 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 70 61 63 6b 61 67 65 dValueException('Unknown.package
43ba0 20 68 61 73 20 6e 6f 20 6e 61 6d 65 20 64 65 66 69 6e 65 64 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 .has.no.name.defined.('.json_enc
43bc0 6f 64 65 28 24 63 6f 6e 66 69 67 29 2e 27 29 2e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 ode($config).').');.}.if.(!isset
43be0 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ($config['version'])).{.throw.ne
43c00 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 w.\UnexpectedValueException('Pac
43c20 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 20 68 61 73 20 6e 6f 20 kage.'.$config['name'].'.has.no.
43c40 76 65 72 73 69 6f 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 version.defined.');.}....if.(iss
43c60 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d et($config['version_normalized']
43c80 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e )).{.$version.=.$config['version
43ca0 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e _normalized'];.}.else.{.$version
43cc0 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 .=.$this->versionParser->normali
43ce0 7a 65 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 24 70 61 63 6b 61 ze($config['version']);.}.$packa
43d00 67 65 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c ge.=.new.$class($config['name'],
43d20 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a .$version,.$config['version']);.
43d40 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b $package->setType(isset($config[
43d60 27 74 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 74 'type']).?.strtolower($config['t
43d80 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 ype']).:.'library');..if.(isset(
43da0 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 $config['target-dir'])).{.$packa
43dc0 67 65 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 ge->setTargetDir($config['target
43de0 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 -dir']);.}..if.(isset($config['e
43e00 78 74 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 xtra']).&&.is_array($config['ext
43e20 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 45 78 74 72 61 28 24 63 6f 6e ra'])).{.$package->setExtra($con
43e40 66 69 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e fig['extra']);.}..if.(isset($con
43e60 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 63 6f fig['bin'])).{.if.(!is_array($co
43e80 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 nfig['bin'])).{.throw.new.\Unexp
43ea0 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 ectedValueException('Package.'.$
43ec0 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 69 6e 20 6b 65 79 20 73 68 6f 75 config['name'].'\'s.bin.key.shou
43ee0 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 63 6f 6e 66 69 ld.be.an.array,.'.gettype($confi
43f00 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 g['bin']).'.given.');.}.foreach.
43f20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 62 69 6e 29 ($config['bin'].as.$key.=>.$bin)
43f40 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d 3d 20 6c 74 72 69 6d 28 24 .{.$config['bin'][$key]=.ltrim($
43f60 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 42 69 6e 61 72 69 bin,.'/');.}.$package->setBinari
43f80 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 es($config['bin']);.}..if.(isset
43fa0 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 ($config['installation-source'])
43fc0 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 ).{.$package->setInstallationSou
43fe0 72 63 65 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 rce($config['installation-source
44000 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 ']);.}..if.(isset($config['sourc
44020 65 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 e'])).{.if.(!isset($config['sour
44040 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b ce']['type']).||.!isset($config[
44060 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 'source']['url']).||.!isset($con
44080 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 29 20 7b 0a 74 fig['source']['reference'])).{.t
440a0 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
440c0 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 73 6f 75 72 63 65 on(sprintf(."Package.%s's.source
440e0 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 7b 5c 22 74 .key.should.be.specified.as.{\"t
44100 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 65 66 65 ype\":....,.\"url\":....,.\"refe
44120 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e rence\":....},\n%s.given.",.$con
44140 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 fig['name'],.json_encode($config
44160 5b 27 73 6f 75 72 63 65 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 ['source']).));.}.$package->setS
44180 6f 75 72 63 65 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 ourceType($config['source']['typ
441a0 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 63 6f e']);.$package->setSourceUrl($co
441c0 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 nfig['source']['url']);.$package
441e0 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f ->setSourceReference($config['so
44200 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 urce']['reference']);.}..if.(iss
44220 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 et($config['dist'])).{.if.(!isse
44240 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c 7c 20 21 69 t($config['dist']['type']).||.!i
44260 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a sset($config['dist']['url'])).{.
44280 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 throw.new.\UnexpectedValueExcept
442a0 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 64 69 73 74 20 ion(sprintf(."Package.%s's.dist.
442c0 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 22 2e 0a 22 7b key.should.be.specified.as.".."{
442e0 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 \"type\":....,.\"url\":....,.\"r
44300 65 66 65 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e 2e eference\":....,.\"shasum\":....
44320 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c },\n%s.given.",.$config['name'],
44340 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 0a 29 29 .json_encode($config['dist']).))
44360 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 24 63 6f 6e 66 69 ;.}.$package->setDistType($confi
44380 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 g['dist']['type']);.$package->se
443a0 74 44 69 73 74 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 tDistUrl($config['dist']['url'])
443c0 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 ;.$package->setDistReference(iss
443e0 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 et($config['dist']['reference'])
44400 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 .?.$config['dist']['reference'].
44420 3a 20 6e 75 6c 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 53 68 61 31 43 68 :.null);.$package->setDistSha1Ch
44440 65 63 6b 73 75 6d 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 ecksum(isset($config['dist']['sh
44460 61 73 75 6d 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 asum']).?.$config['dist']['shasu
44480 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 m'].:.null);.}..foreach.(Package
444a0 5c 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 \BasePackage::$supportedLinkType
444c0 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 s.as.$type.=>.$opts).{.if.(isset
444e0 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 ($config[$type])).{.$method.=.'s
44500 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 et'.ucfirst($opts['method']);.$p
44520 61 63 6b 61 67 65 2d 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f ackage->{$method}(.$this->versio
44540 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 nParser->parseLinks(.$package->g
44560 65 74 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 etName(),.$package->getPrettyVer
44580 73 69 6f 6e 28 29 2c 0a 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 sion(),.$opts['description'],.$c
445a0 6f 6e 66 69 67 5b 24 74 79 70 65 5d 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 onfig[$type].).);.}.}..if.(isset
445c0 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 ($config['suggest']).&&.is_array
445e0 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ($config['suggest'])).{.foreach.
44600 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d ($config['suggest'].as.$target.=
44620 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 >.$reason).{.if.('self.version'.
44640 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 ===.trim($reason)).{.$config['su
44660 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ggest'][$target].=.$package->get
44680 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 PrettyVersion();.}.}.$package->s
446a0 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a etSuggests($config['suggest']);.
446c0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d }..if.(isset($config['autoload']
446e0 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 )).{.$package->setAutoload($conf
44700 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 ig['autoload']);.}..if.(isset($c
44720 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 onfig['include-path'])).{.$packa
44740 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 ge->setIncludePaths($config['inc
44760 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e lude-path']);.}..if.(!empty($con
44780 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 69 6d 65 20 3d 20 63 74 79 70 65 5f 64 69 fig['time'])).{.$time.=.ctype_di
447a0 67 69 74 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 20 3f 20 27 40 27 2e 24 63 6f 6e 66 git($config['time']).?.'@'.$conf
447c0 69 67 5b 27 74 69 6d 65 27 5d 20 3a 20 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 3b 0a 0a 74 ig['time'].:.$config['time'];..t
447e0 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 69 6d 65 ry.{.$date.=.new.\DateTime($time
44800 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 ,.new.\DateTimeZone('UTC'));.$pa
44820 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 ckage->setReleaseDate($date);.}.
44840 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 catch.(\Exception.$e).{.}.}..if.
44860 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 (!empty($config['notification-ur
44880 6c 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f l'])).{.$package->setNotificatio
448a0 6e 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d nUrl($config['notification-url']
448c0 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 );.}..if.(!empty($config['archiv
448e0 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 e']['exclude'])).{.$package->set
44900 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 ArchiveExcludes($config['archive
44920 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 ']['exclude']);.}..if.($package.
44940 69 6e 73 74 61 6e 63 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 instanceof.Package\CompletePacka
44960 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 geInterface).{.if.(isset($config
44980 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 ['scripts']).&&.is_array($config
449a0 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 ['scripts'])).{.foreach.($config
449c0 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e ['scripts'].as.$event.=>.$listen
449e0 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 ers).{.$config['scripts'][$event
44a00 5d 20 3d 20 28 61 72 72 61 79 29 20 24 6c 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 ].=.(array).$listeners;.}.$packa
44a20 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 ge->setScripts($config['scripts'
44a40 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 ]);.}..if.(!empty($config['descr
44a60 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 iption']).&&.is_string($config['
44a80 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 description'])).{.$package->setD
44aa0 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 escription($config['description'
44ac0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 ]);.}..if.(!empty($config['homep
44ae0 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d age']).&&.is_string($config['hom
44b00 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 epage'])).{.$package->setHomepag
44b20 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 e($config['homepage']);.}..if.(!
44b40 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 empty($config['keywords']).&&.is
44b60 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 _array($config['keywords'])).{.$
44b80 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b 65 package->setKeywords($config['ke
44ba0 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 ywords']);.}..if.(!empty($config
44bc0 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 ['license'])).{.$package->setLic
44be0 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d ense(is_array($config['license']
44c00 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 ).?.$config['license'].:.array($
44c20 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 config['license']));.}..if.(!emp
44c40 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 ty($config['authors']).&&.is_arr
44c60 61 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 ay($config['authors'])).{.$packa
44c80 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 ge->setAuthors($config['authors'
44ca0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 ]);.}..if.(isset($config['suppor
44cc0 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f t'])).{.$package->setSupport($co
44ce0 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 nfig['support']);.}.}..if.($alia
44d00 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c sNormalized.=.$this->getBranchAl
44d20 69 61 73 28 24 63 6f 6e 66 69 67 29 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 ias($config)).{.if.($package.ins
44d40 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a tanceof.RootPackageInterface).{.
44d60 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 28 $package.=.new.RootAliasPackage(
44d80 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 $package,.$aliasNormalized,.preg
44da0 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 _replace('{(\.9{7})+}',.'.x',.$a
44dc0 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b liasNormalized));.}.else.{.$pack
44de0 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c age.=.new.AliasPackage($package,
44e00 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 .$aliasNormalized,.preg_replace(
44e20 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 '{(\.9{7})+}',.'.x',.$aliasNorma
44e40 6c 69 7a 65 64 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d lized));.}.}..return.$package;.}
44e60 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 ........public.function.getBranc
44e80 68 41 6c 69 61 73 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 27 64 65 76 hAlias(array.$config).{.if.('dev
44ea0 2d 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d -'.!==.substr($config['version']
44ec0 2c 20 30 2c 20 34 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 ,.0,.4).||.!isset($config['extra
44ee0 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 ']['branch-alias']).||.!is_array
44f00 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 ($config['extra']['branch-alias'
44f20 5d 29 0a 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 ]).).{.return;.}..foreach.($conf
44f40 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 ig['extra']['branch-alias'].as.$
44f60 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b sourceBranch.=>.$targetBranch).{
44f80 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 ...if.('-dev'.!==.substr($target
44fa0 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 Branch,.-4)).{.continue;.}....$v
44fc0 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 alidatedTargetBranch.=.$this->ve
44fe0 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 rsionParser->normalizeBranch(sub
45000 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 str($targetBranch,.0,.-4));.if.(
45020 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 '-dev'.!==.substr($validatedTarg
45040 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 etBranch,.-4)).{.continue;.}....
45060 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 if.(strtolower($config['version'
45080 5d 29 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 ]).!==.strtolower($sourceBranch)
450a0 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 ).{.continue;.}..return.$validat
450c0 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a edTargetBranch;.}.}.}.<?php.....
450e0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 .......namespace.Composer\Packag
45100 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b e\Loader;..use.Composer\Package;
45120 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 .use.Composer\Package\BasePackag
45140 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c e;.use.Composer\Package\Version\
45160 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 VersionParser;.....class.Validat
45180 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 ingArrayLoader.implements.Loader
451a0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 Interface.{.private.$loader;.pri
451c0 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 65 72 vate.$versionParser;.private.$er
451e0 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 rors;.private.$warnings;.private
45200 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 0a .$config;.private.$strictName;..
45220 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 public.function.__construct(Load
45240 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 2c 20 24 73 74 72 69 63 74 4e 61 6d 65 erInterface.$loader,.$strictName
45260 20 3d 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d .=.true,.VersionParser.$parser.=
45280 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 .null).{.$this->loader.=.$loader
452a0 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 ;.$this->versionParser.=.$parser
452c0 20 3f 3a 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e .?:.new.VersionParser();.$this->
452e0 73 74 72 69 63 74 4e 61 6d 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 strictName.=.$strictName;.}..pub
45300 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c lic.function.load(array.$config,
45320 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 .$class.=.'Composer\Package\Comp
45340 6c 65 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 letePackage').{.$this->errors.=.
45360 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 array();.$this->warnings.=.array
45380 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 69 66 ();.$this->config.=.$config;..if
453a0 20 28 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 .($this->strictName).{.$this->va
453c0 6c 69 64 61 74 65 52 65 67 65 78 28 27 6e 61 6d 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d lidateRegex('name',.'[A-Za-z0-9]
453e0 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 2f 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 [A-Za-z0-9_.-]*/[A-Za-z0-9][A-Za
45400 2d 7a 30 2d 39 5f 2e 2d 5d 2a 27 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 -z0-9_.-]*',.true);.}.else.{.$th
45420 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6e 61 6d 65 27 2c 20 74 72 75 65 29 is->validateString('name',.true)
45440 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 ;.}..if.(!empty($this->config['v
45460 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f ersion'])).{.try.{.$this->versio
45480 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 nParser->normalize($this->config
454a0 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f ['version']);.}.catch.(\Exceptio
454c0 6e 20 24 65 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 n.$e).{.unset($this->config['ver
454e0 73 69 6f 6e 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 sion']);.$this->errors[].=.'vers
45500 69 6f 6e 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f ion.:.invalid.value.('.$this->co
45520 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 nfig['version'].'):.'.$e->getMes
45540 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 sage();.}.}..$this->validateRege
45560 78 28 27 74 79 70 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 x('type',.'[A-Za-z0-9-]+');.$thi
45580 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b s->validateString('target-dir');
455a0 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a .$this->validateArray('extra');.
455c0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 62 69 6e 27 29 3b $this->validateFlatArray('bin');
455e0 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 63 72 69 70 74 73 27 29 .$this->validateArray('scripts')
45600 3b 20 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 ;...$this->validateString('descr
45620 69 70 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f iption');.$this->validateUrl('ho
45640 6d 65 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 mepage');.$this->validateFlatArr
45660 61 79 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 20 2e 5f 2d 5d 2b ay('keywords',.'[A-Za-z0-9.._-]+
45680 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 ');..if.(isset($this->config['li
456a0 63 65 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d cense'])).{.if.(is_string($this-
456c0 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 >config['license'])).{.$this->va
456e0 6c 69 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 lidateRegex('license',.'[A-Za-z0
45700 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 -9+..()-]+');.}.else.{.$this->va
45720 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a lidateFlatArray('license',.'[A-Z
45740 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 a-z0-9+..()-]+');.}.}..$this->va
45760 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 lidateString('time');.if.(!empty
45780 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b ($this->config['time'])).{.try.{
457a0 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f .$date.=.new.\DateTime($this->co
457c0 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 nfig['time'],.new.\DateTimeZone(
457e0 27 55 54 43 27 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 'UTC'));.}.catch.(\Exception.$e)
45800 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 74 69 6d 65 20 3a 20 69 6e 76 .{.$this->errors[].=.'time.:.inv
45820 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d alid.value.('.$this->config['tim
45840 65 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 e'].'):.'.$e->getMessage();.unse
45860 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 t($this->config['time']);.}.}..i
45880 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 68 6f 72 73 f.($this->validateArray('authors
458a0 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 ').&&.!empty($this->config['auth
458c0 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 ors'])).{.foreach.($this->config
458e0 5b 27 61 75 74 68 6f 72 73 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 61 75 74 68 6f 72 29 20 ['authors'].as.$key.=>.$author).
45900 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 75 74 68 6f 72 29 29 20 7b 0a 24 74 68 69 {.if.(!is_array($author)).{.$thi
45920 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 20 s->errors[].=.'authors.'.$key.'.
45940 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 :.should.be.an.array,.'.gettype(
45960 24 61 75 74 68 6f 72 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e $author).'.given';.unset($this->
45980 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e config['authors'][$key]);.contin
459a0 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 68 6f 6d 65 70 61 67 65 27 2c ue;.}.foreach.(array('homepage',
459c0 20 27 65 6d 61 69 6c 27 2c 20 27 6e 61 6d 65 27 2c 20 27 72 6f 6c 65 27 29 20 61 73 20 24 61 75 .'email',.'name',.'role').as.$au
459e0 74 68 6f 72 44 61 74 61 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 24 61 thorData).{.if.(isset($author[$a
45a00 75 74 68 6f 72 44 61 74 61 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f uthorData]).&&.!is_string($autho
45a20 72 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 r[$authorData])).{.$this->errors
45a40 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 27 2e 24 61 75 74 68 6f 72 [].=.'authors.'.$key.'.'.$author
45a60 44 61 74 61 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 Data.'.:.invalid.value,.must.be.
45a80 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 a.string';.unset($this->config['
45aa0 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 3b 0a 7d authors'][$key][$authorData]);.}
45ac0 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d .}.if.(isset($author['homepage']
45ae0 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 61 75 74 68 6f 72 5b 27 ).&&.!$this->filterUrl($author['
45b00 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d homepage'])).{.$this->warnings[]
45b20 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 68 6f 6d 65 70 61 67 65 20 3a 20 .=.'authors.'.$key.'.homepage.:.
45b40 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 invalid.value.('.$author['homepa
45b60 67 65 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 ge'].'),.must.be.an.http/https.U
45b80 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 RL';.unset($this->config['author
45ba0 73 27 5d 5b 24 6b 65 79 5d 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 s'][$key]['homepage']);.}.if.(is
45bc0 73 65 74 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 set($author['email']).&&.!filter
45be0 5f 76 61 72 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 _var($author['email'],.FILTER_VA
45c00 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 LIDATE_EMAIL)).{.$this->warnings
45c20 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 [].=.'authors.'.$key.'.email.:.i
45c40 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d nvalid.value.('.$author['email']
45c60 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 .'),.must.be.a.valid.email.addre
45c80 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 ss';.unset($this->config['author
45ca0 73 27 5d 5b 24 6b 65 79 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 s'][$key]['email']);.}.if.(empty
45cc0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 ($this->config['authors'][$key])
45ce0 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 ).{.unset($this->config['authors
45d00 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e '][$key]);.}.}.if.(empty($this->
45d20 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 config['authors'])).{.unset($thi
45d40 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 s->config['authors']);.}.}..if.(
45d60 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 70 70 6f 72 74 27 29 20 $this->validateArray('support').
45d80 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 &&.!empty($this->config['support
45da0 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 '])).{.foreach.(array('issues',.
45dc0 27 66 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 65 6d 61 69 'forum',.'wiki',.'source',.'emai
45de0 6c 27 2c 20 27 69 72 63 27 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 l',.'irc').as.$key).{.if.(isset(
45e00 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 $this->config['support'][$key]).
45e20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 &&.!is_string($this->config['sup
45e40 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d port'][$key])).{.$this->errors[]
45e60 20 3d 20 27 73 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 .=.'support.'.$key.'.:.invalid.v
45e80 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 alue,.must.be.a.string';.unset($
45ea0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a this->config['support'][$key]);.
45ec0 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 }.}..if.(isset($this->config['su
45ee0 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 pport']['email']).&&.!filter_var
45f00 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c ($this->config['support']['email
45f20 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 '],.FILTER_VALIDATE_EMAIL)).{.$t
45f40 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c his->warnings[].=.'support.email
45f60 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 .:.invalid.value.('.$this->confi
45f80 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 g['support']['email'].'),.must.b
45fa0 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 e.a.valid.email.address';.unset(
45fc0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 $this->config['support']['email'
45fe0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 ]);.}..if.(isset($this->config['
46000 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c support']['irc']).&&.!$this->fil
46020 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b terUrl($this->config['support'][
46040 27 69 72 63 27 5d 2c 20 61 72 72 61 79 28 27 69 72 63 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 'irc'],.array('irc'))).{.$this->
46060 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 63 20 3a 20 69 6e 76 61 warnings[].=.'support.irc.:.inva
46080 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 lid.value.('.$this->config['supp
460a0 6f 72 74 27 5d 5b 27 69 72 63 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 69 72 63 3a 2f ort']['irc'].'),.must.be.a.irc:/
460c0 2f 3c 73 65 72 76 65 72 3e 2f 3c 63 68 61 6e 6e 65 6c 3e 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 /<server>/<channel>.URL';.unset(
460e0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 $this->config['support']['irc'])
46100 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 ;.}..foreach.(array('issues',.'f
46120 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 29 20 61 73 20 24 6b 65 79 orum',.'wiki',.'source').as.$key
46140 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 ).{.if.(isset($this->config['sup
46160 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 port'][$key]).&&.!$this->filterU
46180 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 rl($this->config['support'][$key
461a0 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f ])).{.$this->warnings[].=.'suppo
461c0 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 rt.'.$key.'.:.invalid.value.('.$
461e0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 2e 27 29 this->config['support'][$key].')
46200 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e ,.must.be.an.http/https.URL';.un
46220 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 set($this->config['support'][$ke
46240 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 y]);.}.}.if.(empty($this->config
46260 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e ['support'])).{.unset($this->con
46280 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 fig['support']);.}.}..foreach.(a
462a0 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 rray_keys(BasePackage::$supporte
462c0 64 4c 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 dLinkTypes).as.$linkType).{.if.(
462e0 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 29 20 $this->validateArray($linkType).
46300 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 &&.isset($this->config[$linkType
46320 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 ])).{.foreach.($this->config[$li
46340 6e 6b 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 nkType].as.$package.=>.$constrai
46360 6e 74 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a nt).{.if.(!preg_match('{^[A-Za-z
46380 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 0-9_./-]+$}',.$package)).{.$this
463a0 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 ->warnings[].=.$linkType.'.'.$pa
463c0 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 6b 65 79 2c 20 70 61 63 6b 61 67 65 20 6e ckage.'.:.invalid.key,.package.n
463e0 61 6d 65 73 20 6d 75 73 74 20 62 65 20 73 74 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 ames.must.be.strings.containing.
46400 6f 6e 6c 79 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 27 3b 0a 7d 0a 69 66 20 28 21 69 73 only.[A-Za-z0-9_./-]';.}.if.(!is
46420 5f 73 74 72 69 6e 67 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 _string($constraint)).{.$this->e
46440 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 rrors[].=.$linkType.'.'.$package
46460 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 .'.:.invalid.value,.must.be.a.st
46480 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 ring.containing.a.version.constr
464a0 61 69 6e 74 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b aint';.unset($this->config[$link
464c0 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 65 6c Type][$package]);.}.elseif.('sel
464e0 66 2e 76 65 72 73 69 6f 6e 27 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 72 f.version'.!==.$constraint).{.tr
46500 79 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 y.{.$this->versionParser->parseC
46520 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 20 63 61 74 63 68 onstraints($constraint);.}.catch
46540 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 .(\Exception.$e).{.$this->errors
46560 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 [].=.$linkType.'.'.$package.'.:.
46580 69 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 28 27 2e 24 65 invalid.version.constraint.('.$e
465a0 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d ->getMessage().')';.unset($this-
465c0 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d >config[$linkType][$package]);.}
465e0 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 .}.}.}.}..if.($this->validateArr
46600 61 79 28 27 73 75 67 67 65 73 74 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 ay('suggest').&&.!empty($this->c
46620 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 onfig['suggest'])).{.foreach.($t
46640 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 70 61 63 6b 61 his->config['suggest'].as.$packa
46660 67 65 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 ge.=>.$description).{.if.(!is_st
46680 72 69 6e 67 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 ring($description)).{.$this->err
466a0 6f 72 73 5b 5d 20 3d 20 27 73 75 67 67 65 73 74 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 ors[].=.'suggest.'.$package.'.:.
466c0 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 invalid.value,.must.be.a.string.
466e0 64 65 73 63 72 69 62 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 73 75 describing.why.the.package.is.su
46700 67 67 65 73 74 65 64 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 ggested';.unset($this->config['s
46720 75 67 67 65 73 74 27 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 uggest'][$package]);.}.}.}..if.(
46740 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6d 69 6e 69 6d 75 6d 2d 73 $this->validateString('minimum-s
46760 74 61 62 69 6c 69 74 79 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 tability').&&.!empty($this->conf
46780 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 69 66 20 28 ig['minimum-stability'])).{.if.(
467a0 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 !isset(BasePackage::$stabilities
467c0 5b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 [$this->config['minimum-stabilit
467e0 79 27 5d 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 6d 69 6e 69 y']])).{.$this->errors[].=.'mini
46800 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 mum-stability.:.invalid.value.('
46820 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 .$this->config['minimum-stabilit
46840 79 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 y'].'),.must.be.one.of.'.implode
46860 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 (',.',.array_keys(BasePackage::$
46880 73 74 61 62 69 6c 69 74 69 65 73 29 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 stabilities));.unset($this->conf
468a0 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 ig['minimum-stability']);.}.}..i
468c0 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 6f 6c 6f 61 f.($this->validateArray('autoloa
468e0 64 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 d').&&.!empty($this->config['aut
46900 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 27 70 73 72 2d oload'])).{.$types.=.array('psr-
46920 30 27 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 27 66 69 6c 65 73 27 29 3b 0a 66 6f 72 65 61 63 0',.'classmap',.'files');.foreac
46940 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 20 61 73 20 h.($this->config['autoload'].as.
46960 24 74 79 70 65 20 3d 3e 20 24 74 79 70 65 43 6f 6e 66 69 67 29 20 7b 0a 69 66 20 28 21 69 6e 5f $type.=>.$typeConfig).{.if.(!in_
46980 61 72 72 61 79 28 24 74 79 70 65 2c 20 24 74 79 70 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 array($type,.$types)).{.$this->e
469a0 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 6f 6c 6f 61 64 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 rrors[].=.'autoload.:.invalid.va
469c0 6c 75 65 20 28 27 2e 24 74 79 70 65 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 lue.('.$type.'),.must.be.one.of.
469e0 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 74 79 70 65 73 29 3b 0a 75 6e 73 65 74 28 24 '.implode(',.',.$types);.unset($
46a00 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 24 74 79 70 65 5d 29 this->config['autoload'][$type])
46a20 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 0a 0a 0a 20 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 ;.}.}.}..........$this->validate
46a40 46 6c 61 74 41 72 72 61 79 28 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 0a 0a 20 69 66 FlatArray('include-path');....if
46a60 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 .(isset($this->config['extra']['
46a80 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 branch-alias'])).{.if.(!is_array
46aa0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d ($this->config['extra']['branch-
46ac0 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 alias'])).{.$this->errors[].=.'e
46ae0 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 xtra.branch-alias.:.must.be.an.a
46b00 72 72 61 79 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 rray.of.versions.=>.aliases';.}.
46b20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 else.{.foreach.($this->config['e
46b40 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 xtra']['branch-alias'].as.$sourc
46b60 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 eBranch.=>.$targetBranch).{...if
46b80 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 .('-dev'.!==.substr($targetBranc
46ba0 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 h,.-4)).{.$this->warnings[].=.'e
46bc0 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 xtra.branch-alias.'.$sourceBranc
46be0 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 h.'.:.the.target.branch.('.$targ
46c00 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 etBranch.').must.end.in.-dev';.u
46c20 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 nset($this->config['extra']['bra
46c40 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f nch-alias'][$sourceBranch]);..co
46c60 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 ntinue;.}....$validatedTargetBra
46c80 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d nch.=.$this->versionParser->norm
46ca0 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 alizeBranch(substr($targetBranch
46cc0 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 ,.0,.-4));.if.('-dev'.!==.substr
46ce0 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a ($validatedTargetBranch,.-4)).{.
46d00 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 $this->warnings[].=.'extra.branc
46d20 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 h-alias.'.$sourceBranch.'.:.the.
46d40 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 target.branch.('.$targetBranch.'
46d60 29 20 6d 75 73 74 20 62 65 20 61 20 70 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b ).must.be.a.parseable.number.lik
46d80 65 20 32 2e 30 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b e.2.0-dev';.unset($this->config[
46da0 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 'extra']['branch-alias'][$source
46dc0 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 72 Branch]);.}.}.}.}..if.($this->er
46de0 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 rors).{.throw.new.InvalidPackage
46e00 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 74 68 69 73 2d 3e Exception($this->errors,.$this->
46e20 77 61 72 6e 69 6e 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 warnings,.$config);.}..$package.
46e40 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e =.$this->loader->load($this->con
46e60 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 fig,.$class);.$this->config.=.nu
46e80 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ll;..return.$package;.}..public.
46ea0 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.getWarnings().{.return.
46ec0 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $this->warnings;.}..public.funct
46ee0 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ion.getErrors().{.return.$this->
46f00 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 errors;.}..private.function.vali
46f20 64 61 74 65 52 65 67 65 78 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 2c 20 24 6d 61 dateRegex($property,.$regex,.$ma
46f40 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 ndatory.=.false).{.if.(!$this->v
46f60 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 alidateString($property,.$mandat
46f80 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 ory)).{.return.false;.}..if.(!pr
46fa0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 74 68 69 eg_match('{^'.$regex.'$}u',.$thi
46fc0 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 s->config[$property])).{.$messag
46fe0 65 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 e.=.$property.'.:.invalid.value.
47000 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 ('.$this->config[$property].'),.
47020 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 69 66 20 28 24 6d 61 6e 64 61 74 must.match.'.$regex;.if.($mandat
47040 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 ory).{.$this->errors[].=.$messag
47060 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 e;.}.else.{.$this->warnings[].=.
47080 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b $message;.}.unset($this->config[
470a0 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 $property]);..return.false;.}..r
470c0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 eturn.true;.}..private.function.
470e0 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 validateString($property,.$manda
47100 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d tory.=.false).{.if.(isset($this-
47120 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e >config[$property]).&&.!is_strin
47140 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 g($this->config[$property])).{.$
47160 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 this->errors[].=.$property.'.:.s
47180 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 hould.be.a.string,.'.gettype($th
471a0 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b is->config[$property]).'.given';
471c0 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 .unset($this->config[$property])
471e0 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 ;..return.false;.}..if.(!isset($
47200 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 74 72 69 6d this->config[$property]).||.trim
47220 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 3d 3d 3d 20 27 ($this->config[$property]).===.'
47240 27 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 ').{.if.($mandatory).{.$this->er
47260 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 rors[].=.$property.'.:.must.be.p
47280 72 65 73 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 resent';.}.unset($this->config[$
472a0 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 property]);..return.false;.}..re
472c0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 turn.true;.}..private.function.v
472e0 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f alidateArray($property,.$mandato
47300 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 ry.=.false).{.if.(isset($this->c
47320 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 onfig[$property]).&&.!is_array($
47340 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 this->config[$property])).{.$thi
47360 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 s->errors[].=.$property.'.:.shou
47380 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d ld.be.an.array,.'.gettype($this-
473a0 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e >config[$property]).'.given';.un
473c0 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a set($this->config[$property]);..
473e0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 return.false;.}..if.(!isset($thi
47400 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 21 63 6f 75 6e 74 28 s->config[$property]).||.!count(
47420 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 69 66 20 $this->config[$property])).{.if.
47440 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d ($mandatory).{.$this->errors[].=
47460 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 20 61 .$property.'.:.must.be.present.a
47480 6e 64 20 63 6f 6e 74 61 69 6e 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 27 nd.contain.at.least.one.element'
474a0 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 ;.}.unset($this->config[$propert
474c0 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 y]);..return.false;.}..return.tr
474e0 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 ue;.}..private.function.validate
47500 46 6c 61 74 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 20 3d 20 6e 75 FlatArray($property,.$regex.=.nu
47520 6c 6c 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 ll,.$mandatory.=.false).{.if.(!$
47540 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 this->validateArray($property,.$
47560 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 mandatory)).{.return.false;.}..$
47580 70 61 73 73 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e pass.=.true;.foreach.($this->con
475a0 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 fig[$property].as.$key.=>.$value
475c0 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 ).{.if.(!is_string($value).&&.!i
475e0 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f s_numeric($value)).{.$this->erro
47600 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 6d 75 rs[].=.$property.'.'.$key.'.:.mu
47620 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 6f 72 20 69 6e 74 2c 20 27 2e 67 65 74 74 79 70 65 st.be.a.string.or.int,.'.gettype
47640 28 24 76 61 6c 75 65 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e ($value).'.given';.unset($this->
47660 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 config[$property][$key]);.$pass.
47680 3d 20 66 61 6c 73 65 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 67 65 =.false;..continue;.}..if.($rege
476a0 78 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d x.&&.!preg_match('{^'.$regex.'$}
476c0 75 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d u',.$value)).{.$this->warnings[]
476e0 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 .=.$property.'.'.$key.'.:.invali
47700 64 20 76 61 6c 75 65 20 28 27 2e 24 76 61 6c 75 65 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 d.value.('.$value.'),.must.match
47720 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 .'.$regex;.unset($this->config[$
47740 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b property][$key]);.$pass.=.false;
47760 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 .}.}..return.$pass;.}..private.f
47780 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 6c 28 24 70 72 6f 70 65 72 74 79 2c 20 24 unction.validateUrl($property,.$
477a0 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d mandatory.=.false).{.if.(!$this-
477c0 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 >validateString($property,.$mand
477e0 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 atory)).{.return.false;.}..if.(!
47800 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 $this->filterUrl($this->config[$
47820 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 property])).{.$this->warnings[].
47840 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 =.$property.'.:.invalid.value.('
47860 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 .$this->config[$property].'),.mu
47880 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 st.be.an.http/https.URL';.unset(
478a0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 $this->config[$property]);..retu
478c0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 rn.false;.}..return.true;.}..pri
478e0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 61 6c 75 65 2c 20 vate.function.filterUrl($value,.
47900 61 72 72 61 79 20 24 73 63 68 65 6d 65 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 2c 20 27 array.$schemes.=.array('http',.'
47920 68 74 74 70 73 27 29 29 0a 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3d 3d 3d 20 27 27 29 20 7b 0a https')).{.if.($value.===.'').{.
47940 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 62 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 return.true;.}..$bits.=.parse_ur
47960 6c 28 24 76 61 6c 75 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 62 69 74 73 5b 27 73 63 68 65 l($value);.if.(empty($bits['sche
47980 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 62 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b me']).||.empty($bits['host'])).{
479a0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 .return.false;.}..if.(!in_array(
479c0 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 2c 20 24 73 63 68 65 6d 65 73 2c 20 74 72 75 65 29 $bits['scheme'],.$schemes,.true)
479e0 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 ).{.return.false;.}..return.true
47a00 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
47a20 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 .Composer\Package\Loader;..use.C
47a40 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 omposer\Package\BasePackage;.use
47a60 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a .Composer\Package\AliasPackage;.
47a80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 use.Composer\Config;.use.Compose
47aa0 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c r\Factory;.use.Composer\Package\
47ac0 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f Version\VersionParser;.use.Compo
47ae0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ser\Repository\RepositoryManager
47b00 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 ;.use.Composer\Repository\Vcs\Hg
47b20 44 72 69 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a Driver;.use.Composer\IO\NullIO;.
47b40 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f use.Composer\Util\ProcessExecuto
47b60 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 r;.use.Composer\Util\Git.as.GitU
47b80 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f til;.........class.RootPackageLo
47ba0 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 ader.extends.ArrayLoader.{.priva
47bc0 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 te.$manager;.private.$config;.pr
47be0 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ivate.$process;..public.function
47c00 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 .__construct(RepositoryManager.$
47c20 6d 61 6e 61 67 65 72 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 56 65 72 73 69 6f 6e manager,.Config.$config,.Version
47c40 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 Parser.$parser.=.null,.ProcessEx
47c60 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d ecutor.$process.=.null).{.$this-
47c80 3e 6d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 >manager.=.$manager;.$this->conf
47ca0 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 ig.=.$config;.$this->process.=.$
47cc0 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 process.?:.new.ProcessExecutor()
47ce0 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a ;.parent::__construct($parser);.
47d00 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 }..public.function.load(array.$c
47d20 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 onfig,.$class.=.'Composer\Packag
47d40 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f e\RootPackage').{.if.(!isset($co
47d60 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d nfig['name'])).{.$config['name']
47d80 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e .=.'__root__';.}.if.(!isset($con
47da0 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 fig['version'])).{...if.(getenv(
47dc0 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 'COMPOSER_ROOT_VERSION')).{.$ver
47de0 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 sion.=.getenv('COMPOSER_ROOT_VER
47e00 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 SION');.}.else.{.$version.=.$thi
47e20 73 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 s->guessVersion($config);.}..if.
47e40 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 (!$version).{.$version.=.'1.0.0'
47e60 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 ;.}..$config['version'].=.$versi
47e80 6f 6e 3b 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 20 3d on;.}..$realPackage.=.$package.=
47ea0 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a .parent::load($config,.$class);.
47ec0 0a 69 66 20 28 24 72 65 61 6c 50 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 .if.($realPackage.instanceof.Ali
47ee0 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 asPackage).{.$realPackage.=.$pac
47f00 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 kage->getAliasOf();.}..if.(isset
47f20 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 ($config['minimum-stability'])).
47f40 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c {.$realPackage->setMinimumStabil
47f60 69 74 79 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 ity(VersionParser::normalizeStab
47f80 69 6c 69 74 79 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 ility($config['minimum-stability
47fa0 27 5d 29 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 ']));.}..$aliases.=.array();.$st
47fc0 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e abilityFlags.=.array();.$referen
47fe0 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 ces.=.array();.foreach.(array('r
48000 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b equire',.'require-dev').as.$link
48020 54 79 70 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 Type).{.if.(isset($config[$linkT
48040 79 70 65 5d 29 29 20 7b 0a 24 6c 69 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 ype])).{.$linkInfo.=.BasePackage
48060 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d ::$supportedLinkTypes[$linkType]
48080 3b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 ;.$method.=.'get'.ucfirst($linkI
480a0 6e 66 6f 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 nfo['method']);.$links.=.array()
480c0 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 24 6d 65 74 68 6f 64 ;.foreach.($realPackage->$method
480e0 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 ().as.$link).{.$links[$link->get
48100 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 Target()].=.$link->getConstraint
48120 28 29 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 65 ()->getPrettyString();.}.$aliase
48140 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 24 6c 69 6e 6b 73 s.=.$this->extractAliases($links
48160 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 ,.$aliases);.$stabilityFlags.=.$
48180 74 68 69 73 2d 3e 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 6c 69 6e this->extractStabilityFlags($lin
481a0 6b 73 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 72 65 61 6c 50 61 63 6b 61 67 ks,.$stabilityFlags,.$realPackag
481c0 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 29 3b 0a 24 72 65 66 65 e->getMinimumStability());.$refe
481e0 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 rences.=.$this->extractReference
48200 73 28 24 6c 69 6e 6b 73 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 24 72 65 s($links,.$references);.}.}..$re
48220 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b alPackage->setAliases($aliases);
48240 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 .$realPackage->setStabilityFlags
48260 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d ($stabilityFlags);.$realPackage-
48280 3e 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 0a 69 66 >setReferences($references);..if
482a0 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d .(isset($config['prefer-stable']
482c0 29 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 66 65 72 53 74 61 62 )).{.$realPackage->setPreferStab
482e0 6c 65 28 28 62 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 le((bool).$config['prefer-stable
48300 27 5d 29 3b 0a 7d 0a 0a 24 72 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 ']);.}..$repos.=.Factory::create
48320 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 6e 75 6c 6c 2c 20 24 74 68 69 73 2d DefaultRepositories(null,.$this-
48340 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 29 3b 0a 66 6f 72 65 61 63 >config,.$this->manager);.foreac
48360 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e h.($repos.as.$repo).{.$this->man
48380 61 67 65 72 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 24 72 ager->addRepository($repo);.}.$r
483a0 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 ealPackage->setRepositories($thi
483c0 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 0a s->config->getRepositories());..
483e0 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 return.$package;.}..private.func
48400 74 69 6f 6e 20 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 tion.extractAliases(array.$requi
48420 72 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 res,.array.$aliases).{.foreach.(
48440 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 $requires.as.$reqName.=>.$reqVer
48460 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 sion).{.if.(preg_match('{^([^,\s
48480 23 5d 2b 29 28 3f 3a 23 5b 5e 20 5d 2b 29 3f 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d #]+)(?:#[^.]+)?.+as.+([^,\s]+)$}
484a0 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 61 6c 69 61 ',.$reqVersion,.$match)).{.$alia
484c0 73 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 73 74 72 74 ses[].=.array(.'package'.=>.strt
484e0 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 olower($reqName),.'version'.=>.$
48500 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 this->versionParser->normalize($
48520 6d 61 74 63 68 5b 31 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a 27 61 6c 69 61 73 27 20 match[1],.$reqVersion),.'alias'.
48540 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 =>.$match[2],.'alias_normalized'
48560 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c .=>.$this->versionParser->normal
48580 69 7a 65 28 24 6d 61 74 63 68 5b 32 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a ize($match[2],.$reqVersion),.);.
485a0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 }.}..return.$aliases;.}..private
485c0 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 .function.extractStabilityFlags(
485e0 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 array.$requires,.array.$stabilit
48600 79 46 6c 61 67 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 yFlags,.$minimumStability).{.$st
48620 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c abilities.=.BasePackage::$stabil
48640 69 74 69 65 73 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 ities;.$minimumStability.=.$stab
48660 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 3b 0a 66 6f 72 65 ilities[$minimumStability];.fore
48680 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 ach.($requires.as.$reqName.=>.$r
486a0 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b eqVersion).{...if.(preg_match('{
486c0 5e 5b 5e 2c 5c 73 5d 2a 3f 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f ^[^,\s]*?@('.implode('|',.array_
486e0 6b 65 79 73 28 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 72 65 71 keys($stabilities)).')$}i',.$req
48700 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 Version,.$match)).{.$name.=.strt
48720 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 olower($reqName);.$stability.=.$
48740 73 74 61 62 69 6c 69 74 69 65 73 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 stabilities[VersionParser::norma
48760 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b 0a 0a 69 66 20 28 lizeStability($match[1])];..if.(
48780 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 isset($stabilityFlags[$name]).&&
487a0 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 .$stabilityFlags[$name].>.$stabi
487c0 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c lity).{.continue;.}.$stabilityFl
487e0 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 63 6f 6e 74 69 6e ags[$name].=.$stability;..contin
48800 75 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 ue;.}......$reqVersion.=.preg_re
48820 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 place('{^([^,\s@]+).as..+$}',.'$
48840 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 1',.$reqVersion);.if.(preg_match
48860 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 26 26 ('{^[^,\s@]+$}',.$reqVersion).&&
48880 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 .'stable'.!==.($stabilityName.=.
488a0 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 VersionParser::parseStability($r
488c0 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 eqVersion))).{.$name.=.strtolowe
488e0 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 r($reqName);.$stability.=.$stabi
48900 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 5d 3b 0a 69 66 20 28 28 69 73 73 lities[$stabilityName];.if.((iss
48920 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 et($stabilityFlags[$name]).&&.$s
48940 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 tabilityFlags[$name].>.$stabilit
48960 79 29 20 7c 7c 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3e 20 24 73 74 61 62 y).||.($minimumStability.>.$stab
48980 69 6c 69 74 79 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 ility)).{.continue;.}.$stability
489a0 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a Flags[$name].=.$stability;.}.}..
489c0 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 70 72 69 76 61 return.$stabilityFlags;.}..priva
489e0 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 te.function.extractReferences(ar
48a00 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 ray.$requires,.array.$references
48a20 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 ).{.foreach.($requires.as.$reqNa
48a40 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 24 72 65 71 56 65 72 73 69 6f 6e me.=>.$reqVersion).{.$reqVersion
48a60 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 .=.preg_replace('{^([^,\s@]+).as
48a80 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 ..+$}',.'$1',.$reqVersion);.if.(
48aa0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b 61 2d 66 30 2d 39 preg_match('{^[^,\s@]+?#([a-f0-9
48ac0 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 20 26 26 20 ]+)$}',.$reqVersion,.$match).&&.
48ae0 27 64 65 76 27 20 3d 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 'dev'.===.($stabilityName.=.Vers
48b00 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 ionParser::parseStability($reqVe
48b20 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 rsion))).{.$name.=.strtolower($r
48b40 65 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d eqName);.$references[$name].=.$m
48b60 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 atch[1];.}.}..return.$references
48b80 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 ;.}..private.function.guessVersi
48ba0 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e on(array.$config).{.if.(function
48bc0 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e _exists('proc_open')).{.$version
48be0 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 .=.$this->guessGitVersion($confi
48c00 67 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 72 65 74 g);.if.(null.!==.$version).{.ret
48c20 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 urn.$version;.}..return.$this->g
48c40 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 uessHgVersion($config);.}.}..pri
48c60 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 61 72 vate.function.guessGitVersion(ar
48c80 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 ray.$config).{.$util.=.new.GitUt
48ca0 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 il;.$util->cleanEnv();....if.(0.
48cc0 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 ===.$this->process->execute('git
48ce0 20 64 65 73 63 72 69 62 65 20 2d 2d 65 78 61 63 74 2d 6d 61 74 63 68 20 2d 2d 74 61 67 73 27 2c .describe.--exact-match.--tags',
48d00 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .$output)).{.try.{.return.$this-
48d20 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 74 72 69 6d 28 24 >versionParser->normalize(trim($
48d40 6f 75 74 70 75 74 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 output));.}.catch.(\Exception.$e
48d60 29 20 7b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 ).{.}.}....if.(0.===.$this->proc
48d80 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f ess->execute('git.branch.--no-co
48da0 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b lor.--no-abbrev.-v',.$output)).{
48dc0 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 .$branches.=.array();.$isFeature
48de0 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b Branch.=.false;.$version.=.null;
48e00 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c ....foreach.($this->process->spl
48e20 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 itLines($output).as.$branch).{.i
48e40 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c f.($branch.&&.preg_match('{^(?:\
48e60 2a 20 29 20 2a 28 5c 28 6e 6f 20 62 72 61 6e 63 68 5c 29 7c 5c 28 64 65 74 61 63 68 65 64 20 66 *.).*(\(no.branch\)|\(detached.f
48e80 72 6f 6d 20 5b 61 2d 66 30 2d 39 5d 2b 5c 29 7c 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b rom.[a-f0-9]+\)|\S+).*([a-f0-9]+
48ea0 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 )..*$}',.$branch,.$match)).{.if.
48ec0 28 24 6d 61 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 28 6e 6f 20 62 72 61 6e 63 68 29 27 20 7c 7c 20 ($match[1].===.'(no.branch)'.||.
48ee0 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 31 5d 2c 20 30 2c 20 31 30 29 20 3d 3d 3d 20 27 28 64 substr($match[1],.0,.10).===.'(d
48f00 65 74 61 63 68 65 64 20 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 etached.').{.$version.=.'dev-'.$
48f20 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 74 72 75 match[2];.$isFeatureBranch.=.tru
48f40 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 e;.}.else.{.$version.=.$this->ve
48f60 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 rsionParser->normalizeBranch($ma
48f80 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 20 3d 3d tch[1]);.$isFeatureBranch.=.0.==
48fa0 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 69 66 20 28 =.strpos($version,.'dev-');.if.(
48fc0 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 '9999999-dev'.===.$version).{.$v
48fe0 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d ersion.=.'dev-'.$match[1];.}.}.}
49000 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ..if.($branch.&&.!preg_match('{^
49020 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 .*[^/]+/HEAD.}',.$branch)).{.if.
49040 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 5c 53 2b 29 20 2a (preg_match('{^(?:\*.)?.*(\S+).*
49060 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 ([a-f0-9]+)..*$}',.$branch,.$mat
49080 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a ch)).{.$branches[].=.$match[1];.
490a0 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a }.}.}..if.(!$isFeatureBranch).{.
490c0 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d return.$version;.}....$version.=
490e0 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 24 63 6f 6e .$this->guessFeatureVersion($con
49100 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 62 72 61 6e 63 68 65 73 2c 20 27 67 69 74 20 72 fig,.$version,.$branches,.'git.r
49120 65 76 2d 6c 69 73 74 20 25 63 61 6e 64 69 64 61 74 65 25 2e 2e 25 62 72 61 6e 63 68 25 27 29 3b ev-list.%candidate%..%branch%');
49140 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 ..return.$version;.}.}..private.
49160 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 function.guessHgVersion(array.$c
49180 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 onfig).{...if.(0.===.$this->proc
491a0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 27 2c 20 24 6f 75 74 70 75 ess->execute('hg.branch',.$outpu
491c0 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 24 t)).{.$branch.=.trim($output);.$
491e0 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e version.=.$this->versionParser->
49200 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b 0a 24 69 73 46 65 61 normalizeBranch($branch);.$isFea
49220 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 tureBranch.=.0.===.strpos($versi
49240 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 on,.'dev-');..if.('9999999-dev'.
49260 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d ===.$version).{.$version.=.'dev-
49280 27 2e 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 '.$branch;.}..if.(!$isFeatureBra
492a0 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 63 6f nch).{.return.$version;.}....$co
492c0 6e 66 69 67 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 67 65 74 63 77 64 28 29 29 3b nfig.=.array('url'.=>.getcwd());
492e0 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 48 67 44 72 69 76 65 72 28 24 63 6f 6e 66 69 67 2c .$driver.=.new.HgDriver($config,
49300 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 .new.NullIO(),.$this->config,.$t
49320 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 his->process);.$branches.=.array
49340 5f 6b 65 79 73 28 24 64 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 3b 0a 0a _keys($driver->getBranches());..
49360 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 65 61 74 75 72 65 ..$version.=.$this->guessFeature
49380 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 62 72 61 6e Version($config,.$version,.$bran
493a0 63 68 65 73 2c 20 27 68 67 20 6c 6f 67 20 2d 72 20 22 6e 6f 74 20 61 6e 63 65 73 74 6f 72 73 28 ches,.'hg.log.-r."not.ancestors(
493c0 5c 27 25 63 61 6e 64 69 64 61 74 65 25 5c 27 29 20 61 6e 64 20 61 6e 63 65 73 74 6f 72 73 28 5c \'%candidate%\').and.ancestors(\
493e0 27 25 62 72 61 6e 63 68 25 5c 27 29 22 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d '%branch%\')".--template."{node}
49400 5c 5c 6e 22 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 \\n"');..return.$version;.}.}..p
49420 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 rivate.function.guessFeatureVers
49440 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 61 72 72 ion(array.$config,.$version,.arr
49460 61 79 20 24 62 72 61 6e 63 68 65 73 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 0a 7b 0a 0a 20 0a ay.$branches,.$scmCmdline).{....
49480 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 .if.((isset($config['extra']['br
494a0 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b anch-alias']).&&.!isset($config[
494c0 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 76 65 72 73 69 6f 'extra']['branch-alias'][$versio
494e0 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 n])).||.strpos(json_encode($conf
49500 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 7b 0a 24 62 72 61 6e ig),.'"self.version"').).{.$bran
49520 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d 7d 27 2c 20 27 27 2c ch.=.preg_replace('{^dev-}',.'',
49540 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 .$version);.$length.=.PHP_INT_MA
49560 58 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 63 61 6e 64 69 64 X;.foreach.($branches.as.$candid
49580 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 ate).{...if.($candidate.===.$bra
495a0 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 6d 61 73 74 65 72 7c 74 72 nch.||.!preg_match('{^(master|tr
495c0 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 6c 6f 70 7c 5c 64 2b 5c 2e 2e 2b 29 24 7d 27 2c unk|default|develop|\d+\..+)$}',
495e0 20 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 .$candidate,.$match)).{.continue
49600 3b 0a 7d 0a 0a 24 63 6d 64 4c 69 6e 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 ;.}..$cmdLine.=.str_replace(arra
49620 79 28 27 25 63 61 6e 64 69 64 61 74 65 25 27 2c 20 27 25 62 72 61 6e 63 68 25 27 29 2c 20 61 72 y('%candidate%',.'%branch%'),.ar
49640 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 62 72 61 6e 63 68 29 2c 20 24 73 63 6d 43 6d ray($candidate,.$branch),.$scmCm
49660 64 6c 69 6e 65 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 dline);.if.(0.!==.$this->process
49680 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 4c 69 6e 65 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a ->execute($cmdLine,.$output)).{.
496a0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 continue;.}..if.(strlen($output)
496c0 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 .<.$length).{.$length.=.strlen($
496e0 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 output);.$version.=.$this->versi
49700 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e 64 69 onParser->normalizeBranch($candi
49720 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 date);.if.('9999999-dev'.===.$ve
49740 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 rsion).{.$version.=.'dev-'.$matc
49760 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a h[1];.}.}.}.}..return.$version;.
49780 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
497a0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a omposer\Package;..use.Composer\J
497c0 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 son\JsonFile;.use.Composer\Insta
497e0 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f ller\InstallationManager;.use.Co
49800 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 mposer\Repository\RepositoryMana
49820 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 ger;.use.Composer\Util\ProcessEx
49840 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 ecutor;.use.Composer\Package\Ali
49860 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f asPackage;.use.Composer\Reposito
49880 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ry\ArrayRepository;.use.Composer
498a0 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 75 73 65 \Package\Dumper\ArrayDumper;.use
498c0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f .Composer\Package\Loader\ArrayLo
498e0 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 ader;.use.Composer\Package\Versi
49900 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 on\VersionParser;.use.Composer\U
49920 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 til\Git.as.GitUtil;.use.Composer
49940 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f \IO\IOInterface;........class.Lo
49960 63 6b 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 74 cker.{.private.$lockFile;.privat
49980 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 69 e.$repositoryManager;.private.$i
499a0 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 nstallationManager;.private.$has
499c0 68 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 64 75 6d h;.private.$loader;.private.$dum
499e0 70 65 72 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 per;.private.$process;.private.$
49a00 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 lockDataCache;...........public.
49a20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 function.__construct(IOInterface
49a40 20 24 69 6f 2c 20 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 .$io,.JsonFile.$lockFile,.Reposi
49a60 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 toryManager.$repositoryManager,.
49a80 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f InstallationManager.$installatio
49aa0 6e 4d 61 6e 61 67 65 72 2c 20 24 68 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 nManager,.$hash).{.$this->lockFi
49ac0 6c 65 20 3d 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 le.=.$lockFile;.$this->repositor
49ae0 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 yManager.=.$repositoryManager;.$
49b00 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 this->installationManager.=.$ins
49b20 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 20 tallationManager;.$this->hash.=.
49b40 24 68 61 73 68 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 $hash;.$this->loader.=.new.Array
49b60 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 Loader();.$this->dumper.=.new.Ar
49b80 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 65 rayDumper();.$this->process.=.ne
49ba0 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a w.ProcessExecutor($io);.}.......
49bc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 29 0a 7b 0a 69 66 20 public.function.isLocked().{.if.
49be0 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 (!$this->lockFile->exists()).{.r
49c00 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 eturn.false;.}..$data.=.$this->g
49c20 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 74 etLockData();..return.isset($dat
49c40 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 a['packages']);.}.......public.f
49c60 75 6e 63 74 69 6f 6e 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 74 68 69 unction.isFresh().{.$lock.=.$thi
49c80 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 s->lockFile->read();..return.$th
49ca0 69 73 2d 3e 68 61 73 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 73 68 27 5d 3b 0a 7d 0a 0a 0a is->hash.===.$lock['hash'];.}...
49cc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 64 52 ......public.function.getLockedR
49ce0 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a epository($withDevReqs.=.false).
49d00 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 {.$lockData.=.$this->getLockData
49d20 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 ();.$packages.=.new.ArrayReposit
49d40 6f 72 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 6c 6f 63 6b 44 ory();..$lockedPackages.=.$lockD
49d60 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 ata['packages'];.if.($withDevReq
49d80 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 s).{.if.(isset($lockData['packag
49da0 65 73 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 es-dev'])).{.$lockedPackages.=.a
49dc0 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 2c 20 24 6c 6f 63 rray_merge($lockedPackages,.$loc
49de0 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b kData['packages-dev']);.}.else.{
49e00 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 .throw.new.\RuntimeException('Th
49e20 65 20 6c 6f 63 6b 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 72 65 71 e.lock.file.does.not.contain.req
49e40 75 69 72 65 2d 64 65 76 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 72 75 6e 20 69 6e 73 74 61 6c uire-dev.information,.run.instal
49e60 6c 20 77 69 74 68 20 74 68 65 20 2d 2d 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 20 6f 72 20 72 75 l.with.the.--no-dev.option.or.ru
49e80 6e 20 75 70 64 61 74 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 6f 73 65 20 70 61 63 6b 61 67 n.update.to.install.those.packag
49ea0 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 es.');.}.}..if.(empty($lockedPac
49ec0 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 kages)).{.return.$packages;.}..i
49ee0 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 5b 30 5d 5b 27 6e 61 6d f.(isset($lockedPackages[0]['nam
49f00 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 e'])).{.foreach.($lockedPackages
49f20 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 2d 3e 61 64 64 50 61 63 6b 61 .as.$info).{.$packages->addPacka
49f40 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 69 6e 66 6f 29 29 3b 0a ge($this->loader->load($info));.
49f60 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 }..return.$packages;.}..throw.ne
49f80 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 72 20 63 6f 6d 70 6f 73 w.\RuntimeException('Your.compos
49fa0 65 72 2e 6c 6f 63 6b 20 77 61 73 20 63 72 65 61 74 65 64 20 62 65 66 6f 72 65 20 32 30 31 32 2d er.lock.was.created.before.2012-
49fc0 30 39 2d 31 35 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 61 6e 79 6d 09-15,.and.is.not.supported.anym
49fe0 6f 72 65 2e 20 52 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 22 20 74 6f 20 67 65 ore..Run."composer.update".to.ge
4a000 6e 65 72 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 nerate.a.new.one.');.}........pu
4a020 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 blic.function.getPlatformRequire
4a040 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6c ments($withDevReqs.=.false).{.$l
4a060 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a ockData.=.$this->getLockData();.
4a080 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 $versionParser.=.new.VersionPars
4a0a0 65 72 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a er();.$requirements.=.array();..
4a0c0 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d if.(!empty($lockData['platform']
4a0e0 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 )).{.$requirements.=.$versionPar
4a100 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e ser->parseLinks(.'__ROOT__',.'1.
4a120 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 0.0',.'requires',.isset($lockDat
4a140 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 a['platform']).?.$lockData['plat
4a160 66 6f 72 6d 27 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 69 74 68 form'].:.array().);.}..if.($with
4a180 44 65 76 52 65 71 73 20 26 26 20 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 DevReqs.&&.!empty($lockData['pla
4a1a0 74 66 6f 72 6d 2d 64 65 76 27 5d 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 tform-dev'])).{.$devRequirements
4a1c0 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 .=.$versionParser->parseLinks(.'
4a1e0 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a __ROOT__',.'1.0.0',.'requires',.
4a200 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 isset($lockData['platform-dev'])
4a220 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3a 20 61 .?.$lockData['platform-dev'].:.a
4a240 72 72 61 79 28 29 0a 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 rray().);..$requirements.=.array
4a260 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 64 65 76 52 65 71 75 69 72 _merge($requirements,.$devRequir
4a280 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 ements);.}..return.$requirements
4a2a0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 ;.}..public.function.getMinimumS
4a2c0 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e tability().{.$lockData.=.$this->
4a2e0 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f getLockData();..return.isset($lo
4a300 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 ckData['minimum-stability']).?.$
4a320 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 lockData['minimum-stability'].:.
4a340 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 'stable';.}..public.function.get
4a360 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 StabilityFlags().{.$lockData.=.$
4a380 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 this->getLockData();..return.iss
4a3a0 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 et($lockData['stability-flags'])
4a3c0 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 .?.$lockData['stability-flags'].
4a3e0 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 :.array();.}..public.function.ge
4a400 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e tAliases().{.$lockData.=.$this->
4a420 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f getLockData();..return.isset($lo
4a440 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 ckData['aliases']).?.$lockData['
4a460 61 6c 69 61 73 65 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 aliases'].:.array();.}..public.f
4a480 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c unction.getLockData().{.if.(null
4a4a0 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 .!==.$this->lockDataCache).{.ret
4a4c0 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 urn.$this->lockDataCache;.}..if.
4a4e0 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 (!$this->lockFile->exists()).{.t
4a500 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 hrow.new.\LogicException('No.loc
4a520 6b 66 69 6c 65 20 66 6f 75 6e 64 2e 20 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b kfile.found..Unable.to.read.lock
4a540 65 64 20 70 61 63 6b 61 67 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ed.packages');.}..return.$this->
4a560 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d lockDataCache.=.$this->lockFile-
4a580 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 >read();.}...............public.
4a5a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b function.setLockData(array.$pack
4a5c0 61 67 65 73 2c 20 24 64 65 76 50 61 63 6b 61 67 65 73 2c 20 61 72 72 61 79 20 24 70 6c 61 74 66 ages,.$devPackages,.array.$platf
4a5e0 6f 72 6d 52 65 71 73 2c 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 20 61 72 72 61 79 ormReqs,.$platformDevReqs,.array
4a600 20 24 61 6c 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 61 72 .$aliases,.$minimumStability,.ar
4a620 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 61 ray.$stabilityFlags).{.$lock.=.a
4a640 72 72 61 79 28 0a 27 5f 72 65 61 64 6d 65 27 20 3d 3e 20 61 72 72 61 79 28 27 54 68 69 73 20 66 rray(.'_readme'.=>.array('This.f
4a660 69 6c 65 20 6c 6f 63 6b 73 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f ile.locks.the.dependencies.of.yo
4a680 75 72 20 70 72 6f 6a 65 63 74 20 74 6f 20 61 20 6b 6e 6f 77 6e 20 73 74 61 74 65 27 2c 20 27 52 ur.project.to.a.known.state',.'R
4a6a0 65 61 64 20 6d 6f 72 65 20 61 62 6f 75 74 20 69 74 20 61 74 20 68 74 74 70 3a 2f 2f 67 65 74 63 ead.more.about.it.at.http://getc
4a6c0 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 31 2d 62 61 73 69 63 2d 75 73 61 67 65 2e 6d omposer.org/doc/01-basic-usage.m
4a6e0 64 23 63 6f 6d 70 6f 73 65 72 2d 6c 6f 63 6b 2d 74 68 65 2d 6c 6f 63 6b 2d 66 69 6c 65 27 29 2c d#composer-lock-the-lock-file'),
4a700 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 68 61 73 68 2c 0a 27 70 61 63 6b 61 67 65 .'hash'.=>.$this->hash,.'package
4a720 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 20 3d 3e 20 6e 75 s'.=>.null,.'packages-dev'.=>.nu
4a740 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 27 6d 69 6e 69 6d ll,.'aliases'.=>.array(),.'minim
4a760 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d 3e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 um-stability'.=>.$minimumStabili
4a780 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 20 3d 3e 20 24 73 74 61 62 69 6c ty,.'stability-flags'.=>.$stabil
4a7a0 69 74 79 46 6c 61 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 ityFlags,.);..foreach.($aliases.
4a7c0 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 as.$package.=>.$versions).{.fore
4a7e0 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 ach.($versions.as.$version.=>.$a
4a800 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 61 6c 69 61 73 65 73 27 5d 5b 5d 20 3d 20 61 72 72 lias).{.$lock['aliases'][].=.arr
4a820 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a ay(.'alias'.=>.$alias['alias'],.
4a840 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 'alias_normalized'.=>.$alias['al
4a860 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 ias_normalized'],.'version'.=>.$
4a880 76 65 72 73 69 6f 6e 2c 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a version,.'package'.=>.$package,.
4a8a0 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 3d 20 24 74 68 69 );.}.}..$lock['packages'].=.$thi
4a8c0 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 69 66 20 28 s->lockPackages($packages);.if.(
4a8e0 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 null.!==.$devPackages).{.$lock['
4a900 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b packages-dev'].=.$this->lockPack
4a920 61 67 65 73 28 24 64 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 ages($devPackages);.}..if.(empty
4a940 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f ($lock['packages']).&&.empty($lo
4a960 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 ck['packages-dev'])).{.if.($this
4a980 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 ->lockFile->exists()).{.unlink($
4a9a0 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 72 this->lockFile->getPath());.}..r
4a9c0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 eturn.false;.}..$lock['platform'
4a9e0 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f ].=.$platformReqs;.$lock['platfo
4aa00 72 6d 2d 64 65 76 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 3b 0a 0a 69 66 rm-dev'].=.$platformDevReqs;..if
4aa20 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d .(!$this->isLocked().||.$lock.!=
4aa40 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 29 20 7b 0a 24 74 68 69 73 2d =.$this->getLockData()).{.$this-
4aa60 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f 63 6b 29 3b 0a 24 74 68 69 73 2d 3e >lockFile->write($lock);.$this->
4aa80 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 74 72 lockDataCache.=.null;..return.tr
4aaa0 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 ue;.}..return.false;.}..private.
4aac0 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 70 61 63 function.lockPackages(array.$pac
4aae0 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 kages).{.$locked.=.array();..for
4ab00 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 each.($packages.as.$package).{.i
4ab20 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b f.($package.instanceof.AliasPack
4ab40 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 age).{.continue;.}..$name.=.$pac
4ab60 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 kage->getPrettyName();.$version.
4ab80 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a =.$package->getPrettyVersion();.
4aba0 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f .if.(!$name.||.!$version).{.thro
4abc0 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 w.new.\LogicException(sprintf(.'
4abe0 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 76 65 72 73 69 6f 6e 20 6f 72 20 6e Package."%s".has.no.version.or.n
4ac00 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 64 27 2c 20 24 70 61 63 ame.and.can.not.be.locked',.$pac
4ac20 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 65 kage.));.}..$spec.=.$this->dumpe
4ac40 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 r->dump($package);.unset($spec['
4ac60 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 24 74 69 6d 65 20 version_normalized']);....$time.
4ac80 3d 20 69 73 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 29 20 3f 20 24 73 70 65 63 5b 27 =.isset($spec['time']).?.$spec['
4aca0 74 69 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 time'].:.null;.unset($spec['time
4acc0 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 70 ']);.if.($package->isDev().&&.$p
4ace0 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 20 ackage->getInstallationSource().
4ad00 3d 3d 3d 20 27 73 6f 75 72 63 65 27 29 20 7b 0a 0a 20 24 74 69 6d 65 20 3d 20 24 74 68 69 73 2d ===.'source').{...$time.=.$this-
4ad20 3e 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 28 24 70 61 63 6b 61 67 65 29 20 3f 3a 20 24 74 69 >getPackageTime($package).?:.$ti
4ad40 6d 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 29 20 7b 0a 24 73 70 65 me;.}.if.(null.!==.$time).{.$spe
4ad60 63 5b 27 74 69 6d 65 27 5d 20 3d 20 24 74 69 6d 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 70 65 c['time'].=.$time;.}..unset($spe
4ad80 63 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 3b 0a 0a 24 6c 6f 63 c['installation-source']);..$loc
4ada0 6b 65 64 5b 5d 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c ked[].=.$spec;.}..usort($locked,
4adc0 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 69 73 6f 6e .function.($a,.$b).{.$comparison
4ade0 20 3d 20 73 74 72 63 6d 70 28 24 61 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 6e 61 6d 65 27 5d .=.strcmp($a['name'],.$b['name']
4ae00 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 20 7b 0a 72 65 74 );..if.(0.!==.$comparison).{.ret
4ae20 75 72 6e 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 urn.$comparison;.}....return.str
4ae40 63 6d 70 28 24 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d cmp($a['version'],.$b['version']
4ae60 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a );.});..return.$locked;.}.......
4ae80 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 .private.function.getPackageTime
4aea0 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 (PackageInterface.$package).{.if
4aec0 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 .(!function_exists('proc_open'))
4aee0 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 72 65 61 6c 70 .{.return.null;.}..$path.=.realp
4af00 61 74 68 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e ath($this->installationManager->
4af20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 24 73 6f 75 72 getInstallPath($package));.$sour
4af40 63 65 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 ceType.=.$package->getSourceType
4af60 28 29 3b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 24 70 61 74 68 ();.$datetime.=.null;..if.($path
4af80 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 73 6f 75 72 63 65 54 79 70 65 2c 20 61 72 72 61 79 28 .&&.in_array($sourceType,.array(
4afa0 27 67 69 74 27 2c 20 27 68 67 27 29 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 66 20 3d 20 24 70 'git',.'hg'))).{.$sourceRef.=.$p
4afc0 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 3f 3a 20 ackage->getSourceReference().?:.
4afe0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 73 77 $package->getDistReference();.sw
4b000 69 74 63 68 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 67 69 74 27 3a itch.($sourceType).{.case.'git':
4b020 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 6c 65 .$util.=.new.GitUtil;.$util->cle
4b040 61 6e 45 6e 76 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 anEnv();..if.(0.===.$this->proce
4b060 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 72 65 74 74 ss->execute('git.log.-n1.--prett
4b080 79 3d 25 63 74 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 y=%ct.'.escapeshellarg($sourceRe
4b0a0 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 f),.$output,.$path).&&.preg_matc
4b0c0 68 28 27 7b 5e 5c 73 2a 5c 64 2b 5c 73 2a 24 7d 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 h('{^\s*\d+\s*$}',.$output)).{.$
4b0e0 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 69 datetime.=.new.\DateTime('@'.tri
4b100 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 m($output),.new.\DateTimeZone('U
4b120 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 67 27 3a 0a 69 66 20 28 TC'));.}.break;..case.'hg':.if.(
4b140 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 0.===.$this->process->execute('h
4b160 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 68 67 64 61 74 65 7d 22 g.log.--template."{date|hgdate}"
4b180 20 2d 72 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 66 29 .-r.'.escapeshellarg($sourceRef)
4b1a0 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 ,.$output,.$path).&&.preg_match(
4b1c0 27 7b 5e 5c 73 2a 28 5c 64 2b 29 5c 73 2a 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 '{^\s*(\d+)\s*}',.$output,.$matc
4b1e0 68 29 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 h)).{.$datetime.=.new.\DateTime(
4b200 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 '@'.$match[1],.new.\DateTimeZone
4b220 28 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ('UTC'));.}.break;.}.}..return.$
4b240 64 61 74 65 74 69 6d 65 20 3f 20 24 64 61 74 65 74 69 6d 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d datetime.?.$datetime->format('Y-
4b260 6d 2d 64 20 48 3a 69 3a 73 27 29 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a m-d.H:i:s').:.null;.}.}.<?php...
4b280 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b .........namespace.Composer\Pack
4b2a0 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 age;..use.Composer\Repository\Re
4b2c0 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 positoryInterface;.......interfa
4b2e0 63 65 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ce.PackageInterface.{......publi
4b300 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c c.function.getName();.......publ
4b320 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 0a 0a 0a ic.function.getPrettyName();....
4b340 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 ......public.function.getNames()
4b360 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 ;.......public.function.setId($i
4b380 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 d);.......public.function.getId(
4b3a0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 );.......public.function.isDev()
4b3c0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 ;.......public.function.getType(
4b3e0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 );.......public.function.getTarg
4b400 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 etDir();.......public.function.g
4b420 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e etExtra();.......public.function
4b440 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 0a .setInstallationSource($type);..
4b460 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 .....public.function.getInstalla
4b480 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tionSource();.......public.funct
4b4a0 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ion.getSourceType();.......publi
4b4c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a c.function.getSourceUrl();......
4b4e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .public.function.getSourceRefere
4b500 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 nce();.......public.function.get
4b520 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f DistType();.......public.functio
4b540 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e n.getDistUrl();.......public.fun
4b560 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a ction.getDistReference();.......
4b580 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b public.function.getDistSha1Check
4b5a0 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 sum();.......public.function.get
4b5c0 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Version();.......public.function
4b5e0 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .getPrettyVersion();.......publi
4b600 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 0a 0a 0a c.function.getReleaseDate();....
4b620 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 ...public.function.getStability(
4b640 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 );........public.function.getReq
4b660 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 uires();........public.function.
4b680 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 getConflicts();........public.fu
4b6a0 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 nction.getProvides();........pub
4b6c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 0a 0a lic.function.getReplaces();.....
4b6e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 ...public.function.getDevRequire
4b700 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 s();........public.function.getS
4b720 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e uggests();............public.fun
4b740 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ction.getAutoload();........publ
4b760 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 0a ic.function.getIncludePaths();..
4b780 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f .....public.function.setReposito
4b7a0 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f ry(RepositoryInterface.$reposito
4b7c0 72 79 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 ry);.......public.function.getRe
4b7e0 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f pository();.......public.functio
4b800 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.getBinaries();.......public.fu
4b820 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 nction.getUniqueName();.......pu
4b840 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c blic.function.getNotificationUrl
4b860 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 ();.......public.function.__toSt
4b880 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ring();.......public.function.ge
4b8a0 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tPrettyString();.......public.fu
4b8c0 6e 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 3c nction.getArchiveExcludes();.}.<
4b8e0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
4b900 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 er\Package;..use.Composer\Reposi
4b920 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f tory\RepositoryInterface;.use.Co
4b940 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 mposer\Repository\PlatformReposi
4b960 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 tory;.......abstract.class.BaseP
4b980 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 ackage.implements.PackageInterfa
4b9a0 63 65 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e ce.{.public.static.$supportedLin
4b9c0 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 kTypes.=.array(.'require'.=>.arr
4b9e0 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 ay('description'.=>.'requires',.
4ba00 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 'method'.=>.'requires'),.'confli
4ba20 63 74 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 ct'.=>.array('description'.=>.'c
4ba40 6f 6e 66 6c 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 onflicts',.'method'.=>.'conflict
4ba60 73 27 29 2c 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 s'),.'provide'.=>.array('descrip
4ba80 74 69 6f 6e 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e tion'.=>.'provides',.'method'.=>
4baa0 20 27 70 72 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 .'provides'),.'replace'.=>.array
4bac0 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d ('description'.=>.'replaces',.'m
4bae0 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d ethod'.=>.'replaces'),.'require-
4bb00 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 dev'.=>.array('description'.=>.'
4bb20 72 65 71 75 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 requires.(for.development)',.'me
4bb40 74 68 6f 64 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e thod'.=>.'devRequires'),.);..con
4bb60 73 74 20 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 st.STABILITY_STABLE.=.0;.const.S
4bb80 54 41 42 49 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 TABILITY_RC.=.5;.const.STABILITY
4bba0 5f 42 45 54 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 _BETA.=.10;.const.STABILITY_ALPH
4bbc0 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 A.=.15;.const.STABILITY_DEV.=.20
4bbe0 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 ;..public.static.$stabilities.=.
4bc00 61 72 72 61 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 array(.'stable'.=>.self::STABILI
4bc20 54 59 5f 53 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 TY_STABLE,.'RC'.=>.self::STABILI
4bc40 54 59 5f 52 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 TY_RC,.'beta'.=>.self::STABILITY
4bc60 5f 42 45 54 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 _BETA,.'alpha'.=>.self::STABILIT
4bc80 59 5f 41 4c 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 Y_ALPHA,.'dev'.=>.self::STABILIT
4bca0 59 5f 44 45 56 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 Y_DEV,.);..protected.$name;.prot
4bcc0 65 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 ected.$prettyName;..protected.$r
4bce0 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a 0a epository;.protected.$id;.......
4bd00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d public.function.__construct($nam
4bd20 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a e).{.$this->prettyName.=.$name;.
4bd40 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b $this->name.=.strtolower($name);
4bd60 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$this->id.=.-1;.}.....public.fu
4bd80 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getName().{.return.$this-
4bda0 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 >name;.}.....public.function.get
4bdc0 50 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 PrettyName().{.return.$this->pre
4bde0 74 74 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ttyName;.}.....public.function.g
4be00 65 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 etNames().{.$names.=.array(.$thi
4be20 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 s->getName().=>.true,.);..foreac
4be40 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b h.($this->getProvides().as.$link
4be60 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d ).{.$names[$link->getTarget()].=
4be80 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 .true;.}..foreach.($this->getRep
4bea0 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b laces().as.$link).{.$names[$link
4bec0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ->getTarget()].=.true;.}..return
4bee0 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .array_keys($names);.}.....publi
4bf00 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 c.function.setId($id).{.$this->i
4bf20 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 d.=.$id;.}.....public.function.g
4bf40 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a etId().{.return.$this->id;.}....
4bf60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 .public.function.setRepository(R
4bf80 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a epositoryInterface.$repository).
4bfa0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f {.if.($this->repository.&&.$repo
4bfc0 73 69 74 6f 72 79 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a sitory.!==.$this->repository).{.
4bfe0 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 70 61 63 throw.new.\LogicException('A.pac
4c000 6b 61 67 65 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 6f 6e 65 20 72 65 kage.can.only.be.added.to.one.re
4c020 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 pository');.}.$this->repository.
4c040 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 =.$repository;.}.....public.func
4c060 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getRepository().{.return.$t
4c080 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 his->repository;.}.......public.
4c0a0 66 75 6e 63 74 69 6f 6e 20 69 73 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.isPlatform().{.return.$
4c0c0 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 this->getRepository().instanceof
4c0e0 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .PlatformRepository;.}.......pub
4c100 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 lic.function.getUniqueName().{.r
4c120 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 eturn.$this->getName().'-'.$this
4c140 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getVersion();.}..public.functi
4c160 6f 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b on.equals(PackageInterface.$pack
4c180 61 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 age).{.$self.=.$this;.if.($this.
4c1a0 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 65 6c 66 instanceof.AliasPackage).{.$self
4c1c0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 .=.$this->getAliasOf();.}.if.($p
4c1e0 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 ackage.instanceof.AliasPackage).
4c200 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f {.$package.=.$package->getAliasO
4c220 66 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c f();.}..return.$package.===.$sel
4c240 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 f;.}.......public.function.__toS
4c260 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 tring().{.return.$this->getUniqu
4c280 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 eName();.}..public.function.getP
4c2a0 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 rettyString().{.return.$this->ge
4c2c0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 tPrettyName().'.'.$this->getPret
4c2e0 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tyVersion();.}..public.function.
4c300 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 __clone().{.$this->repository.=.
4c320 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a null;.$this->id.=.-1;.}.}.<?php.
4c340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ...........namespace.Composer\Pa
4c360 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ckage\Version;..use.Composer\Pac
4c380 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 kage\BasePackage;.use.Composer\P
4c3a0 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d ackage\PackageInterface;.use.Com
4c3c0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 poser\Package\Link;.use.Composer
4c3e0 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e \Package\LinkConstraint\EmptyCon
4c400 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 straint;.use.Composer\Package\Li
4c420 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 nkConstraint\MultiConstraint;.us
4c440 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e e.Composer\Package\LinkConstrain
4c460 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 t\VersionConstraint;.......class
4c480 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 .VersionParser.{.private.static.
4c4a0 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 73 74 61 62 $modifierRegex.=.'[._-]?(?:(stab
4c4c0 6c 65 7c 62 65 74 61 7c 62 7c 52 43 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 le|beta|b|RC|alpha|a|patch|pl|p)
4c4e0 28 3f 3a 5b 2e 2d 5d 3f 28 5c 64 2b 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a (?:[.-]?(\d+))?)?([.-]?dev)?';..
4c500 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 ......public.static.function.par
4c520 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e seStability($version).{.$version
4c540 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 23 2e 2b 24 7d 69 27 2c 20 27 27 2c 20 24 .=.preg_replace('{#.+$}i',.'',.$
4c560 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 version);..if.('dev-'.===.substr
4c580 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 ($version,.0,.4).||.'-dev'.===.s
4c5a0 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 ubstr($version,.-4)).{.return.'d
4c5c0 65 76 27 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f ev';.}..preg_match('{'.self::$mo
4c5e0 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 difierRegex.'$}i',.strtolower($v
4c600 65 72 73 69 6f 6e 29 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 ersion),.$match);.if.(!empty($ma
4c620 74 63 68 5b 33 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 tch[3])).{.return.'dev';.}..if.(
4c640 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 !empty($match[1])).{.if.('beta'.
4c660 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b ===.$match[1].||.'b'.===.$match[
4c680 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 1]).{.return.'beta';.}.if.('alph
4c6a0 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 a'.===.$match[1].||.'a'.===.$mat
4c6c0 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 ch[1]).{.return.'alpha';.}.if.('
4c6e0 72 63 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 27 rc'.===.$match[1]).{.return.'RC'
4c700 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 ;.}.}..return.'stable';.}..publi
4c720 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 c.static.function.normalizeStabi
4c740 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 lity($stability).{.$stability.=.
4c760 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 strtolower($stability);..return.
4c780 24 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 $stability.===.'rc'.?.'RC'.:.$st
4c7a0 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 ability;.}..public.static.functi
4c7c0 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 on.formatVersion(PackageInterfac
4c7e0 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a e.$package,.$truncate.=.true).{.
4c800 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 if.(!$package->isDev().||.!in_ar
4c820 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 ray($package->getSourceType(),.a
4c840 72 72 61 79 28 27 68 67 27 2c 20 27 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 rray('hg',.'git'))).{.return.$pa
4c860 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 ckage->getPrettyVersion();.}....
4c880 69 66 20 28 24 74 72 75 6e 63 61 74 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 if.($truncate.&&.strlen($package
4c8a0 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 ->getSourceReference()).===.40).
4c8c0 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 {.return.$package->getPrettyVers
4c8e0 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 ion()...'.'...substr($package->g
4c900 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 etSourceReference(),.0,.7);.}..r
4c920 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e eturn.$package->getPrettyVersion
4c940 28 29 20 2e 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 ()...'.'...$package->getSourceRe
4c960 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ference();.}..........public.fun
4c980 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 24 66 75 6c 6c 56 ction.normalize($version,.$fullV
4c9a0 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d ersion.=.null).{.$version.=.trim
4c9c0 28 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 66 75 6c 6c 56 65 ($version);.if.(null.===.$fullVe
4c9e0 72 73 69 6f 6e 29 20 7b 0a 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e rsion).{.$fullVersion.=.$version
4ca00 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d ;.}....if.(preg_match('{^([^,\s]
4ca20 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 +).+as.+([^,\s]+)$}',.$version,.
4ca40 24 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b $match)).{.$version.=.$match[1];
4ca60 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 64 65 76 2d 29 .}....if.(preg_match('{^(?:dev-)
4ca80 3f 28 3f 3a 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 29 24 7d 69 27 2c 20 24 ?(?:master|trunk|default)$}i',.$
4caa0 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 version)).{.return.'9999999-dev'
4cac0 3b 0a 7d 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 ;.}..if.('dev-'.===.strtolower(s
4cae0 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 29 29 20 7b 0a 72 65 74 75 72 6e ubstr($version,.0,.4))).{.return
4cb00 20 27 64 65 76 2d 27 2e 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 34 29 3b 0a 7d 0a 0a .'dev-'.substr($version,.4);.}..
4cb20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 ..if.(preg_match('{^v?(\d{1,3})(
4cb40 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c 66 3a 3a 24 \.\d+)?(\.\d+)?(\.\d+)?'.self::$
4cb60 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 modifierRegex.'$}i',.$version,.$
4cb80 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b matches)).{.$version.=.$matches[
4cba0 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 1]..(!empty($matches[2]).?.$matc
4cbc0 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 hes[2].:.'.0')..(!empty($matches
4cbe0 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d [3]).?.$matches[3].:.'.0')..(!em
4cc00 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a pty($matches[4]).?.$matches[4].:
4cc20 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 .'.0');.$index.=.5;.}.elseif.(pr
4cc40 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b eg_match('{^v?(\d{4}(?:[.:-]?\d{
4cc60 32 7d 29 7b 31 2c 36 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 2e 73 65 6c 2}){1,6}(?:[.:-]?\d{1,3})?)'.sel
4cc80 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f f::$modifierRegex.'$}i',.$versio
4cca0 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 20 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 n,.$matches)).{...$version.=.pre
4ccc0 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 44 7d 27 2c 20 27 2d 27 2c 20 24 6d 61 74 63 68 65 73 5b g_replace('{\D}',.'-',.$matches[
4cce0 31 5d 29 3b 0a 24 69 6e 64 65 78 20 3d 20 32 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 1]);.$index.=.2;.}....if.(isset(
4cd00 24 69 6e 64 65 78 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 $index)).{.if.(!empty($matches[$
4cd20 69 6e 64 65 78 5d 29 29 20 7b 0a 69 66 20 28 27 73 74 61 62 6c 65 27 20 3d 3d 3d 20 24 6d 61 74 index])).{.if.('stable'.===.$mat
4cd40 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b ches[$index]).{.return.$version;
4cd60 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 .}.$version..=.'-'...$this->expa
4cd80 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 2e 20 ndStability($matches[$index])...
4cda0 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 29 20 3f 20 24 6d (!empty($matches[$index+1]).?.$m
4cdc0 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 atches[$index+1].:.'');.}..if.(!
4cde0 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 32 5d 29 29 20 7b 0a 24 76 65 empty($matches[$index+2])).{.$ve
4ce00 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 rsion..=.'-dev';.}..return.$vers
4ce20 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 2e 2a 3f 29 ion;.}....if.(preg_match('{(.*?)
4ce40 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 [.-]?dev$}i',.$version,.$match))
4ce60 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 .{.try.{.return.$this->normalize
4ce80 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 Branch($match[1]);.}.catch.(\Exc
4cea0 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d eption.$e).{}.}..$extraMessage.=
4cec0 20 27 27 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 20 2b 61 73 20 2b 27 2e 70 72 .'';.if.(preg_match('{.+as.+'.pr
4cee0 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 2e 27 24 7d 27 2c 20 24 66 75 6c 6c 56 65 eg_quote($version).'$}',.$fullVe
4cf00 72 73 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 rsion)).{.$extraMessage.=.'.in."
4cf20 27 2e 24 66 75 6c 6c 56 65 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 6d 75 73 '.$fullVersion.'",.the.alias.mus
4cf40 74 20 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 27 3b 0a 7d 20 65 6c 73 65 69 66 t.be.an.exact.version';.}.elseif
4cf60 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 .(preg_match('{^'.preg_quote($ve
4cf80 72 73 69 6f 6e 29 2e 27 20 2b 61 73 20 2b 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 rsion).'.+as.+}',.$fullVersion))
4cfa0 20 7b 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 2e 24 66 75 6c 6c .{.$extraMessage.=.'.in."'.$full
4cfc0 56 65 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 73 6f 75 72 63 65 20 6d 75 73 Version.'",.the.alias.source.mus
4cfe0 74 20 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 t.be.an.exact.version,.if.it.is.
4d000 61 20 62 72 61 6e 63 68 20 6e 61 6d 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 72 65 66 69 78 20 a.branch.name.you.should.prefix.
4d020 69 74 20 77 69 74 68 20 64 65 76 2d 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 it.with.dev-';.}..throw.new.\Une
4d040 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 76 xpectedValueException('Invalid.v
4d060 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 22 27 2e 24 76 65 72 73 69 6f 6e 2e 27 22 27 2e 24 65 ersion.string."'.$version.'"'.$e
4d080 78 74 72 61 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 xtraMessage);.}........public.fu
4d0a0 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a nction.normalizeBranch($name).{.
4d0c0 24 6e 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 $name.=.trim($name);..if.(in_arr
4d0e0 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b ay($name,.array('master',.'trunk
4d100 27 2c 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ',.'default'))).{.return.$this->
4d120 6e 6f 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 normalize($name);.}..if.(preg_ma
4d140 74 63 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 tch('#^v?(\d+)(\.(?:\d+|[x*]))?(
4d160 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 \.(?:\d+|[x*]))?(\.(?:\d+|[x*]))
4d180 3f 24 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 ?$#i',.$name,.$matches)).{.$vers
4d1a0 69 6f 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 ion.=.'';.for.($i.=.1;.$i.<.5;.$
4d1c0 69 2b 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 i++).{.$version..=.isset($matche
4d1e0 73 5b 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 s[$i]).?.str_replace('*',.'x',.$
4d200 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 matches[$i]).:.'.x';.}..return.s
4d220 74 72 5f 72 65 70 6c 61 63 65 28 27 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 tr_replace('x',.'9999999',.$vers
4d240 69 6f 6e 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e ion).'-dev';.}..return.'dev-'.$n
4d260 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 ame;.}.........public.function.p
4d280 61 72 73 65 4c 69 6e 6b 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f arseLinks($source,.$sourceVersio
4d2a0 6e 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 n,.$description,.$links).{.$res.
4d2c0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 74 =.array();.foreach.($links.as.$t
4d2e0 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c arget.=>.$constraint).{.if.('sel
4d300 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 f.version'.===.$constraint).{.$p
4d320 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f arsedConstraint.=.$this->parseCo
4d340 6e 73 74 72 61 69 6e 74 73 28 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 nstraints($sourceVersion);.}.els
4d360 65 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 e.{.$parsedConstraint.=.$this->p
4d380 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a arseConstraints($constraint);.}.
4d3a0 24 72 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 $res[strtolower($target)].=.new.
4d3c0 4c 69 6e 6b 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f Link($source,.$target,.$parsedCo
4d3e0 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 nstraint,.$description,.$constra
4d400 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 int);.}..return.$res;.}........p
4d420 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 ublic.function.parseConstraints(
4d440 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e $constraints).{.$prettyConstrain
4d460 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 t.=.$constraints;..if.(preg_matc
4d480 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 h('{^([^,\s]*?)@('.implode('|',.
4d4a0 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 array_keys(BasePackage::$stabili
4d4c0 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 ties)).')$}i',.$constraints,.$ma
4d4e0 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 tch)).{.$constraints.=.empty($ma
4d500 74 63 68 5b 31 5d 29 20 3f 20 27 2a 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 tch[1]).?.'*'.:.$match[1];.}..if
4d520 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b .(preg_match('{^(dev-[^,\s@]+?|[
4d540 5e 2c 5c 73 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 2e 2b 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 ^,\s@]+?\.x-dev)#.+$}i',.$constr
4d560 61 69 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d aints,.$match)).{.$constraints.=
4d580 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 .$match[1];.}..$orConstraints.=.
4d5a0 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 7c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 preg_split('{\s*\|\s*}',.trim($c
4d5c0 6f 6e 73 74 72 61 69 6e 74 73 29 29 3b 0a 24 6f 72 47 72 6f 75 70 73 20 3d 20 61 72 72 61 79 28 onstraints));.$orGroups.=.array(
4d5e0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 );.foreach.($orConstraints.as.$c
4d600 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 onstraints).{.$andConstraints.=.
4d620 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 24 63 6f 6e 73 74 72 61 preg_split('{\s*,\s*}',.$constra
4d640 69 6e 74 73 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 ints);..if.(count($andConstraint
4d660 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 61 s).>.1).{.$constraintObjects.=.a
4d680 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 rray();.foreach.($andConstraints
4d6a0 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 .as.$constraint).{.$constraintOb
4d6c0 6a 65 63 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f jects.=.array_merge($constraintO
4d6e0 62 6a 65 63 74 73 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 bjects,.$this->parseConstraint($
4d700 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 constraint));.}.}.else.{.$constr
4d720 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 aintObjects.=.$this->parseConstr
4d740 61 69 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 aint($andConstraints[0]);.}..if.
4d760 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 (1.===.count($constraintObjects)
4d780 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a ).{.$constraint.=.$constraintObj
4d7a0 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 ects[0];.}.else.{.$constraint.=.
4d7c0 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f new.MultiConstraint($constraintO
4d7e0 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 bjects);.}..$orGroups[].=.$const
4d800 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6f 72 47 72 6f raint;.}..if.(1.===.count($orGro
4d820 75 70 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 72 6f 75 70 73 5b ups)).{.$constraint.=.$orGroups[
4d840 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 4d 0];.}.else.{.$constraint.=.new.M
4d860 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 66 61 6c 73 65 29 ultiConstraint($orGroups,.false)
4d880 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e ;.}..$constraint->setPrettyStrin
4d8a0 67 28 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 g($prettyConstraint);..return.$c
4d8c0 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 onstraint;.}..private.function.p
4d8e0 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 arseConstraint($constraint).{.if
4d900 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f 29 40 28 27 2e 69 6d .(preg_match('{^([^,\s]+?)@('.im
4d920 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 plode('|',.array_keys(BasePackag
4d940 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 e::$stabilities)).')$}i',.$const
4d960 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 raint,.$match)).{.$constraint.=.
4d980 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 73 74 $match[1];.if.($match[2].!==.'st
4d9a0 61 62 6c 65 27 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 20 3d 20 24 6d able').{.$stabilityModifier.=.$m
4d9c0 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e atch[2];.}.}..if.(preg_match('{^
4d9e0 5b 78 2a 5d 28 5c 2e 5b 78 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 [x*](\.[x*])*$}i',.$constraint))
4da00 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 .{.return.array(new.EmptyConstra
4da20 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 int);.}............if.(preg_matc
4da40 68 28 27 7b 5e 7e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b h('{^~(\d+)(?:\.(\d+))?(?:\.(\d+
4da60 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 ))?(?:\.(\d+))?'.self::$modifier
4da80 52 65 67 65 78 2e 27 3f 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 Regex.'?$}i',.$constraint,.$matc
4daa0 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 hes)).{...if.(isset($matches[4])
4dac0 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 7b 0a 24 70 6f 73 69 74 .&&.''.!==.$matches[4]).{.$posit
4dae0 69 6f 6e 20 3d 20 34 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 ion.=.4;.}.elseif.(isset($matche
4db00 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 s[3]).&&.''.!==.$matches[3]).{.$
4db20 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d position.=.3;.}.elseif.(isset($m
4db40 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d atches[2]).&&.''.!==.$matches[2]
4db60 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 6f 73 ).{.$position.=.2;.}.else.{.$pos
4db80 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 0a 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 ition.=.1;.}....$stabilitySuffix
4dba0 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 29 20 .=.'';.if.(!empty($matches[5])).
4dbc0 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 {.$stabilitySuffix..=.'-'...$thi
4dbe0 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 20 s->expandStability($matches[5]).
4dc00 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 3f 20 24 6d 61 74 63 68 65 ..(!empty($matches[6]).?.$matche
4dc20 73 5b 36 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 s[6].:.'');.}..if.(!empty($match
4dc40 65 73 5b 37 5d 29 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d es[7])).{.$stabilitySuffix..=.'-
4dc60 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 20 dev';.}..if.(!$stabilitySuffix).
4dc80 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 22 2d 64 65 76 22 3b 0a 7d 0a 24 {.$stabilitySuffix.=."-dev";.}.$
4dca0 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 lowVersion.=.$this->manipulateVe
4dcc0 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c rsionString($matches,.$position,
4dce0 20 30 29 20 2e 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 3b 0a 24 6c 6f 77 65 72 42 6f .0)...$stabilitySuffix;.$lowerBo
4dd00 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 und.=.new.VersionConstraint('>='
4dd20 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 68 50 6f 73 69 74 69 ,.$lowVersion);......$highPositi
4dd40 6f 6e 20 3d 20 6d 61 78 28 31 2c 20 24 70 6f 73 69 74 69 6f 6e 20 2d 20 31 29 3b 0a 24 68 69 67 on.=.max(1,.$position.-.1);.$hig
4dd60 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 hVersion.=.$this->manipulateVers
4dd80 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 68 69 67 68 50 6f 73 69 74 69 6f ionString($matches,.$highPositio
4dda0 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 n,.1)...'-dev';.$upperBound.=.ne
4ddc0 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 w.VersionConstraint('<',.$highVe
4dde0 72 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 rsion);..return.array(.$lowerBou
4de00 6e 64 2c 0a 24 75 70 70 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 nd,.$upperBound.);.}....if.(preg
4de20 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e _match('{^(\d+)(?:\.(\d+))?(?:\.
4de40 28 5c 64 2b 29 29 3f 5c 2e 5b 78 2a 5d 24 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 (\d+))?\.[x*]$}',.$constraint,.$
4de60 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 matches)).{.if.(isset($matches[3
4de80 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 70 6f 73 ]).&&.''.!==.$matches[3]).{.$pos
4dea0 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 ition.=.3;.}.elseif.(isset($matc
4dec0 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 7b hes[2]).&&.''.!==.$matches[2]).{
4dee0 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 6f 73 69 74 69 .$position.=.2;.}.else.{.$positi
4df00 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e on.=.1;.}..$lowVersion.=.$this->
4df20 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 manipulateVersionString($matches
4df40 2c 20 24 70 6f 73 69 74 69 6f 6e 29 20 2e 20 22 2d 64 65 76 22 3b 0a 24 68 69 67 68 56 65 72 73 ,.$position)..."-dev";.$highVers
4df60 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 ion.=.$this->manipulateVersionSt
4df80 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 22 ring($matches,.$position,.1)..."
4dfa0 2d 64 65 76 22 3b 0a 0a 69 66 20 28 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 3d 3d 20 22 30 2e 30 -dev";..if.($lowVersion.===."0.0
4dfc0 2e 30 2e 30 2d 64 65 76 22 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 .0.0-dev").{.return.array(new.Ve
4dfe0 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f rsionConstraint('<',.$highVersio
4e000 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 20 56 65 72 73 69 6f n));.}..return.array(.new.Versio
4e020 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a nConstraint('>=',.$lowVersion),.
4e040 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 new.VersionConstraint('<',.$high
4e060 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 Version),.);.}....if.(preg_match
4e080 28 27 7b 5e 28 3c 3e 7c 21 3d 7c 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a 29 7d ('{^(<>|!=|>=?|<=?|==?)?\s*(.*)}
4e0a0 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 72 79 ',.$constraint,.$matches)).{.try
4e0c0 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 .{.$version.=.$this->normalize($
4e0e0 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 73 74 61 62 69 6c matches[2]);..if.(!empty($stabil
4e100 69 74 79 4d 6f 64 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 72 73 65 53 74 61 62 ityModifier).&&.$this->parseStab
4e120 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a ility($version).===.'stable').{.
4e140 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 $version..=.'-'...$stabilityModi
4e160 66 69 65 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 fier;.}.elseif.('<'.===.$matches
4e180 5b 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 73 74 61 62 6c 65 [1]).{.if.(!preg_match('/-stable
4e1a0 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 29 20 7b $/',.strtolower($matches[2]))).{
4e1c0 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e .$version..=.'-dev';.}.}..return
4e1e0 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 .array(new.VersionConstraint($ma
4e200 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 tches[1].?:.'=',.$version));.}.c
4e220 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 20 7d 0a 7d 0a 0a 24 6d 65 73 atch.(\Exception.$e).{.}.}..$mes
4e240 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 sage.=.'Could.not.parse.version.
4e260 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 69 73 constraint.'.$constraint;.if.(is
4e280 73 65 74 28 24 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 27 3a 20 27 2e 20 24 65 2d set($e)).{.$message..=.':.'..$e-
4e2a0 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 >getMessage();.}..throw.new.\Une
4e2c0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b xpectedValueException($message);
4e2e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d .}............private.function.m
4e300 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c anipulateVersionString($matches,
4e320 20 24 70 6f 73 69 74 69 6f 6e 2c 20 24 69 6e 63 72 65 6d 65 6e 74 20 3d 20 30 2c 20 24 70 61 64 .$position,.$increment.=.0,.$pad
4e340 20 3d 20 27 30 27 29 0a 7b 0a 66 6f 72 20 28 24 69 20 3d 20 34 3b 20 24 69 20 3e 20 30 3b 20 24 .=.'0').{.for.($i.=.4;.$i.>.0;.$
4e360 69 2d 2d 29 20 7b 0a 69 66 20 28 24 69 20 3e 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 24 6d 61 i--).{.if.($i.>.$position).{.$ma
4e380 74 63 68 65 73 5b 24 69 5d 20 3d 20 24 70 61 64 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 69 20 tches[$i].=.$pad;.}.else.if.($i.
4e3a0 3d 3d 20 24 70 6f 73 69 74 69 6f 6e 20 26 26 20 24 69 6e 63 72 65 6d 65 6e 74 29 20 7b 0a 24 6d ==.$position.&&.$increment).{.$m
4e3c0 61 74 63 68 65 73 5b 24 69 5d 20 2b 3d 20 24 69 6e 63 72 65 6d 65 6e 74 3b 0a 0a 20 69 66 20 28 atches[$i].+=.$increment;...if.(
4e3e0 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3c 20 30 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d $matches[$i].<.0).{.$matches[$i]
4e400 20 3d 20 24 70 61 64 3b 0a 24 70 6f 73 69 74 69 6f 6e 2d 2d 3b 0a 0a 0a 20 69 66 20 28 24 69 20 .=.$pad;.$position--;....if.($i.
4e420 3d 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ==.1).{.return;.}.}.}.}..return.
4e440 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 $matches[1]...'.'...$matches[2].
4e460 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 ..'.'...$matches[3]...'.'...$mat
4e480 63 68 65 73 5b 34 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 ches[4];.}..private.function.exp
4e4a0 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 andStability($stability).{.$stab
4e4c0 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a ility.=.strtolower($stability);.
4e4e0 0a 73 77 69 74 63 68 20 28 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 61 73 65 20 27 61 27 3a .switch.($stability).{.case.'a':
4e500 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 75 72 .return.'alpha';.case.'b':.retur
4e520 6e 20 27 62 65 74 61 27 3b 0a 63 61 73 65 20 27 70 27 3a 0a 63 61 73 65 20 27 70 6c 27 3a 0a 72 n.'beta';.case.'p':.case.'pl':.r
4e540 65 74 75 72 6e 20 27 70 61 74 63 68 27 3b 0a 63 61 73 65 20 27 72 63 27 3a 0a 72 65 74 75 72 6e eturn.'patch';.case.'rc':.return
4e560 20 27 52 43 27 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 .'RC';.default:.return.$stabilit
4e580 79 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 y;.}.}........public.function.pa
4e5a0 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 20 24 70 61 69 72 73 rseNameVersionPairs(array.$pairs
4e5c0 29 0a 7b 0a 24 70 61 69 72 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 70 61 69 72 73 ).{.$pairs.=.array_values($pairs
4e5e0 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d );.$result.=.array();..for.($i.=
4e600 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 70 61 69 72 73 29 3b 20 24 69 20 3c .0,.$count.=.count($pairs);.$i.<
4e620 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 70 61 69 72 20 3d 20 70 72 65 67 5f 72 65 .$count;.$i++).{.$pair.=.preg_re
4e640 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 place('{^([^=:.]+)[=:.](.*)$}',.
4e660 27 24 31 20 24 32 27 2c 20 74 72 69 6d 28 24 70 61 69 72 73 5b 24 69 5d 29 29 3b 0a 69 66 20 28 '$1.$2',.trim($pairs[$i]));.if.(
4e680 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 20 26 26 20 false.===.strpos($pair,.'.').&&.
4e6a0 69 73 73 65 74 28 24 70 61 69 72 73 5b 24 69 2b 31 5d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d isset($pairs[$i+1]).&&.false.===
4e6c0 20 73 74 72 70 6f 73 28 24 70 61 69 72 73 5b 24 69 2b 31 5d 2c 20 27 2f 27 29 29 20 7b 0a 24 70 .strpos($pairs[$i+1],.'/')).{.$p
4e6e0 61 69 72 20 2e 3d 20 27 20 27 2e 24 70 61 69 72 73 5b 24 69 2b 31 5d 3b 0a 24 69 2b 2b 3b 0a 7d air..=.'.'.$pairs[$i+1];.$i++;.}
4e700 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 29 20 7b 0a 6c 69 73 74 ..if.(strpos($pair,.'.')).{.list
4e720 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 22 20 22 2c ($name,.$version).=.explode(".",
4e740 20 24 70 61 69 72 2c 20 32 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e .$pair,.2);.$result[].=.array('n
4e760 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 ame'.=>.$name,.'version'.=>.$ver
4e780 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 sion);.}.else.{.$result[].=.arra
4e7a0 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 y('name'.=>.$pair);.}.}..return.
4e7c0 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 $result;.}.}.<?php............na
4e7e0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a mespace.Composer\Package;.......
4e800 69 6e 74 65 72 66 61 63 65 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 interface.CompletePackageInterfa
4e820 63 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a ce.extends.PackageInterface.{...
4e840 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 3b ...public.function.getScripts();
4e860 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f .........public.function.getRepo
4e880 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f sitories();.......public.functio
4e8a0 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e n.getLicense();.......public.fun
4e8c0 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ction.getKeywords();.......publi
4e8e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a c.function.getDescription();....
4e900 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 ...public.function.getHomepage()
4e920 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 ;.........public.function.getAut
4e940 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 hors();.......public.function.ge
4e960 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e tSupport();.}.<?php............n
4e980 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a amespace.Composer\Package;......
4e9a0 0a 69 6e 74 65 72 66 61 63 65 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 .interface.RootPackageInterface.
4e9c0 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 extends.CompletePackageInterface
4e9e0 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 .{......public.function.getAlias
4ea00 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d es();.......public.function.getM
4ea20 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 inimumStability();.........publi
4ea40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a c.function.getStabilityFlags();.
4ea60 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 ........public.function.getRefer
4ea80 65 6e 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ences();.......public.function.g
4eaa0 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 etPreferStable();.......public.f
4eac0 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 unction.setRequires(array.$requi
4eae0 72 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 res);.......public.function.setD
4eb00 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 29 3b 0a evRequires(array.$devRequires);.
4eb20 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
4eb40 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 poser\Package;.......class.RootP
4eb60 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 69 ackage.extends.CompletePackage.i
4eb80 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b mplements.RootPackageInterface.{
4eba0 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 .protected.$minimumStability.=.'
4ebc0 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 stable';.protected.$preferStable
4ebe0 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c .=.false;.protected.$stabilityFl
4ec00 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 66 65 72 65 ags.=.array();.protected.$refere
4ec20 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 nces.=.array();.protected.$alias
4ec40 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 es.=.array();.......public.funct
4ec60 69 6f 6e 20 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 6d 75 6d ion.setMinimumStability($minimum
4ec80 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 Stability).{.$this->minimumStabi
4eca0 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a lity.=.$minimumStability;.}.....
4ecc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c public.function.getMinimumStabil
4ece0 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 ity().{.return.$this->minimumSta
4ed00 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 bility;.}.......public.function.
4ed20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 setStabilityFlags(array.$stabili
4ed40 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 tyFlags).{.$this->stabilityFlags
4ed60 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .=.$stabilityFlags;.}.....public
4ed80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a .function.getStabilityFlags().{.
4eda0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a return.$this->stabilityFlags;.}.
4edc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 ......public.function.setPreferS
4ede0 74 61 62 6c 65 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 table($preferStable).{.$this->pr
4ee00 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 0a eferStable.=.$preferStable;.}...
4ee20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c ..public.function.getPreferStabl
4ee40 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 e().{.return.$this->preferStable
4ee60 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 66 ;.}.......public.function.setRef
4ee80 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 erences(array.$references).{.$th
4eea0 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a is->references.=.$references;.}.
4eec0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 ....public.function.getReference
4eee0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a s().{.return.$this->references;.
4ef00 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 }.......public.function.setAlias
4ef20 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 es(array.$aliases).{.$this->alia
4ef40 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ses.=.$aliases;.}.....public.fun
4ef60 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getAliases().{.return.$thi
4ef80 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->aliases;.}.}.<?php...........
4efa0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 .namespace.Composer\Package\Arch
4efc0 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 72 63 68 69 76 65 72 49 6e iver;.......interface.ArchiverIn
4efe0 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 terface.{...........public.funct
4f000 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 ion.archive($sources,.$target,.$
4f020 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 format,.array.$excludes.=.array(
4f040 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 ));..........public.function.sup
4f060 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 65 29 3b 0a 7d 0a 3c ports($format,.$sourceType);.}.<
4f080 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
4f0a0 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 er\Package\Archiver;.......class
4f0c0 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 .ComposerExcludeFilter.extends.B
4f0e0 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 aseExcludeFilter.{.....public.fu
4f100 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 2c 20 nction.__construct($sourcePath,.
4f120 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f array.$excludeRules).{.parent::_
4f140 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e _construct($sourcePath);.$this->
4f160 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 excludePatterns.=.$this->generat
4f180 65 50 61 74 74 65 72 6e 73 28 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f ePatterns($excludeRules);.}.}.<?
4f1a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
4f1c0 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 r\Package\Archiver;.......class.
4f1e0 50 68 61 72 41 72 63 68 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 72 63 68 69 76 65 72 PharArchiver.implements.Archiver
4f200 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 66 6f Interface.{.protected.static.$fo
4f220 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 27 7a 69 70 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 5a rmats.=.array(.'zip'.=>.\Phar::Z
4f240 49 50 2c 0a 27 74 61 72 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 54 41 52 2c 0a 29 3b 0a 0a 0a 0a 0a IP,.'tar'.=>.\Phar::TAR,.);.....
4f260 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 public.function.archive($sources
4f280 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 ,.$target,.$format,.array.$exclu
4f2a0 64 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 6f 75 72 63 65 73 20 3d 20 72 65 61 6c des.=.array()).{.$sources.=.real
4f2c0 70 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 0a 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 path($sources);....if.(file_exis
4f2e0 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 61 72 67 65 74 29 3b 0a ts($target)).{.unlink($target);.
4f300 7d 0a 0a 74 72 79 20 7b 0a 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 }..try.{.$phar.=.new.\PharData($
4f320 74 61 72 67 65 74 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 24 66 6f 72 target,.null,.null,.static::$for
4f340 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 24 66 69 6c 65 73 20 3d 20 6e 65 77 20 41 72 63 mats[$format]);.$files.=.new.Arc
4f360 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 28 24 73 6f 75 72 63 65 73 2c 20 24 65 78 hivableFilesFinder($sources,.$ex
4f380 63 6c 75 64 65 73 29 3b 0a 24 70 68 61 72 2d 3e 62 75 69 6c 64 46 72 6f 6d 49 74 65 72 61 74 6f cludes);.$phar->buildFromIterato
4f3a0 72 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 61 r($files,.$sources);..return.$ta
4f3c0 72 67 65 74 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 rget;.}.catch.(\UnexpectedValueE
4f3e0 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 xception.$e).{.$message.=.sprint
4f400 66 28 22 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 69 76 65 20 27 25 73 27 f("Could.not.create.archive.'%s'
4f420 20 66 72 6f 6d 20 27 25 73 27 3a 20 25 73 22 2c 0a 24 74 61 72 67 65 74 2c 0a 24 73 6f 75 72 63 .from.'%s':.%s",.$target,.$sourc
4f440 65 73 2c 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 0a 74 68 72 6f 77 20 6e es,.$e->getMessage().);..throw.n
4f460 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 ew.\RuntimeException($message,.$
4f480 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 e->getCode(),.$e);.}.}.....publi
4f4a0 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f c.function.supports($format,.$so
4f4c0 75 72 63 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 74 61 74 69 63 3a urceType).{.return.isset(static:
4f4e0 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a :$formats[$format]);.}.}.<?php..
4f500 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
4f520 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 kage\Archiver;..use.Symfony\Comp
4f540 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 onent\Finder;.....abstract.class
4f560 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 .BaseExcludeFilter.{....protecte
4f580 64 20 24 73 6f 75 72 63 65 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 d.$sourcePath;.....protected.$ex
4f5a0 63 6c 75 64 65 50 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 cludePatterns;.....public.functi
4f5c0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 24 74 on.__construct($sourcePath).{.$t
4f5e0 68 69 73 2d 3e 73 6f 75 72 63 65 50 61 74 68 20 3d 20 24 73 6f 75 72 63 65 50 61 74 68 3b 0a 24 his->sourcePath.=.$sourcePath;.$
4f600 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b this->excludePatterns.=.array();
4f620 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 .}............public.function.fi
4f640 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c 75 64 65 29 0a 7b 0a lter($relativePath,.$exclude).{.
4f660 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 foreach.($this->excludePatterns.
4f680 61 73 20 24 70 61 74 74 65 72 6e 44 61 74 61 29 20 7b 0a 6c 69 73 74 28 24 70 61 74 74 65 72 6e as.$patternData).{.list($pattern
4f6a0 2c 20 24 6e 65 67 61 74 65 2c 20 24 73 74 72 69 70 4c 65 61 64 69 6e 67 53 6c 61 73 68 29 20 3d ,.$negate,.$stripLeadingSlash).=
4f6c0 20 24 70 61 74 74 65 72 6e 44 61 74 61 3b 0a 0a 69 66 20 28 24 73 74 72 69 70 4c 65 61 64 69 6e .$patternData;..if.($stripLeadin
4f6e0 67 53 6c 61 73 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 72 65 6c 61 74 69 gSlash).{.$path.=.substr($relati
4f700 76 65 50 61 74 68 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 72 65 vePath,.1);.}.else.{.$path.=.$re
4f720 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 lativePath;.}..if.(preg_match($p
4f740 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 65 78 63 6c 75 64 65 20 3d 20 21 24 6e attern,.$path)).{.$exclude.=.!$n
4f760 65 67 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 63 6c 75 64 65 3b 0a 7d 0a 0a egate;.}.}..return.$exclude;.}..
4f780 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 ........protected.function.parse
4f7a0 4c 69 6e 65 73 28 61 72 72 61 79 20 24 6c 69 6e 65 73 2c 20 24 6c 69 6e 65 50 61 72 73 65 72 29 Lines(array.$lines,.$lineParser)
4f7c0 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 .{.return.array_filter(.array_ma
4f7e0 70 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 75 73 65 20 28 24 6c 69 6e 65 50 61 p(.function.($line).use.($linePa
4f800 72 73 65 72 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 0a 24 63 rser).{.$line.=.trim($line);..$c
4f820 6f 6d 6d 65 6e 74 48 61 73 68 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 2c 20 27 23 27 29 3b ommentHash.=.strpos($line,.'#');
4f840 0a 69 66 20 28 24 63 6f 6d 6d 65 6e 74 48 61 73 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 .if.($commentHash.!==.false).{.$
4f860 6c 69 6e 65 20 3d 20 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 30 2c 20 24 63 6f 6d 6d 65 6e 74 line.=.substr($line,.0,.$comment
4f880 48 61 73 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 63 61 Hash);.}..if.($line).{.return.ca
4f8a0 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 6c 69 6e 65 50 61 72 73 65 72 2c 20 24 6c 69 6e 65 29 ll_user_func($lineParser,.$line)
4f8c0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 2c 20 24 6c 69 6e 65 73 29 2c 0a 66 75 ;.}..return.null;.},.$lines),.fu
4f8e0 6e 63 74 69 6f 6e 20 28 24 70 61 74 74 65 72 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 74 nction.($pattern).{.return.$patt
4f900 65 72 6e 20 21 3d 3d 20 6e 75 6c 6c 3b 0a 7d 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f ern.!==.null;.}.);.}.........pro
4f920 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 73 tected.function.generatePatterns
4f940 28 24 72 75 6c 65 73 29 0a 7b 0a 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ($rules).{.$patterns.=.array();.
4f960 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 70 61 74 foreach.($rules.as.$rule).{.$pat
4f980 74 65 72 6e 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e terns[].=.$this->generatePattern
4f9a0 28 24 72 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 72 6e 73 3b 0a 7d 0a ($rule);.}..return.$patterns;.}.
4f9c0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 ........protected.function.gener
4f9e0 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 0a 7b 0a 24 6e 65 67 61 74 65 20 3d 20 66 61 atePattern($rule).{.$negate.=.fa
4fa00 6c 73 65 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e lse;.$pattern.=.'#';..if.(strlen
4fa20 28 24 72 75 6c 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 21 27 29 20 7b 0a 24 ($rule).&&.$rule[0].===.'!').{.$
4fa40 6e 65 67 61 74 65 20 3d 20 74 72 75 65 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 negate.=.true;.$rule.=.substr($r
4fa60 75 6c 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 ule,.1);.}..if.(strlen($rule).&&
4fa80 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d .$rule[0].===.'/').{.$pattern..=
4faa0 20 27 5e 2f 27 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b .'^/';.$rule.=.substr($rule,.1);
4fac0 0a 7d 20 65 6c 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c .}.elseif.(false.===.strpos($rul
4fae0 65 2c 20 27 2f 27 29 20 7c 7c 20 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 2d 20 31 20 3d 3d 3d e,.'/').||.strlen($rule).-.1.===
4fb00 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 .strpos($rule,.'/')).{.$pattern.
4fb20 2e 3d 20 27 2f 27 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 73 75 62 73 74 72 28 46 69 .=.'/';.}..$pattern..=.substr(Fi
4fb40 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 72 75 6c 65 29 2c 20 32 2c 20 2d 32 nder\Glob::toRegex($rule),.2,.-2
4fb60 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 20 2e 20 27 23 27 2c );..return.array($pattern...'#',
4fb80 20 24 6e 65 67 61 74 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$negate,.false);.}.}.<?php.....
4fba0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 .......namespace.Composer\Packag
4fbc0 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 45 78 63 e\Archiver;.........class.GitExc
4fbe0 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 ludeFilter.extends.BaseExcludeFi
4fc00 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f lter.{......public.function.__co
4fc20 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f nstruct($sourcePath).{.parent::_
4fc40 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 69 66 20 28 66 69 _construct($sourcePath);..if.(fi
4fc60 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f le_exists($sourcePath.'/.gitigno
4fc80 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d re')).{.$this->excludePatterns.=
4fca0 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 .$this->parseLines(.file($source
4fcc0 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 Path.'/.gitignore'),.array($this
4fce0 2c 20 27 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 69 66 20 ,.'parseGitIgnoreLine').);.}.if.
4fd00 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 (file_exists($sourcePath.'/.gita
4fd20 74 74 72 69 62 75 74 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 ttributes')).{.$this->excludePat
4fd40 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 65 78 63 6c terns.=.array_merge(.$this->excl
4fd60 75 64 65 50 61 74 74 65 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a udePatterns,.$this->parseLines(.
4fd80 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 file($sourcePath.'/.gitattribute
4fda0 73 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 41 74 74 72 69 s'),.array($this,.'parseGitAttri
4fdc0 62 75 74 65 73 4c 69 6e 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c butesLine').));.}.}.........publ
4fde0 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 28 24 ic.function.parseGitIgnoreLine($
4fe00 6c 69 6e 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 line).{.return.$this->generatePa
4fe20 74 74 65 72 6e 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ttern($line);.}.........public.f
4fe40 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e 65 28 24 unction.parseGitAttributesLine($
4fe60 6c 69 6e 65 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 23 5c 73 line).{.$parts.=.preg_split('#\s
4fe80 2b 23 27 2c 20 24 6c 69 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 74 73 29 20 +#',.$line);..if.(count($parts).
4fea0 21 3d 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 72 !=.2).{.return.null;.}..if.($par
4fec0 74 73 5b 31 5d 20 3d 3d 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 29 20 7b 0a 72 65 74 ts[1].===.'export-ignore').{.ret
4fee0 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 70 61 72 74 urn.$this->generatePattern($part
4ff00 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 s[0]);.}.}.}.<?php............na
4ff20 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 mespace.Composer\Package\Archive
4ff40 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d r;..use.Composer\Util\Filesystem
4ff60 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b ;..use.Symfony\Component\Finder;
4ff80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 ..........class.ArchivableFilesF
4ffa0 69 6e 64 65 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a inder.extends.\FilterIterator.{.
4ffc0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ...protected.$finder;........pub
4ffe0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 lic.function.__construct($source
50000 73 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 s,.array.$excludes).{.$fs.=.new.
50020 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 24 73 6f 75 72 63 65 73 20 3d 20 24 66 73 2d 3e 6e Filesystem();..$sources.=.$fs->n
50040 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 24 66 69 6c 74 65 72 ormalizePath($sources);..$filter
50060 73 20 3d 20 61 72 72 61 79 28 0a 6e 65 77 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 s.=.array(.new.HgExcludeFilter($
50080 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 sources),.new.GitExcludeFilter($
500a0 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c sources),.new.ComposerExcludeFil
500c0 74 65 72 28 24 73 6f 75 72 63 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 2c 0a 29 3b 0a 0a 24 74 ter($sources,.$excludes),.);..$t
500e0 68 69 73 2d 3e 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 28 his->finder.=.new.Finder\Finder(
50100 29 3b 0a 0a 24 66 69 6c 74 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 5c 53 70 6c 46 69 6c 65 );..$filter.=.function.(\SplFile
50120 49 6e 66 6f 20 24 66 69 6c 65 29 20 75 73 65 20 28 24 73 6f 75 72 63 65 73 2c 20 24 66 69 6c 74 Info.$file).use.($sources,.$filt
50140 65 72 73 2c 20 24 66 73 29 20 7b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 70 72 65 67 ers,.$fs).{.$relativePath.=.preg
50160 5f 72 65 70 6c 61 63 65 28 0a 27 23 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 6f 75 72 63 _replace(.'#^'.preg_quote($sourc
50180 65 73 2c 20 27 23 27 29 2e 27 23 27 2c 0a 27 27 2c 0a 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 es,.'#').'#',.'',.$fs->normalize
501a0 50 61 74 68 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 Path($file->getRealPath()).);..$
501c0 65 78 63 6c 75 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 exclude.=.false;.foreach.($filte
501e0 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 24 65 78 63 6c 75 64 65 20 3d 20 24 66 69 6c rs.as.$filter).{.$exclude.=.$fil
50200 74 65 72 2d 3e 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c ter->filter($relativePath,.$excl
50220 75 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 65 78 63 6c 75 64 65 3b 0a 7d 3b 0a 0a 69 ude);.}..return.!$exclude;.};..i
50240 66 20 28 6d 65 74 68 6f 64 5f 65 78 69 73 74 73 28 24 66 69 6c 74 65 72 2c 20 27 62 69 6e 64 54 f.(method_exists($filter,.'bindT
50260 6f 27 29 29 20 7b 0a 24 66 69 6c 74 65 72 20 3d 20 24 66 69 6c 74 65 72 2d 3e 62 69 6e 64 54 6f o')).{.$filter.=.$filter->bindTo
50280 28 6e 75 6c 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 0a 2d 3e 69 6e 28 24 73 (null);.}..$this->finder.->in($s
502a0 6f 75 72 63 65 73 29 0a 2d 3e 66 69 6c 74 65 72 28 24 66 69 6c 74 65 72 29 0a 2d 3e 69 67 6e 6f ources).->filter($filter).->igno
502c0 72 65 56 43 53 28 74 72 75 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c reVCS(true).->ignoreDotFiles(fal
502e0 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d se);..parent::__construct($this-
50300 3e 66 69 6e 64 65 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c >finder->getIterator());.}..publ
50320 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 ic.function.accept().{.return.!$
50340 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 63 75 72 72 65 6e this->getInnerIterator()->curren
50360 74 28 29 2d 3e 69 73 44 69 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a t()->isDir();.}.}.<?php.........
50380 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 ...namespace.Composer\Package\Ar
503a0 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 chiver;..use.Composer\Downloader
503c0 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 \DownloadManager;.use.Composer\P
503e0 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d ackage\PackageInterface;.use.Com
50400 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 poser\Package\RootPackage;.use.C
50420 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 63 6c omposer\Util\Filesystem;......cl
50440 61 73 73 20 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 ass.ArchiveManager.{.protected.$
50460 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 downloadManager;..protected.$arc
50480 68 69 76 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 hivers.=.array();.....protected.
504a0 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 6c $overwriteFiles.=.true;.....publ
504c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 44 6f 77 6e 6c 6f 61 64 ic.function.__construct(Download
504e0 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 Manager.$downloadManager).{.$thi
50500 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 s->downloadManager.=.$downloadMa
50520 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 nager;.}.....public.function.add
50540 41 72 63 68 69 76 65 72 28 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 72 63 68 Archiver(ArchiverInterface.$arch
50560 69 76 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 5b 5d 20 3d 20 24 61 72 iver).{.$this->archivers[].=.$ar
50580 63 68 69 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f chiver;.}.........public.functio
505a0 6e 20 73 65 74 4f 76 65 72 77 72 69 74 65 46 69 6c 65 73 28 24 6f 76 65 72 77 72 69 74 65 46 69 n.setOverwriteFiles($overwriteFi
505c0 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 24 les).{.$this->overwriteFiles.=.$
505e0 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d overwriteFiles;..return.$this;.}
50600 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b .........public.function.getPack
50620 61 67 65 46 69 6c 65 6e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 ageFilename(PackageInterface.$pa
50640 63 6b 61 67 65 29 0a 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 28 70 72 65 67 ckage).{.$nameParts.=.array(preg
50660 5f 72 65 70 6c 61 63 65 28 27 23 5b 5e 61 2d 7a 30 2d 39 2d 5f 2e 5d 23 69 27 2c 20 27 2d 27 2c _replace('#[^a-z0-9-_.]#i',.'-',
50680 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 69 66 20 28 70 72 65 .$package->getName()));..if.(pre
506a0 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 g_match('{^[a-f0-9]{40}$}',.$pac
506c0 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 24 6e 61 kage->getDistReference())).{.$na
506e0 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 meParts.=.array_merge($nameParts
50700 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e ,.array($package->getDistReferen
50720 63 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 29 3b ce(),.$package->getDistType()));
50740 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 .}.else.{.$nameParts.=.array_mer
50760 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 ge($nameParts,.array($package->g
50780 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 etPrettyVersion(),.$package->get
507a0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 DistReference()));.}..if.($packa
507c0 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6e 61 6d ge->getSourceReference()).{.$nam
507e0 65 50 61 72 74 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 73 68 61 31 28 24 70 61 63 6b 61 67 65 2d eParts[].=.substr(sha1($package-
50800 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 2c 20 30 2c 20 36 29 3b 0a 7d >getSourceReference()),.0,.6);.}
50820 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2d 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 ..return.implode('-',.array_filt
50840 65 72 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 er($nameParts,.function.($p).{.r
50860 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 70 29 3b 0a 7d 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a eturn.!empty($p);.}));.}........
50880 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 50 61 63 6b ....public.function.archive(Pack
508a0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 ageInterface.$package,.$format,.
508c0 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 29 $targetDir).{.if.(empty($format)
508e0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
50900 63 65 70 74 69 6f 6e 28 27 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69 65 ception('Format.must.be.specifie
50920 64 27 29 3b 0a 7d 0a 0a 0a 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 6e 75 6c 6c d');.}....$usableArchiver.=.null
50940 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 20 61 73 20 24 ;.foreach.($this->archivers.as.$
50960 61 72 63 68 69 76 65 72 29 20 7b 0a 69 66 20 28 24 61 72 63 68 69 76 65 72 2d 3e 73 75 70 70 6f archiver).{.if.($archiver->suppo
50980 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 rts($format,.$package->getSource
509a0 54 79 70 65 28 29 29 29 20 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 24 61 72 Type())).{.$usableArchiver.=.$ar
509c0 63 68 69 76 65 72 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d chiver;.break;.}.}....if.(null.=
509e0 3d 3d 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ==.$usableArchiver).{.throw.new.
50a00 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4e 6f 20 61 72 \RuntimeException(sprintf('No.ar
50a20 63 68 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 25 73 20 66 6f 72 6d 61 chiver.found.to.support.%s.forma
50a40 74 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 t',.$format));.}..$filesystem.=.
50a60 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d new.Filesystem();.$packageName.=
50a80 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 24 70 61 63 6b .$this->getPackageFilename($pack
50aa0 61 67 65 29 3b 0a 0a 0a 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 age);....$filesystem->ensureDire
50ac0 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 61 72 67 65 74 ctoryExists($targetDir);.$target
50ae0 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2e 27 2f 27 2e 24 70 61 63 .=.realpath($targetDir).'/'.$pac
50b00 6b 61 67 65 4e 61 6d 65 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 74 65 kageName.'.'.$format;.$filesyste
50b20 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 m->ensureDirectoryExists(dirname
50b40 28 24 74 61 72 67 65 74 29 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 ($target));..if.(!$this->overwri
50b60 74 65 46 69 6c 65 73 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 teFiles.&&.file_exists($target))
50b80 20 7b 0a 72 65 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 .{.return.$target;.}..if.($packa
50ba0 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 6f ge.instanceof.RootPackage).{.$so
50bc0 75 72 63 65 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 urcePath.=.realpath('.');.}.else
50be0 20 7b 0a 0a 20 24 73 6f 75 72 63 65 50 61 74 68 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f .{...$sourcePath.=.sys_get_temp_
50c00 64 69 72 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 65 72 2f 27 2e 24 70 61 63 dir().'/composer_archiver/'.$pac
50c20 6b 61 67 65 4e 61 6d 65 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 kageName;.$filesystem->ensureDir
50c40 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 0a 20 24 74 ectoryExists($sourcePath);....$t
50c60 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 his->downloadManager->download($
50c80 70 61 63 6b 61 67 65 2c 20 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 7d 0a 0a 0a 20 24 61 72 63 package,.$sourcePath);.}....$arc
50ca0 68 69 76 65 50 61 74 68 20 3d 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 2d 3e 61 72 63 68 hivePath.=.$usableArchiver->arch
50cc0 69 76 65 28 24 73 6f 75 72 63 65 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 ive($sourcePath,.$target,.$forma
50ce0 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 t,.$package->getArchiveExcludes(
50d00 29 29 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 ));....if.(!$package.instanceof.
50d20 52 6f 6f 74 50 61 63 6b 61 67 65 29 20 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f RootPackage).{.$filesystem->remo
50d40 76 65 44 69 72 65 63 74 6f 72 79 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 veDirectory($sourcePath);.}..ret
50d60 75 72 6e 20 24 61 72 63 68 69 76 65 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a urn.$archivePath;.}.}.<?php.....
50d80 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 .......namespace.Composer\Packag
50da0 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 e\Archiver;..use.Symfony\Compone
50dc0 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 45 78 63 6c 75 64 65 nt\Finder;.......class.HgExclude
50de0 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 Filter.extends.BaseExcludeFilter
50e00 0a 7b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f .{.const.HG_IGNORE_REGEX.=.1;.co
50e20 6e 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 72 6f nst.HG_IGNORE_GLOB.=.2;......pro
50e40 74 65 63 74 65 64 20 24 70 61 74 74 65 72 6e 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tected.$patternMode;.......publi
50e60 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 c.function.__construct($sourcePa
50e80 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 th).{.parent::__construct($sourc
50ea0 65 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 ePath);..$this->patternMode.=.se
50ec0 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 lf::HG_IGNORE_REGEX;..if.(file_e
50ee0 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 29 xists($sourcePath.'/.hgignore'))
50f00 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 .{.$this->excludePatterns.=.$thi
50f20 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e s->parseLines(.file($sourcePath.
50f40 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 '/.hgignore'),.array($this,.'par
50f60 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a seHgIgnoreLine').);.}.}.........
50f80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e public.function.parseHgIgnoreLin
50fa0 65 28 24 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 73 79 6e e($line).{.if.(preg_match('#^syn
50fc0 74 61 78 5c 73 2a 3a 5c 73 2a 28 67 6c 6f 62 7c 72 65 67 65 78 70 29 24 23 27 2c 20 24 6c 69 6e tax\s*:\s*(glob|regexp)$#',.$lin
50fe0 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 e,.$matches)).{.if.($matches[1].
51000 3d 3d 3d 20 27 67 6c 6f 62 27 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 ===.'glob').{.$this->patternMode
51020 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 3b 0a 7d 20 65 6c 73 65 20 .=.self::HG_IGNORE_GLOB;.}.else.
51040 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f {.$this->patternMode.=.self::HG_
51060 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a IGNORE_REGEX;.}..return.null;.}.
51080 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 3d 20 73 65 6c 66 3a .if.($this->patternMode.==.self:
510a0 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d :HG_IGNORE_GLOB).{.return.$this-
510c0 3e 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 3b 0a 7d 20 65 6c 73 65 20 >patternFromGlob($line);.}.else.
510e0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 {.return.$this->patternFromRegex
51100 28 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ($line);.}.}.........protected.f
51120 75 6e 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 0a 7b unction.patternFromGlob($line).{
51140 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c .$pattern.=.'#'.substr(Finder\Gl
51160 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 6c 69 6e 65 29 2c 20 32 2c 20 2d 31 29 2e 27 23 27 3b 0a ob::toRegex($line),.2,.-1).'#';.
51180 24 70 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5b 5e 2f 5d 2a 27 2c 20 $pattern.=.str_replace('[^/]*',.
511a0 27 2e 2a 27 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 '.*',.$pattern);..return.array($
511c0 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a pattern,.false,.true);.}........
511e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 .public.function.patternFromRege
51200 78 28 24 6c 69 6e 65 29 0a 7b 0a 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e 70 72 65 67 x($line).{...$pattern.=.'#'.preg
51220 5f 72 65 70 6c 61 63 65 28 27 2f 28 28 3f 3a 5c 5c 5c 5c 5c 5c 5c 5c 29 2a 29 28 5c 5c 5c 5c 3f _replace('/((?:\\\\\\\\)*)(\\\\?
51240 29 23 2f 27 2c 20 27 5c 31 5c 32 5c 32 5c 5c 23 27 2c 20 24 6c 69 6e 65 29 2e 27 23 27 3b 0a 0a )#/',.'\1\2\2\\#',.$line).'#';..
51260 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 return.array($pattern,.false,.tr
51280 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ue);.}.}.<?php............namesp
512a0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ace.Composer\Package;.....class.
512c0 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 41 6c 69 61 73 50 61 RootAliasPackage.extends.AliasPa
512e0 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 ckage.implements.RootPackageInte
51300 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 rface.{.public.function.__constr
51320 75 63 74 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f uct(RootPackageInterface.$aliasO
51340 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 f,.$version,.$prettyVersion).{.p
51360 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 arent::__construct($aliasOf,.$ve
51380 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 rsion,.$prettyVersion);.}.....pu
513a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 blic.function.getAliases().{.ret
513c0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 urn.$this->aliasOf->getAliases()
513e0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d ;.}.....public.function.getMinim
51400 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c umStability().{.return.$this->al
51420 69 61 73 4f 66 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 7d 0a iasOf->getMinimumStability();.}.
51440 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 ....public.function.getStability
51460 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d Flags().{.return.$this->aliasOf-
51480 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c >getStabilityFlags();.}.....publ
514a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 ic.function.getReferences().{.re
514c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 turn.$this->aliasOf->getReferenc
514e0 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 es();.}.....public.function.getP
51500 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c referStable().{.return.$this->al
51520 69 61 73 4f 66 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a iasOf->getPreferStable();.}.....
51540 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 public.function.setRequires(arra
51560 79 20 24 72 65 71 75 69 72 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 y.$require).{.return.$this->alia
51580 73 4f 66 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 0a sOf->setRequires($require);.}...
515a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 ..public.function.setDevRequires
515c0 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 (array.$devRequire).{.return.$th
515e0 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 24 64 65 76 is->aliasOf->setDevRequires($dev
51600 52 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 Require);.}..public.function.__c
51620 6c 6f 6e 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6c 6f 6e 65 28 29 3b 0a 24 74 68 69 lone().{.parent::__clone();.$thi
51640 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f s->aliasOf.=.clone.$this->aliasO
51660 66 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 f;.}.}.<?php............namespac
51680 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Package;..use.Compose
516a0 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b r\Package\Version\VersionParser;
516c0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 .......class.Package.extends.Bas
516e0 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 ePackage.{.protected.$type;.prot
51700 65 63 74 65 64 20 24 74 61 72 67 65 74 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 ected.$targetDir;.protected.$ins
51720 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 tallationSource;.protected.$sour
51740 63 65 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 55 72 6c 3b 0a 70 72 ceType;.protected.$sourceUrl;.pr
51760 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 otected.$sourceReference;.protec
51780 74 65 64 20 24 64 69 73 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 55 72 ted.$distType;.protected.$distUr
517a0 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f l;.protected.$distReference;.pro
517c0 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b 0a 70 72 6f 74 65 63 tected.$distSha1Checksum;.protec
517e0 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 56 ted.$version;.protected.$prettyV
51800 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a ersion;.protected.$releaseDate;.
51820 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 protected.$extra.=.array();.prot
51840 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ected.$binaries.=.array();.prote
51860 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b cted.$dev;.protected.$stability;
51880 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 0a 70 72 .protected.$notificationUrl;..pr
518a0 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f otected.$requires.=.array();.pro
518c0 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f tected.$conflicts.=.array();.pro
518e0 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 tected.$provides.=.array();.prot
51900 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ected.$replaces.=.array();.prote
51920 63 74 65 64 20 24 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f cted.$devRequires.=.array();.pro
51940 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 tected.$suggests.=.array();.prot
51960 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ected.$autoload.=.array();.prote
51980 63 74 65 64 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 cted.$includePaths.=.array();.pr
519a0 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 otected.$archiveExcludes.=.array
519c0 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ();.........public.function.__co
519e0 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 nstruct($name,.$version,.$pretty
51a00 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 Version).{.parent::__construct($
51a20 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f name);..$this->version.=.$versio
51a40 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 n;.$this->prettyVersion.=.$prett
51a60 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 yVersion;..$this->stability.=.Ve
51a80 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 rsionParser::parseStability($ver
51aa0 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 sion);.$this->dev.=.$this->stabi
51ac0 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e lity.===.'dev';.}.....public.fun
51ae0 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 ction.isDev().{.return.$this->de
51b00 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 v;.}.....public.function.setType
51b20 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d ($type).{.$this->type.=.$type;.}
51b40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b .....public.function.getType().{
51b60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 20 3f 3a 20 27 6c 69 62 72 61 72 79 27 .return.$this->type.?:.'library'
51b80 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 ;.}.....public.function.getStabi
51ba0 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 lity().{.return.$this->stability
51bc0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 ;.}.....public.function.setTarge
51be0 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 tDir($targetDir).{.$this->target
51c00 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Dir.=.$targetDir;.}.....public.f
51c20 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c unction.getTargetDir().{.if.(nul
51c40 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 29 20 7b 0a 72 65 74 75 72 6e l.===.$this->targetDir).{.return
51c60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ;.}..return.ltrim(preg_replace('
51c80 7b 20 28 3f 3a 5e 7c 5b 5c 5c 5c 5c 2f 5d 2b 29 20 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f {.(?:^|[\\\\/]+).\.\.?.(?:[\\\\/
51ca0 5d 2b 7c 24 29 20 28 3f 3a 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 29 2a ]+|$).(?:\.\.?.(?:[\\\\/]+|$).)*
51cc0 7d 78 27 2c 20 27 2f 27 2c 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 29 2c 20 27 2f 27 }x',.'/',.$this->targetDir),.'/'
51ce0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 );.}.....public.function.setExtr
51d00 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d a(array.$extra).{.$this->extra.=
51d20 20 24 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .$extra;.}.....public.function.g
51d40 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b etExtra().{.return.$this->extra;
51d60 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 .}.....public.function.setBinari
51d80 65 73 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e es(array.$binaries).{.$this->bin
51da0 61 72 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 aries.=.$binaries;.}.....public.
51dc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.getBinaries().{.return.
51de0 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $this->binaries;.}.....public.fu
51e00 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 nction.setInstallationSource($ty
51e20 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 pe).{.$this->installationSource.
51e40 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 =.$type;.}.....public.function.g
51e60 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 etInstallationSource().{.return.
51e80 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a $this->installationSource;.}....
51ea0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 .public.function.setSourceType($
51ec0 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 74 79 70 type).{.$this->sourceType.=.$typ
51ee0 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 e;.}.....public.function.getSour
51f00 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 ceType().{.return.$this->sourceT
51f20 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f ype;.}.....public.function.setSo
51f40 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c urceUrl($url).{.$this->sourceUrl
51f60 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .=.$url;.}.....public.function.g
51f80 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f etSourceUrl().{.return.$this->so
51fa0 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 urceUrl;.}.....public.function.s
51fc0 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a etSourceReference($reference).{.
51fe0 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 20 3d 20 24 72 65 66 65 72 65 $this->sourceReference.=.$refere
52000 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f nce;.}.....public.function.getSo
52020 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e urceReference().{.return.$this->
52040 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 sourceReference;.}.....public.fu
52060 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 nction.setDistType($type).{.$thi
52080 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s->distType.=.$type;.}.....publi
520a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 c.function.getDistType().{.retur
520c0 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$this->distType;.}.....public.
520e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 function.setDistUrl($url).{.$thi
52100 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->distUrl.=.$url;.}.....public.
52120 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.getDistUrl().{.return.$
52140 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->distUrl;.}.....public.func
52160 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 tion.setDistReference($reference
52180 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 20 3d 20 24 72 65 66 65 ).{.$this->distReference.=.$refe
521a0 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rence;.}.....public.function.get
521c0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e DistReference().{.return.$this->
521e0 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 distReference;.}.....public.func
52200 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 24 73 68 61 31 63 68 tion.setDistSha1Checksum($sha1ch
52220 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 ecksum).{.$this->distSha1Checksu
52240 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 m.=.$sha1checksum;.}.....public.
52260 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b function.getDistSha1Checksum().{
52280 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b .return.$this->distSha1Checksum;
522a0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f .}.....public.function.getVersio
522c0 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a n().{.return.$this->version;.}..
522e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 ...public.function.getPrettyVers
52300 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 ion().{.return.$this->prettyVers
52320 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ion;.}.......public.function.set
52340 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 ReleaseDate(\DateTime.$releaseDa
52360 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 te).{.$this->releaseDate.=.$rele
52380 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 aseDate;.}.....public.function.g
523a0 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etReleaseDate().{.return.$this->
523c0 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 releaseDate;.}.......public.func
523e0 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 tion.setRequires(array.$requires
52400 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b ).{.$this->requires.=.$requires;
52420 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 .}.....public.function.getRequir
52440 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d es().{.return.$this->requires;.}
52460 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 .......public.function.setConfli
52480 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 63 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 cts(array.$conflicts).{.$this->c
524a0 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 onflicts.=.$conflicts;.}.....pub
524c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 lic.function.getConflicts().{.re
524e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 turn.$this->conflicts;.}.......p
52500 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 ublic.function.setProvides(array
52520 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 20 3d 20 .$provides).{.$this->provides.=.
52540 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $provides;.}.....public.function
52560 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 .getProvides().{.return.$this->p
52580 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rovides;.}.......public.function
525a0 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 79 20 24 72 65 70 6c 61 63 65 73 29 0a 7b 0a .setReplaces(array.$replaces).{.
525c0 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d 20 24 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a $this->replaces.=.$replaces;.}..
525e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 ...public.function.getReplaces()
52600 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a .{.return.$this->replaces;.}....
52620 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 ...public.function.setDevRequire
52640 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 s(array.$devRequires).{.$this->d
52660 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a evRequires.=.$devRequires;.}....
52680 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 .public.function.getDevRequires(
526a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d ).{.return.$this->devRequires;.}
526c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 67 67 65 73 .......public.function.setSugges
526e0 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 67 ts(array.$suggests).{.$this->sug
52700 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 gests.=.$suggests;.}.....public.
52720 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.getSuggests().{.return.
52740 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->suggests;.}.......public.
52760 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 20 24 61 75 74 6f function.setAutoload(array.$auto
52780 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 20 3d 20 24 61 75 74 6f 6c load).{.$this->autoload.=.$autol
527a0 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 oad;.}.....public.function.getAu
527c0 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 toload().{.return.$this->autoloa
527e0 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e d;.}.......public.function.setIn
52800 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 0a cludePaths(array.$includePaths).
52820 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 24 69 6e 63 6c 75 64 65 {.$this->includePaths.=.$include
52840 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Paths;.}.....public.function.get
52860 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 IncludePaths().{.return.$this->i
52880 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ncludePaths;.}.......public.func
528a0 74 69 6f 6e 20 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 24 6e 6f 74 69 66 69 63 tion.setNotificationUrl($notific
528c0 61 74 69 6f 6e 55 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 ationUrl).{.$this->notificationU
528e0 72 6c 20 3d 20 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rl.=.$notificationUrl;.}.....pub
52900 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 lic.function.getNotificationUrl(
52920 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 ).{.return.$this->notificationUr
52940 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 l;.}.......public.function.setAr
52960 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 0a 7b chiveExcludes(array.$excludes).{
52980 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 20 3d 20 24 65 78 63 6c 75 .$this->archiveExcludes.=.$exclu
529a0 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 des;.}.....public.function.getAr
529c0 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e chiveExcludes().{.return.$this->
529e0 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a archiveExcludes;.}.}.<?php......
52a00 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
52a20 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 ;..use.Composer\Package\LinkCons
52a40 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f traint\VersionConstraint;.use.Co
52a60 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 mposer\Package\Version\VersionPa
52a80 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 rser;.....class.AliasPackage.ext
52aa0 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6d 70 ends.BasePackage.implements.Comp
52ac0 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 letePackageInterface.{.protected
52ae0 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 56 65 72 73 .$version;.protected.$prettyVers
52b00 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ion;.protected.$dev;.protected.$
52b20 61 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 41 aliasOf;.protected.$rootPackageA
52b40 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 lias.=.false;.protected.$stabili
52b60 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 ty;..protected.$requires;.protec
52b80 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 ted.$conflicts;.protected.$provi
52ba0 64 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 3b 0a 70 72 6f 74 65 63 des;.protected.$replaces;.protec
52bc0 74 65 64 20 24 72 65 63 6f 6d 6d 65 6e 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 ted.$recommends;.protected.$sugg
52be0 65 73 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ests;.........public.function.__
52c00 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 construct(PackageInterface.$alia
52c20 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b sOf,.$version,.$prettyVersion).{
52c40 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2d 3e 67 .parent::__construct($aliasOf->g
52c60 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 etName());..$this->version.=.$ve
52c80 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 rsion;.$this->prettyVersion.=.$p
52ca0 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 24 rettyVersion;.$this->aliasOf.=.$
52cc0 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 aliasOf;.$this->stability.=.Vers
52ce0 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 ionParser::parseStability($versi
52d00 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 on);.$this->dev.=.$this->stabili
52d20 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 ty.===.'dev';....foreach.(array(
52d40 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 20 61 73 20 24 74 'requires',.'devRequires').as.$t
52d60 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 ype).{.$links.=.$aliasOf->{'get'
52d80 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 .ucfirst($type)}();.foreach.($li
52da0 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 nks.as.$index.=>.$link).{...if.(
52dc0 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 'self.version'.===.$link->getPre
52de0 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 69 6e 64 65 78 ttyConstraint()).{.$links[$index
52e00 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c ].=.new.Link($link->getSource(),
52e20 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e .$link->getTarget(),.new.Version
52e40 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c Constraint('=',.$this->version),
52e60 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 .$type,.$prettyVersion);.}.}.$th
52e80 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 is->$type.=.$links;.}....foreach
52ea0 20 28 61 72 72 61 79 28 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c .(array('conflicts',.'provides',
52ec0 20 27 72 65 70 6c 61 63 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 .'replaces').as.$type).{.$links.
52ee0 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 =.$aliasOf->{'get'.ucfirst($type
52f00 29 7d 28 29 3b 0a 24 6e 65 77 4c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 )}();.$newLinks.=.array();.forea
52f20 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 ch.($links.as.$link).{...if.('se
52f40 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 lf.version'.===.$link->getPretty
52f60 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6e 65 77 4c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 Constraint()).{.$newLinks[].=.ne
52f80 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b w.Link($link->getSource(),.$link
52fa0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 ->getTarget(),.new.VersionConstr
52fc0 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 aint('=',.$this->version),.$type
52fe0 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 ,.$prettyVersion);.}.}.$this->$t
53000 79 70 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 6e 6b 73 2c 20 24 6e 65 77 4c 69 ype.=.array_merge($links,.$newLi
53020 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c nks);.}.}..public.function.getAl
53040 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b iasOf().{.return.$this->aliasOf;
53060 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f .}.....public.function.getVersio
53080 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a n().{.return.$this->version;.}..
530a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 ...public.function.getStability(
530c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a ).{.return.$this->stability;.}..
530e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 ...public.function.getPrettyVers
53100 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 ion().{.return.$this->prettyVers
53120 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 ion;.}.....public.function.isDev
53140 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ().{.return.$this->dev;.}.....pu
53160 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 blic.function.getRequires().{.re
53180 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c turn.$this->requires;.}.....publ
531a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 ic.function.getConflicts().{.ret
531c0 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c urn.$this->conflicts;.}.....publ
531e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 75 ic.function.getProvides().{.retu
53200 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->provides;.}.....public
53220 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getReplaces().{.return
53240 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->replaces;.}.....public.f
53260 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 unction.getDevRequires().{.retur
53280 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a n.$this->devRequires;.}.........
532a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 ..public.function.setRootPackage
532c0 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f Alias($value).{.return.$this->ro
532e0 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a otPackageAlias.=.$value;.}......
53300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 public.function.isRootPackageAli
53320 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 as().{.return.$this->rootPackage
53340 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Alias;.}......public.function.ge
53360 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d tType().{.return.$this->aliasOf-
53380 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 >getType();.}.public.function.ge
533a0 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 tTargetDir().{.return.$this->ali
533c0 61 73 4f 66 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 asOf->getTargetDir();.}.public.f
533e0 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 unction.getExtra().{.return.$thi
53400 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 s->aliasOf->getExtra();.}.public
53420 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 .function.setInstallationSource(
53440 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 49 6e 73 74 $type).{.$this->aliasOf->setInst
53460 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 allationSource($type);.}.public.
53480 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 function.getInstallationSource()
534a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 73 .{.return.$this->aliasOf->getIns
534c0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 tallationSource();.}.public.func
534e0 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getSourceType().{.return.$t
53500 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d his->aliasOf->getSourceType();.}
53520 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a .public.function.getSourceUrl().
53540 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 {.return.$this->aliasOf->getSour
53560 63 65 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f ceUrl();.}.public.function.getSo
53580 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e urceReference().{.return.$this->
535a0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d aliasOf->getSourceReference();.}
535c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .public.function.setSourceRefere
535e0 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nce($reference).{.return.$this->
53600 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 aliasOf->setSourceReference($ref
53620 65 72 65 6e 63 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 erence);.}.public.function.getDi
53640 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 stType().{.return.$this->aliasOf
53660 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getDistType();.}.public.functi
53680 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getDistUrl().{.return.$this->
536a0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 aliasOf->getDistUrl();.}.public.
536c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 function.getDistReference().{.re
536e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 turn.$this->aliasOf->getDistRefe
53700 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 rence();.}.public.function.getDi
53720 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d stSha1Checksum().{.return.$this-
53740 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b >aliasOf->getDistSha1Checksum();
53760 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a .}.public.function.getScripts().
53780 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 63 72 69 {.return.$this->aliasOf->getScri
537a0 70 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 pts();.}.public.function.getLice
537c0 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 nse().{.return.$this->aliasOf->g
537e0 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 etLicense();.}.public.function.g
53800 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 etAutoload().{.return.$this->ali
53820 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 asOf->getAutoload();.}.public.fu
53840 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 nction.getIncludePaths().{.retur
53860 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 n.$this->aliasOf->getIncludePath
53880 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 s();.}.public.function.getReposi
538a0 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 tories().{.return.$this->aliasOf
538c0 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 ->getRepositories();.}.public.fu
538e0 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e nction.getReleaseDate().{.return
53900 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 .$this->aliasOf->getReleaseDate(
53920 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 );.}.public.function.getBinaries
53940 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 ().{.return.$this->aliasOf->getB
53960 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 inaries();.}.public.function.get
53980 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 Keywords().{.return.$this->alias
539a0 4f 66 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 Of->getKeywords();.}.public.func
539c0 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getDescription().{.return.$
539e0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b this->aliasOf->getDescription();
53a00 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 .}.public.function.getHomepage()
53a20 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d .{.return.$this->aliasOf->getHom
53a40 65 70 61 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 epage();.}.public.function.getSu
53a60 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 ggests().{.return.$this->aliasOf
53a80 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->getSuggests();.}.public.functi
53aa0 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getAuthors().{.return.$this->
53ac0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 aliasOf->getAuthors();.}.public.
53ae0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.getSupport().{.return.$
53b00 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 this->aliasOf->getSupport();.}.p
53b20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 ublic.function.getNotificationUr
53b40 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 l().{.return.$this->aliasOf->get
53b60 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 NotificationUrl();.}.public.func
53b80 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 75 tion.getArchiveExcludes().{.retu
53ba0 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 rn.$this->aliasOf->getArchiveExc
53bc0 6c 75 64 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 ludes();.}.public.function.__toS
53be0 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f 5f 74 6f 53 74 72 tring().{.return.parent::__toStr
53c00 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 61 6c 69 61 73 ing().'.(alias.of.'.$this->alias
53c20 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a Of->getVersion().')';.}.}.<?php.
53c40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ...........namespace.Composer\Pa
53c60 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e ckage;..use.Composer\Package\Lin
53c80 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 kConstraint\LinkConstraintInterf
53ca0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 ace;.use.Composer\Package\Packag
53cc0 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 6e 6b 0a 7b 0a 70 eInterface;.......class.Link.{.p
53ce0 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 rotected.$source;.protected.$tar
53d00 67 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 6f 74 get;.protected.$constraint;.prot
53d20 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 ected.$description;.protected.$p
53d40 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rettyConstraint;...........publi
53d60 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 2c 20 c.function.__construct($source,.
53d80 24 74 61 72 67 65 74 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 $target,.LinkConstraintInterface
53da0 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f .$constraint.=.null,.$descriptio
53dc0 6e 20 3d 20 27 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 n.=.'relates.to',.$prettyConstra
53de0 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 20 3d 20 73 74 int.=.null).{.$this->source.=.st
53e00 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 rtolower($source);.$this->target
53e20 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 .=.strtolower($target);.$this->c
53e40 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e onstraint.=.$constraint;.$this->
53e60 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 description.=.$description;.$thi
53e80 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 72 65 74 74 79 43 6f 6e s->prettyConstraint.=.$prettyCon
53ea0 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 straint;.}..public.function.getS
53ec0 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 3b 0a ource().{.return.$this->source;.
53ee0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b }..public.function.getTarget().{
53f00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 .return.$this->target;.}..public
53f20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 .function.getConstraint().{.retu
53f40 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 rn.$this->constraint;.}..public.
53f60 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b function.getPrettyConstraint().{
53f80 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 .if.(null.===.$this->prettyConst
53fa0 72 61 69 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 raint).{.throw.new.\UnexpectedVa
53fc0 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 69 6e 6b 20 25 73 20 68 61 lueException(sprintf('Link.%s.ha
53fe0 73 20 62 65 65 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 68 61 64 20 6e 6f 20 s.been.misconfigured.and.had.no.
54000 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 76 65 6e 2e 27 2c 20 24 74 68 69 73 29 prettyConstraint.given.',.$this)
54020 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 );.}..return.$this->prettyConstr
54040 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 aint;.}..public.function.__toStr
54060 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 2e 27 20 27 ing().{.return.$this->source.'.'
54080 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 .$this->description.'.'.$this->t
540a0 61 72 67 65 74 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2e 27 29 27 arget.'.('.$this->constraint.')'
540c0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 ;.}..public.function.getPrettySt
540e0 72 69 6e 67 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 50 61 63 ring(PackageInterface.$sourcePac
54100 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2d 3e 67 kage).{.return.$sourcePackage->g
54120 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 etPrettyString().'.'.$this->desc
54140 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 27 2e 24 74 ription.'.'.$this->target.'.'.$t
54160 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 his->constraint->getPrettyString
54180 28 29 2e 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ().'';.}.}.<?php............name
541a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 space.Composer\Package\LinkConst
541c0 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 raint;.......class.EmptyConstrai
541e0 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 nt.implements.LinkConstraintInte
54200 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b rface.{.protected.$prettyString;
54220 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f ..public.function.matches(LinkCo
54240 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 72 nstraintInterface.$provider).{.r
54260 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 eturn.true;.}..public.function.s
54280 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a etPrettyString($prettyString).{.
542a0 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 $this->prettyString.=.$prettyStr
542c0 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 ing;.}..public.function.getPrett
542e0 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 yString().{.if.($this->prettyStr
54300 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e ing).{.return.$this->prettyStrin
54320 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 g;.}..return.$this->__toString()
54340 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 ;.}..public.function.__toString(
54360 29 0a 7b 0a 72 65 74 75 72 6e 20 27 5b 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ).{.return.'[]';.}.}.<?php......
54380 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
543a0 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 \LinkConstraint;........class.Mu
543c0 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e ltiConstraint.implements.LinkCon
543e0 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f straintInterface.{.protected.$co
54400 6e 73 74 72 61 69 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 nstraints;.protected.$prettyStri
54420 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 0a 0a 0a 0a ng;.protected.$conjunctive;.....
54440 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ...public.function.__construct(a
54460 72 72 61 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 20 rray.$constraints,.$conjunctive.
54480 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 =.true).{.$this->constraints.=.$
544a0 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 constraints;.$this->conjunctive.
544c0 3d 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$conjunctive;.}..public.functi
544e0 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 on.matches(LinkConstraintInterfa
54500 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 ce.$provider).{.if.(false.===.$t
54520 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 his->conjunctive).{.foreach.($th
54540 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 is->constraints.as.$constraint).
54560 7b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 {.if.($constraint->matches($prov
54580 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ider)).{.return.true;.}.}..retur
545a0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 n.false;.}..foreach.($this->cons
545c0 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 traints.as.$constraint).{.if.(!$
545e0 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 constraint->matches($provider)).
54600 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 {.return.false;.}.}..return.true
54620 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 ;.}..public.function.setPrettySt
54640 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 ring($prettyString).{.$this->pre
54660 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 ttyString.=.$prettyString;.}..pu
54680 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a blic.function.getPrettyString().
546a0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 {.if.($this->prettyString).{.ret
546c0 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 urn.$this->prettyString;.}..retu
546e0 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 rn.$this->__toString();.}..publi
54700 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 c.function.__toString().{.$const
54720 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 raints.=.array();.foreach.($this
54740 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a ->constraints.as.$constraint).{.
54760 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f $constraints[].=.$constraint->__
54780 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 toString();.}..return.'['.implod
547a0 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3f 20 27 2c 20 27 20 3a 20 27 20 e($this->conjunctive.?.',.'.:.'.
547c0 7c 20 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 |.',.$constraints).']';.}.}.<?ph
547e0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
54800 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a Package\LinkConstraint;.........
54820 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 class.VersionConstraint.extends.
54840 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 SpecificConstraint.{.private.$op
54860 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a erator;.private.$version;.......
54880 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 .public.function.__construct($op
548a0 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 erator,.$version).{.if.('='.===.
548c0 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d $operator).{.$operator.=.'==';.}
548e0 0a 0a 69 66 20 28 27 3c 3e 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 ..if.('<>'.===.$operator).{.$ope
54900 72 61 74 6f 72 20 3d 20 27 21 3d 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 rator.=.'!=';.}..$this->operator
54920 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 .=.$operator;.$this->version.=.$
54940 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 version;.}..public.function.vers
54960 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 63 ionCompare($a,.$b,.$operator,.$c
54980 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 61 49 73 42 72 ompareBranches.=.false).{.$aIsBr
549a0 61 6e 63 68 20 3d 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 anch.=.'dev-'.===.substr($a,.0,.
549c0 34 29 3b 0a 24 62 49 73 42 72 61 6e 63 68 20 3d 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 4);.$bIsBranch.=.'dev-'.===.subs
549e0 74 72 28 24 62 2c 20 30 2c 20 34 29 3b 0a 69 66 20 28 24 61 49 73 42 72 61 6e 63 68 20 26 26 20 tr($b,.0,.4);.if.($aIsBranch.&&.
54a00 24 62 49 73 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 6f 72 20 3d $bIsBranch).{.return.$operator.=
54a20 3d 20 27 3d 3d 27 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 =.'=='.&&.$a.===.$b;.}....if.(!$
54a40 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 26 26 20 28 24 61 49 73 42 72 61 6e 63 68 20 7c compareBranches.&&.($aIsBranch.|
54a60 7c 20 24 62 49 73 42 72 61 6e 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d |.$bIsBranch)).{.return.false;.}
54a80 0a 0a 72 65 74 75 72 6e 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c ..return.version_compare($a,.$b,
54aa0 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$operator);.}.......public.func
54ac0 74 69 6f 6e 20 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 tion.matchSpecific(VersionConstr
54ae0 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 aint.$provider,.$compareBranches
54b00 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 .=.false).{.$noEqualOp.=.str_rep
54b20 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a lace('=',.'',.$this->operator);.
54b40 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 $providerNoEqualOp.=.str_replace
54b60 28 27 3d 27 2c 20 27 27 2c 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a ('=',.'',.$provider->operator);.
54b80 0a 24 69 73 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 .$isEqualOp.=.'=='.===.$this->op
54ba0 65 72 61 74 6f 72 3b 0a 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d erator;.$isNonEqualOp.=.'!='.===
54bc0 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 .$this->operator;.$isProviderEqu
54be0 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 alOp.=.'=='.===.$provider->opera
54c00 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d tor;.$isProviderNonEqualOp.=.'!=
54c20 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 '.===.$provider->operator;......
54c40 69 66 20 28 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 if.($isNonEqualOp.||.$isProvider
54c60 4e 6f 6e 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 NonEqualOp).{.return.!$isEqualOp
54c80 20 26 26 20 21 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 .&&.!$isProviderEqualOp.||.$this
54ca0 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 ->versionCompare($provider->vers
54cc0 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 2c 20 24 63 6f 6d 70 ion,.$this->version,.'!=',.$comp
54ce0 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e areBranches);.}......if.($this->
54d00 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d operator.!=.'=='.&&.$noEqualOp.=
54d20 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 =.$providerNoEqualOp).{.return.t
54d40 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 rue;.}..if.($this->versionCompar
54d60 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 e($provider->version,.$this->ver
54d80 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 65 42 sion,.$this->operator,.$compareB
54da0 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 ranches)).{.....if.($provider->v
54dc0 65 72 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f ersion.==.$this->version.&&.$pro
54de0 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 vider->operator.==.$providerNoEq
54e00 75 61 6c 4f 70 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 ualOp.&&.$this->operator.!=.$noE
54e20 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 qualOp).{.return.false;.}..retur
54e40 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c n.true;.}..return.false;.}..publ
54e60 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 ic.function.__toString().{.retur
54e80 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 n.$this->operator.'.'.$this->ver
54ea0 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 sion;.}.}.<?php............names
54ec0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 pace.Composer\Package\LinkConstr
54ee0 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 aint;.......abstract.class.Speci
54f00 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e ficConstraint.implements.LinkCon
54f20 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 straintInterface.{.protected.$pr
54f40 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 ettyString;..public.function.mat
54f60 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 ches(LinkConstraintInterface.$pr
54f80 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 ovider).{.if.($provider.instance
54fa0 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 of.MultiConstraint).{...return.$
54fc0 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 provider->matches($this);.}.else
54fe0 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 if.($provider.instanceof.$this).
55000 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 {.return.$this->matchSpecific($p
55020 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 rovider);.}..return.true;.}..pub
55040 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 lic.function.setPrettyString($pr
55060 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e ettyString).{.$this->prettyStrin
55080 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e g.=.$prettyString;.}..public.fun
550a0 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 ction.getPrettyString().{.if.($t
550c0 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 his->prettyString).{.return.$thi
550e0 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->prettyString;.}..return.$this
55100 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 0a 7d 0a 3c 3f 70 68 70 ->__toString();.}........}.<?php
55120 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
55140 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 ackage\LinkConstraint;.......int
55160 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b erface.LinkConstraintInterface.{
55180 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e .public.function.matches(LinkCon
551a0 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 straintInterface.$provider);.pub
551c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 lic.function.setPrettyString($pr
551e0 65 74 74 79 53 74 72 69 6e 67 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ettyString);.public.function.get
55200 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 PrettyString();.public.function.
55220 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a __toString();.}.<?php...........
55240 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 .namespace.Composer;..use.Compos
55260 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
55280 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Util\Filesystem;.use.Symfony\Com
552a0 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 ponent\Finder\Finder;.......clas
552c0 73 20 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 s.Cache.{.private.$io;.private.$
552e0 72 6f 6f 74 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 70 root;.private.$enabled.=.true;.p
55300 72 69 76 61 74 65 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 rivate.$whitelist;.private.$file
55320 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f system;........public.function._
55340 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 _construct(IOInterface.$io,.$cac
55360 68 65 44 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 27 61 2d 7a 30 2d 39 2e 27 2c 20 46 heDir,.$whitelist.=.'a-z0-9.',.F
55380 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ilesystem.$filesystem.=.null).{.
553a0 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 $this->io.=.$io;.$this->root.=.r
553c0 74 72 69 6d 28 24 63 61 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 24 74 trim($cacheDir,.'/\\')...'/';.$t
553e0 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 3d 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 his->whitelist.=.$whitelist;.$th
55400 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 is->filesystem.=.$filesystem.?:.
55420 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 new.Filesystem();..if.(!is_dir($
55440 74 68 69 73 2d 3e 72 6f 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 this->root)).{.if.(!@mkdir($this
55460 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e ->root,.0777,.true)).{.$this->en
55480 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e abled.=.false;.}.}.}..public.fun
554a0 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ction.isEnabled().{.return.$this
554c0 2d 3e 65 6e 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ->enabled;.}..public.function.ge
554e0 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a tRoot().{.return.$this->root;.}.
55500 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 66 69 6c 65 29 0a 7b 0a 24 .public.function.read($file).{.$
55520 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d file.=.preg_replace('{[^'.$this-
55540 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 >whitelist.']}i',.'-',.$file);.i
55560 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 f.($this->enabled.&&.file_exists
55580 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 74 68 ($this->root...$file)).{.if.($th
555a0 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e is->io->isDebug()).{.$this->io->
555c0 77 72 69 74 65 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 write('Reading.'.$this->root...$
555e0 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 file.'.from.cache');.}..return.f
55600 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 ile_get_contents($this->root...$
55620 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 file);.}..return.false;.}..publi
55640 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 c.function.write($file,.$content
55660 73 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 s).{.if.($this->enabled).{.$file
55680 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 .=.preg_replace('{[^'.$this->whi
556a0 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 telist.']}i',.'-',.$file);..if.(
556c0 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 $this->io->isDebug()).{.$this->i
556e0 6f 2d 3e 77 72 69 74 65 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 o->write('Writing.'.$this->root.
55700 2e 20 24 66 69 6c 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 ..$file.'.into.cache');.}..retur
55720 6e 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 n.file_put_contents($this->root.
55740 2e 20 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 ..$file,.$contents);.}..return.f
55760 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 alse;.}.....public.function.copy
55780 46 72 6f 6d 28 24 66 69 6c 65 2c 20 24 73 6f 75 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 From($file,.$source).{.if.($this
557a0 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 ->enabled).{.$file.=.preg_replac
557c0 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 e('{[^'.$this->whitelist.']}i',.
557e0 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e '-',.$file);.$this->filesystem->
55800 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 ensureDirectoryExists(dirname($t
55820 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d his->root...$file));..if.($this-
55840 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 >io->isDebug()).{.$this->io->wri
55860 74 65 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c te('Writing.'.$this->root...$fil
55880 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 6f 70 79 e.'.into.cache');.}..return.copy
558a0 28 24 73 6f 75 72 63 65 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a ($source,.$this->root...$file);.
558c0 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 }..return.false;.}.....public.fu
558e0 6e 63 74 69 6f 6e 20 63 6f 70 79 54 6f 28 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a nction.copyTo($file,.$target).{.
55900 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 $file.=.preg_replace('{[^'.$this
55920 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a ->whitelist.']}i',.'-',.$file);.
55940 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 if.($this->enabled.&&.file_exist
55960 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 74 6f 75 63 68 28 s($this->root...$file)).{.touch(
55980 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 $this->root...$file);..if.($this
559a0 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ->io->isDebug()).{.$this->io->wr
559c0 69 74 65 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 ite('Reading.'.$this->root...$fi
559e0 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 6f 70 le.'.from.cache');.}..return.cop
55a00 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 3b y($this->root...$file,.$target);
55a20 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .}..return.false;.}..public.func
55a40 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 tion.remove($file).{.$file.=.pre
55a60 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 g_replace('{[^'.$this->whitelist
55a80 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e .']}i',.'-',.$file);.if.($this->
55aa0 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f enabled.&&.file_exists($this->ro
55ac0 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 74 68 ot...$file)).{.return.unlink($th
55ae0 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c is->root...$file);.}..return.fal
55b00 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 63 28 24 74 74 6c 2c 20 se;.}..public.function.gc($ttl,.
55b20 24 6d 61 78 53 69 7a 65 29 0a 7b 0a 24 65 78 70 69 72 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 $maxSize).{.$expire.=.new.\DateT
55b40 69 6d 65 28 29 3b 0a 24 65 78 70 69 72 65 2d 3e 6d 6f 64 69 66 79 28 27 2d 27 2e 24 74 74 6c 2e ime();.$expire->modify('-'.$ttl.
55b60 27 20 73 65 63 6f 6e 64 73 27 29 3b 0a 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 '.seconds');..$finder.=.$this->g
55b80 65 74 46 69 6e 64 65 72 28 29 2d 3e 64 61 74 65 28 27 75 6e 74 69 6c 20 27 2e 24 65 78 70 69 72 etFinder()->date('until.'.$expir
55ba0 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 29 3b 0a 66 6f 72 65 61 e->format('Y-m-d.H:i:s'));.forea
55bc0 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 ch.($finder.as.$file).{.unlink($
55be0 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 file->getRealPath());.}..$totalS
55c00 69 7a 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 74 ize.=.$this->filesystem->size($t
55c20 68 69 73 2d 3e 72 6f 6f 74 29 3b 0a 69 66 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 his->root);.if.($totalSize.>.$ma
55c40 78 53 69 7a 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 xSize).{.$iterator.=.$this->getF
55c60 69 6e 64 65 72 28 29 2d 3e 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 2d 3e 67 inder()->sortByAccessedTime()->g
55c80 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 77 68 69 6c 65 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 etIterator();.while.($totalSize.
55ca0 3e 20 24 6d 61 78 53 69 7a 65 20 26 26 20 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 >.$maxSize.&&.$iterator->valid()
55cc0 29 20 7b 0a 24 66 69 6c 65 70 61 74 68 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 63 75 72 72 65 ).{.$filepath.=.$iterator->curre
55ce0 6e 74 28 29 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 24 74 6f 74 61 6c 53 69 7a 65 20 nt()->getRealPath();.$totalSize.
55d00 2d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 66 69 6c 65 -=.$this->filesystem->size($file
55d20 70 61 74 68 29 3b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 70 61 74 68 29 3b 0a 24 69 74 65 72 61 path);.unlink($filepath);.$itera
55d40 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d tor->next();.}.}..return.true;.}
55d60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a ..public.function.sha1($file).{.
55d80 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 $file.=.preg_replace('{[^'.$this
55da0 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a ->whitelist.']}i',.'-',.$file);.
55dc0 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 if.($this->enabled.&&.file_exist
55de0 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e s($this->root...$file)).{.return
55e00 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b .sha1_file($this->root...$file);
55e20 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .}..return.false;.}..public.func
55e40 74 69 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 tion.sha256($file).{.$file.=.pre
55e60 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 g_replace('{[^'.$this->whitelist
55e80 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e .']}i',.'-',.$file);.if.($this->
55ea0 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f enabled.&&.file_exists($this->ro
55ec0 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 68 61 73 68 5f 66 69 6c 65 28 ot...$file)).{.return.hash_file(
55ee0 27 73 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 'sha256',.$this->root...$file);.
55f00 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 }..return.false;.}..protected.fu
55f20 6e 63 74 69 6f 6e 20 67 65 74 46 69 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 46 69 6e 64 nction.getFinder().{.return.Find
55f40 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 69 6e 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 2d 3e 66 er::create()->in($this->root)->f
55f60 69 6c 65 73 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d iles();.}.}.<?php............nam
55f80 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 espace.Composer\DependencyResolv
55fa0 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 er;..use.Composer\Package\Packag
55fc0 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6f 6c 69 63 79 eInterface;.....interface.Policy
55fe0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 Interface.{.public.function.vers
56000 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 ionCompare(PackageInterface.$a,.
56020 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b PackageInterface.$b,.$operator);
56040 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 .public.function.findUpdatePacka
56060 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 ges(Pool.$pool,.array.$installed
56080 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b Map,.PackageInterface.$package);
560a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 .public.function.selectPreferedP
560c0 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 ackages(Pool.$pool,.array.$insta
560e0 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 3c 3f 70 lledMap,.array.$literals);.}.<?p
56100 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
56120 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 \DependencyResolver;.....class.R
56140 75 6c 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 uleSet.implements.\IteratorAggre
56160 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 50 45 5f gate,.\Countable.{...const.TYPE_
56180 50 41 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 20 3d 20 31 3b PACKAGE.=.0;.const.TYPE_JOB.=.1;
561a0 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 .const.TYPE_LEARNED.=.4;..protec
561c0 74 65 64 20 73 74 61 74 69 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e ted.static.$types.=.array(.-1.=>
561e0 20 27 55 4e 4b 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d .'UNKNOWN',.self::TYPE_PACKAGE.=
56200 3e 20 27 50 41 43 4b 41 47 45 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 >.'PACKAGE',.self::TYPE_JOB.=>.'
56220 4a 4f 42 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 JOB',.self::TYPE_LEARNED.=>.'LEA
56240 52 4e 45 44 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f RNED',.);..protected.$rules;.pro
56260 74 65 63 74 65 64 20 24 72 75 6c 65 42 79 49 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 65 78 tected.$ruleById;.protected.$nex
56280 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 79 48 61 73 68 tRuleId;..protected.$rulesByHash
562a0 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 ;..public.function.__construct()
562c0 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 .{.$this->nextRuleId.=.0;..forea
562e0 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 79 70 65 29 20 ch.($this->getTypes().as.$type).
56300 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b {.$this->rules[$type].=.array();
56320 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 72 61 79 28 29 .}..$this->rulesByHash.=.array()
56340 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 52 75 6c 65 20 24 72 ;.}..public.function.add(Rule.$r
56360 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 ule,.$type).{.if.(!isset(self::$
56380 74 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4f 75 74 4f types[$type])).{.throw.new.\OutO
563a0 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c 65 20 74 fBoundsException('Unknown.rule.t
563c0 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 ype:.'...$type);.}..if.(!isset($
563e0 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 this->rules[$type])).{.$this->ru
56400 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e les[$type].=.array();.}..$this->
56420 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 rules[$type][].=.$rule;.$this->r
56440 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 3d 20 24 72 75 uleById[$this->nextRuleId].=.$ru
56460 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a 0a 24 72 75 6c le;.$rule->setType($type);..$rul
56480 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 29 3b 0a 24 74 68 e->setId($this->nextRuleId);.$th
564a0 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 6c 65 is->nextRuleId++;..$hash.=.$rule
564c0 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 ->getHash();.if.(!isset($this->r
564e0 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c ulesByHash[$hash])).{.$this->rul
56500 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 6c 65 29 3b 0a esByHash[$hash].=.array($rule);.
56520 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 }.else.{.$this->rulesByHash[$has
56540 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 h][].=.$rule;.}.}..public.functi
56560 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 74 52 on.count().{.return.$this->nextR
56580 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 42 79 uleId;.}..public.function.ruleBy
565a0 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 64 Id($id).{.return.$this->ruleById
565c0 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c [$id];.}..public.function.getRul
565e0 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 0a 70 es().{.return.$this->rules;.}..p
56600 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 ublic.function.getIterator().{.r
56620 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d eturn.new.RuleSetIterator($this-
56640 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >getRules());.}..public.function
56660 20 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 .getIteratorFor($types).{.if.(!i
56680 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 s_array($types)).{.$types.=.arra
566a0 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d y($types);.}..$allRules.=.$this-
566c0 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a >getRules();.$rules.=.array();..
566e0 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 72 75 6c foreach.($types.as.$type).{.$rul
56700 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a es[$type].=.$allRules[$type];.}.
56720 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c .return.new.RuleSetIterator($rul
56740 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 es);.}..public.function.getItera
56760 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 torWithout($types).{.if.(!is_arr
56780 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 79 ay($types)).{.$types.=.array($ty
567a0 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 pes);.}..$rules.=.$this->getRule
567c0 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 s();..foreach.($types.as.$type).
567e0 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 {.unset($rules[$type]);.}..retur
56800 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a 7d n.new.RuleSetIterator($rules);.}
56820 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 73 28 29 0a 7b 0a 24 ..public.function.getTypes().{.$
56840 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 79 70 types.=.self::$types;.unset($typ
56860 65 73 5b 2d 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 79 70 es[-1]);..return.array_keys($typ
56880 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 es);.}..public.function.contains
568a0 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e Equal($rule).{.if.(isset($this->
568c0 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 29 29 20 rulesByHash[$rule->getHash()])).
568e0 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e {.$potentialDuplicates.=.$this->
56900 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 3b 0a 66 rulesByHash[$rule->getHash()];.f
56920 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 61 73 20 oreach.($potentialDuplicates.as.
56940 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 $potentialDuplicate).{.if.($rule
56960 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 29 20 7b ->equals($potentialDuplicate)).{
56980 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .return.true;.}.}.}..return.fals
569a0 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 e;.}..public.function.__toString
569c0 28 29 0a 7b 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 ().{.$string.=."\n";.foreach.($t
569e0 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b his->rules.as.$type.=>.$rules).{
56a00 0a 24 73 74 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 .$string..=.str_pad(self::$types
56a20 5b 24 74 79 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 [$type],.8,.'.')...":.";.foreach
56a40 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 .($rules.as.$rule).{.$string..=.
56a60 24 72 75 6c 65 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 5c 6e 5c 6e 22 3b $rule."\n";.}.$string..=."\n\n";
56a80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .}..return.$string;.}.}.<?php...
56aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
56ac0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 ndencyResolver;.....class.Solver
56ae0 42 75 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 BugException.extends.\RuntimeExc
56b00 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 eption.{.public.function.__const
56b20 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 ruct($message).{.parent::__const
56b40 72 75 63 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 78 63 65 70 74 69 6f 6e ruct(.$message."\nThis.exception
56b60 20 77 61 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 62 79 20 61 20 62 75 67 .was.most.likely.caused.by.a.bug
56b80 20 69 6e 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 65 20 72 65 70 6f 72 74 .in.Composer.\n".."Please.report
56ba0 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 65 20 65 78 61 63 74 20 .the.command.you.ran,.the.exact.
56bc0 65 72 72 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 79 6f 75 72 20 63 6f 6d error.you.received,.and.your.com
56be0 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d poser.json.on.https://github.com
56c00 2f 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 20 2d 20 74 68 61 6e /composer/composer/issues.-.than
56c20 6b 20 79 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a k.you!\n");.}.}.<?php...........
56c40 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
56c60 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 solver;..use.Composer\Package\Pa
56c80 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ckageInterface;.use.Composer\Pac
56ca0 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c kage\AliasPackage;.use.Composer\
56cc0 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Package\BasePackage;.use.Compose
56ce0 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e r\Package\LinkConstraint\Version
56d00 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 66 61 75 6c 74 50 6f Constraint;......class.DefaultPo
56d20 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a licy.implements.PolicyInterface.
56d40 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 0a 70 75 62 6c 69 63 {.private.$preferStable;..public
56d60 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 72 65 66 65 72 53 74 61 .function.__construct($preferSta
56d80 62 6c 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 ble.=.false).{.$this->preferStab
56da0 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 le.=.$preferStable;.}..public.fu
56dc0 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 nction.versionCompare(PackageInt
56de0 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 erface.$a,.PackageInterface.$b,.
56e00 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 $operator).{.if.($this->preferSt
56e20 61 62 6c 65 20 26 26 20 28 24 73 74 61 62 41 20 3d 20 24 61 2d 3e 67 65 74 53 74 61 62 69 6c 69 able.&&.($stabA.=.$a->getStabili
56e40 74 79 28 29 29 20 21 3d 3d 20 28 24 73 74 61 62 42 20 3d 20 24 62 2d 3e 67 65 74 53 74 61 62 69 ty()).!==.($stabB.=.$b->getStabi
56e60 6c 69 74 79 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 lity())).{.return.BasePackage::$
56e80 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 41 5d 20 3c 20 42 61 73 65 50 61 63 6b 61 67 stabilities[$stabA].<.BasePackag
56ea0 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 42 5d 3b 0a 7d 0a 0a 24 63 6f 6e e::$stabilities[$stabB];.}..$con
56ec0 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 straint.=.new.VersionConstraint(
56ee0 24 6f 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 $operator,.$b->getVersion());.$v
56f00 65 72 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 ersion.=.new.VersionConstraint('
56f20 3d 3d 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 ==',.$a->getVersion());..return.
56f40 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 $constraint->matchSpecific($vers
56f60 69 6f 6e 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 ion,.true);.}..public.function.f
56f80 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 indUpdatePackages(Pool.$pool,.ar
56fa0 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ray.$installedMap,.PackageInterf
56fc0 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 ace.$package).{.$packages.=.arra
56fe0 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 y();..foreach.($pool->whatProvid
57000 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 63 61 6e 64 es($package->getName()).as.$cand
57020 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 21 3d 3d 20 24 70 61 63 idate).{.if.($candidate.!==.$pac
57040 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 kage).{.$packages[].=.$candidate
57060 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c ;.}.}..return.$packages;.}..publ
57080 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 50 6f 6f 6c 20 24 70 6f ic.function.getPriority(Pool.$po
570a0 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b ol,.PackageInterface.$package).{
570c0 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 61 63 6b .return.$pool->getPriority($pack
570e0 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 age->getRepository());.}..public
57100 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 .function.selectPreferedPackages
57120 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 (Pool.$pool,.array.$installedMap
57140 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b ,.array.$literals,.$requiredPack
57160 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d age.=.null).{.$packages.=.$this-
57180 3e 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c >groupLiteralsByNamePreferInstal
571a0 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 led($pool,.$installedMap,.$liter
571c0 61 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c als);..foreach.($packages.as.&$l
571e0 69 74 65 72 61 6c 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 3b 0a 75 73 6f 72 iterals).{.$policy.=.$this;.usor
57200 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 t($literals,.function.($a,.$b).u
57220 73 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 se.($policy,.$pool,.$installedMa
57240 70 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 p,.$requiredPackage).{.return.$p
57260 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e olicy->compareByPriorityPreferIn
57280 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 stalled($pool,.$installedMap,.$p
572a0 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c ool->literalToPackage($a),.$pool
572c0 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 24 72 65 71 75 69 72 65 ->literalToPackage($b),.$require
572e0 64 50 61 63 6b 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 dPackage,.true);.});.}..foreach.
57300 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 6c 69 74 ($packages.as.&$literals).{.$lit
57320 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f erals.=.$this->pruneToBestVersio
57340 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 n($pool,.$literals);..$literals.
57360 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f =.$this->pruneToHighestPriorityO
57380 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c rInstalled($pool,.$installedMap,
573a0 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d .$literals);..$literals.=.$this-
573c0 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 >pruneRemoteAliases($pool,.$lite
573e0 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f rals);.}..$selected.=.call_user_
57400 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 func_array('array_merge',.$packa
57420 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 74 65 64 2c 20 66 75 6e 63 74 69 ges);....usort($selected,.functi
57440 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c on.($a,.$b).use.($policy,.$pool,
57460 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 .$installedMap,.$requiredPackage
57480 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 ).{.return.$policy->compareByPri
574a0 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 orityPreferInstalled($pool,.$ins
574c0 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 talledMap,.$pool->literalToPacka
574e0 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 ge($a),.$pool->literalToPackage(
57500 24 62 29 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 29 3b 0a 0a 72 65 74 $b),.$requiredPackage);.});..ret
57520 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 urn.$selected;.}..protected.func
57540 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e tion.groupLiteralsByNamePreferIn
57560 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 stalled(Pool.$pool,.array.$insta
57580 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 lledMap,.$literals).{.$packages.
575a0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 =.array();.foreach.($literals.as
575c0 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 6f 6f .$literal).{.$packageName.=.$poo
575e0 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 l->literalToPackage($literal)->g
57600 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b etName();..if.(!isset($packages[
57620 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 $packageName])).{.$packages[$pac
57640 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 kageName].=.array();.}..if.(isse
57660 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 t($installedMap[abs($literal)]))
57680 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b .{.array_unshift($packages[$pack
576a0 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 ageName],.$literal);.}.else.{.$p
576c0 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 5b 5d 20 3d 20 24 6c 69 74 65 72 ackages[$packageName][].=.$liter
576e0 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a al;.}.}..return.$packages;.}....
57700 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 .public.function.compareByPriori
57720 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 tyPreferInstalled(Pool.$pool,.ar
57740 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ray.$installedMap,.PackageInterf
57760 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 72 65 ace.$a,.PackageInterface.$b,.$re
57780 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 24 69 67 6e 6f 72 65 52 65 70 quiredPackage.=.null,.$ignoreRep
577a0 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d 3e 67 65 74 52 65 70 6f 73 lace.=.false).{.if.($a->getRepos
577c0 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 itory().===.$b->getRepository())
577e0 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 .{...if.($a->getName().===.$b->g
57800 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d 20 24 61 20 69 6e 73 74 61 etName()).{.$aAliased.=.$a.insta
57820 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 62 41 6c 69 61 73 65 64 20 3d 20 nceof.AliasPackage;.$bAliased.=.
57840 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 69 66 20 28 $b.instanceof.AliasPackage;.if.(
57860 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 $aAliased.&&.!$bAliased).{.retur
57880 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 73 65 64 20 26 26 20 24 62 41 6c n.-1;...}.if.(!$aAliased.&&.$bAl
578a0 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 7d 0a 0a 69 66 20 28 21 24 iased).{.return.1;...}.}..if.(!$
578c0 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 72 65 ignoreReplace).{...if.($this->re
578e0 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a places($a,.$b)).{.return.1;...}.
57900 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 62 2c 20 24 61 29 29 20 7b 0a 72 if.($this->replaces($b,.$a)).{.r
57920 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 72 65 71 75 69 72 65 64 eturn.-1;...}......if.($required
57940 50 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 Package.&&.false.!==.($pos.=.str
57960 70 6f 73 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 27 2f 27 29 29 29 20 7b 0a 24 pos($requiredPackage,.'/'))).{.$
57980 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 72 65 71 75 69 72 65 requiredVendor.=.substr($require
579a0 64 50 61 63 6b 61 67 65 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 0a 24 61 49 73 53 61 6d 65 56 65 6e dPackage,.0,.$pos);..$aIsSameVen
579c0 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 30 2c 20 24 dor.=.substr($a->getName(),.0,.$
579e0 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 3b 0a 24 62 49 73 53 61 pos).===.$requiredVendor;.$bIsSa
57a00 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 2c meVendor.=.substr($b->getName(),
57a20 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 3b 0a 0a .0,.$pos).===.$requiredVendor;..
57a40 69 66 20 28 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 21 3d 3d 20 24 61 49 73 53 61 6d 65 56 if.($bIsSameVendor.!==.$aIsSameV
57a60 65 6e 64 6f 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3f endor).{.return.$aIsSameVendor.?
57a80 20 2d 31 20 3a 20 31 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 49 64 28 .-1.:.1;.}.}.}....if.($a->getId(
57aa0 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d ).===.$b->getId()).{.return.0;.}
57ac0 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3c 20 24 62 2d 3e 67 65 74 49 ..return.($a->getId().<.$b->getI
57ae0 64 28 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 d()).?.-1.:.1;.}..if.(isset($ins
57b00 74 61 6c 6c 65 64 4d 61 70 5b 24 61 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 talledMap[$a->getId()])).{.retur
57b20 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 n.-1;.}..if.(isset($installedMap
57b40 5b 24 62 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 [$b->getId()])).{.return.1;.}..r
57b60 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c eturn.($this->getPriority($pool,
57b80 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c .$a).>.$this->getPriority($pool,
57ba0 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .$b)).?.-1.:.1;.}............pro
57bc0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 73 28 50 61 63 6b 61 67 65 tected.function.replaces(Package
57be0 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 Interface.$source,.PackageInterf
57c00 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 2d ace.$target).{.foreach.($source-
57c20 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 >getReplaces().as.$link).{.if.($
57c40 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 link->getTarget().===.$target->g
57c60 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d etName()....).{.return.true;.}.}
57c80 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..return.false;.}..protected.fun
57ca0 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 50 6f 6f 6c 20 24 70 ction.pruneToBestVersion(Pool.$p
57cc0 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 ool,.$literals).{.$bestLiterals.
57ce0 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b =.array($literals[0]);.$bestPack
57d00 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c age.=.$pool->literalToPackage($l
57d20 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 iterals[0]);.foreach.($literals.
57d40 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 as.$i.=>.$literal).{.if.(0.===.$
57d60 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f i).{.continue;.}..$package.=.$po
57d80 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a ol->literalToPackage($literal);.
57da0 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b .if.($this->versionCompare($pack
57dc0 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 62 65 73 74 age,.$bestPackage,.'>')).{.$best
57de0 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c Package.=.$package;.$bestLiteral
57e00 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 s.=.array($literal);.}.elseif.($
57e20 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 this->versionCompare($package,.$
57e40 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 74 65 72 bestPackage,.'==')).{.$bestLiter
57e60 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 als[].=.$literal;.}.}..return.$b
57e80 65 73 74 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 estLiterals;.}..protected.functi
57ea0 6f 6e 20 73 65 6c 65 63 74 4e 65 77 65 73 74 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 69 on.selectNewestPackages(array.$i
57ec0 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a nstalledMap,.array.$literals).{.
57ee0 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 $maxLiterals.=.array($literals[0
57f00 5d 29 3b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 2d 3e ]);.$maxPackage.=.$literals[0]->
57f20 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 getPackage();.foreach.($literals
57f40 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 .as.$i.=>.$literal).{.if.(0.===.
57f60 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 $i).{.continue;.}..if.($this->ve
57f80 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 rsionCompare($literal->getPackag
57fa0 65 28 29 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 6d 61 78 50 61 e(),.$maxPackage,.'>')).{.$maxPa
57fc0 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a ckage.=.$literal->getPackage();.
57fe0 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a $maxLiterals.=.array($literal);.
58000 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 }.elseif.($this->versionCompare(
58020 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 50 61 63 6b $literal->getPackage(),.$maxPack
58040 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 age,.'==')).{.$maxLiterals[].=.$
58060 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 78 4c 69 74 65 72 61 6c literal;.}.}..return.$maxLiteral
58080 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e s;.}.....protected.function.prun
580a0 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f eToHighestPriorityOrInstalled(Po
580c0 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 ol.$pool,.array.$installedMap,.a
580e0 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 rray.$literals).{.$selected.=.ar
58100 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 ray();..$priority.=.null;..forea
58120 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 ch.($literals.as.$literal).{.$pa
58140 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 ckage.=.$pool->literalToPackage(
58160 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 $literal);..if.(isset($installed
58180 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 73 65 6c 65 Map[$package->getId()])).{.$sele
581a0 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a cted[].=.$literal;.continue;.}..
581c0 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 72 69 6f 72 if.(null.===.$priority).{.$prior
581e0 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 ity.=.$this->getPriority($pool,.
58200 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f $package);.}..if.($this->getPrio
58220 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 20 21 3d 20 24 70 72 69 6f 72 69 rity($pool,.$package).!=.$priori
58240 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c ty).{.break;.}..$selected[].=.$l
58260 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a iteral;.}..return.$selected;.}..
58280 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 52 65 6d .....protected.function.pruneRem
582a0 6f 74 65 41 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 oteAliases(Pool.$pool,.array.$li
582c0 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 terals).{.$hasLocalAlias.=.false
582e0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 ;..foreach.($literals.as.$litera
58300 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f l).{.$package.=.$pool->literalTo
58320 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 Package($literal);..if.($package
58340 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 .instanceof.AliasPackage.&&.$pac
58360 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 68 kage->isRootPackageAlias()).{.$h
58380 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a asLocalAlias.=.true;.break;.}.}.
583a0 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 .if.(!$hasLocalAlias).{.return.$
583c0 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 literals;.}..$selected.=.array()
583e0 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c ;.foreach.($literals.as.$literal
58400 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 ).{.$package.=.$pool->literalToP
58420 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 ackage($literal);..if.($package.
58440 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b instanceof.AliasPackage.&&.$pack
58460 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 73 65 age->isRootPackageAlias()).{.$se
58480 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e lected[].=.$literal;.}.}..return
584a0 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$selected;.}.}.<?php...........
584c0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
584e0 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 63 69 73 69 6f 6e 73 20 69 6d solver;.......class.Decisions.im
58500 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b plements.\Iterator,.\Countable.{
58520 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 20 30 3b 0a 63 6f 6e .const.DECISION_LITERAL.=.0;.con
58540 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 st.DECISION_REASON.=.1;..protect
58560 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 4d 61 70 ed.$pool;.protected.$decisionMap
58580 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 ;.protected.$decisionQueue.=.arr
585a0 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 ay();..public.function.__constru
585c0 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b ct($pool).{.$this->pool.=.$pool;
585e0 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d .$this->decisionMap.=.array();.}
58600 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 ..public.function.decide($litera
58620 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 68 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 44 65 63 l,.$level,.$why).{.$this->addDec
58640 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e ision($literal,.$level);.$this->
58660 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 44 decisionQueue[].=.array(.self::D
58680 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 3e 20 24 6c 69 74 65 72 61 6c 2c 0a 73 65 6c ECISION_LITERAL.=>.$literal,.sel
586a0 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 3e 20 24 77 68 79 2c 0a 29 3b 0a 7d f::DECISION_REASON.=>.$why,.);.}
586c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 ..public.function.satisfy($liter
586e0 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 al).{.$packageId.=.abs($literal)
58700 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 69 73 73 65 ;..return.(.$literal.>.0.&&.isse
58720 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d t($this->decisionMap[$packageId]
58740 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 ).&&.$this->decisionMap[$package
58760 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c 20 30 20 26 26 20 69 73 73 65 74 Id].>.0.||.$literal.<.0.&&.isset
58780 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 ($this->decisionMap[$packageId])
587a0 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 .&&.$this->decisionMap[$packageI
587c0 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e d].<.0.);.}..public.function.con
587e0 66 6c 69 63 74 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 flict($literal).{.$packageId.=.a
58800 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 28 69 73 73 65 74 28 24 bs($literal);..return.(.(isset($
58820 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 this->decisionMap[$packageId]).&
58840 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d &.$this->decisionMap[$packageId]
58860 20 3e 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c 20 30 29 20 7c 7c 0a 28 69 73 73 65 74 28 .>.0.&&.$literal.<.0).||.(isset(
58880 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 $this->decisionMap[$packageId]).
588a0 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 &&.$this->decisionMap[$packageId
588c0 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 0a 29 3b 0a 7d 0a 0a 70 75 62 ].<.0.&&.$literal.>.0).);.}..pub
588e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 lic.function.decided($literalOrP
58900 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d ackageId).{.return.!empty($this-
58920 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 >decisionMap[abs($literalOrPacka
58940 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 64 65 geId)]);.}..public.function.unde
58960 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 cided($literalOrPackageId).{.ret
58980 75 72 6e 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 urn.empty($this->decisionMap[abs
589a0 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c ($literalOrPackageId)]);.}..publ
589c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 24 6c 69 74 65 ic.function.decidedInstall($lite
589e0 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 ralOrPackageId).{.$packageId.=.a
58a00 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 72 65 74 75 72 6e bs($literalOrPackageId);..return
58a20 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 .isset($this->decisionMap[$packa
58a40 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 geId]).&&.$this->decisionMap[$pa
58a60 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ckageId].>.0;.}..public.function
58a80 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 .decisionLevel($literalOrPackage
58aa0 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f Id).{.$packageId.=.abs($literalO
58ac0 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 rPackageId);.if.(isset($this->de
58ae0 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 72 65 74 75 72 6e cisionMap[$packageId])).{.return
58b00 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 .abs($this->decisionMap[$package
58b20 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e Id]);.}..return.0;.}..public.fun
58b40 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 ction.decisionRule($literalOrPac
58b60 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 kageId).{.$packageId.=.abs($lite
58b80 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ralOrPackageId);..foreach.($this
58ba0 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 ->decisionQueue.as.$i.=>.$decisi
58bc0 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 61 62 73 28 24 64 65 on).{.if.($packageId.===.abs($de
58be0 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 29 cision[self::DECISION_LITERAL]))
58c00 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 .{.return.$decision[self::DECISI
58c20 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a ON_REASON];.}.}..return.null;.}.
58c40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 74 28 24 71 75 65 75 65 .public.function.atOffset($queue
58c60 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e Offset).{.return.$this->decision
58c80 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 Queue[$queueOffset];.}..public.f
58ca0 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 unction.validOffset($queueOffset
58cc0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3e 3d 20 30 20 26 26 20 ).{.return.$queueOffset.>=.0.&&.
58ce0 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 $queueOffset.<.count($this->deci
58d00 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c sionQueue);.}..public.function.l
58d20 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 astReason().{.return.$this->deci
58d40 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 sionQueue[count($this->decisionQ
58d60 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e ueue).-.1][self::DECISION_REASON
58d80 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 4c 69 74 65 72 61 ];.}..public.function.lastLitera
58da0 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 l().{.return.$this->decisionQueu
58dc0 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 e[count($this->decisionQueue).-.
58de0 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 7d 0a 0a 70 1][self::DECISION_LITERAL];.}..p
58e00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 77 68 69 6c 65 20 28 ublic.function.reset().{.while.(
58e20 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 $decision.=.array_pop($this->dec
58e40 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 isionQueue)).{.$this->decisionMa
58e60 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c p[abs($decision[self::DECISION_L
58e80 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ITERAL])].=.0;.}.}..public.funct
58ea0 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 66 73 65 74 29 0a 7b 0a 77 68 69 ion.resetToOffset($offset).{.whi
58ec0 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 le.(count($this->decisionQueue).
58ee0 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 >.$offset.+.1).{.$decision.=.arr
58f00 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 24 74 ay_pop($this->decisionQueue);.$t
58f20 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 his->decisionMap[abs($decision[s
58f40 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a elf::DECISION_LITERAL])].=.0;.}.
58f60 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 4c 61 73 74 28 29 0a }..public.function.revertLast().
58f80 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 74 68 69 73 2d 3e {.$this->decisionMap[abs($this->
58fa0 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a 61 72 72 61 79 5f 70 6f 70 28 24 lastLiteral())].=.0;.array_pop($
58fc0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 this->decisionQueue);.}..public.
58fe0 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 function.count().{.return.count(
59000 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $this->decisionQueue);.}..public
59020 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 65 6e 64 28 24 74 68 69 73 2d 3e .function.rewind().{.end($this->
59040 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 decisionQueue);.}..public.functi
59060 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 28 24 74 on.current().{.return.current($t
59080 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 his->decisionQueue);.}..public.f
590a0 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b 65 79 28 24 74 68 69 73 unction.key().{.return.key($this
590c0 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->decisionQueue);.}..public.func
590e0 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 76 28 24 74 68 69 73 2d tion.next().{.return.prev($this-
59100 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >decisionQueue);.}..public.funct
59120 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 63 ion.valid().{.return.false.!==.c
59140 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a urrent($this->decisionQueue);.}.
59160 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d 70 74 79 28 29 0a 7b 0a 72 65 74 .public.function.isEmpty().{.ret
59180 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 urn.count($this->decisionQueue).
591a0 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ===.0;.}..protected.function.add
591c0 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 0a 7b 0a 24 70 61 Decision($literal,.$level).{.$pa
591e0 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 24 70 72 65 76 69 ckageId.=.abs($literal);..$previ
59200 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 ousDecision.=.isset($this->decis
59220 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 3f 20 24 74 68 69 73 2d 3e 64 65 63 ionMap[$packageId]).?.$this->dec
59240 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3a 20 6e 75 6c 6c 3b 0a 69 66 20 isionMap[$packageId].:.null;.if.
59260 28 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 21 3d 20 30 29 20 7b 0a 24 6c 69 74 65 ($previousDecision.!=.0).{.$lite
59280 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c ralString.=.$this->pool->literal
592a0 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 ToString($literal);.$package.=.$
592c0 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 this->pool->literalToPackage($li
592e0 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 teral);.throw.new.SolverBugExcep
59300 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 64 65 63 69 64 65 20 24 6c 69 74 65 72 61 6c tion(."Trying.to.decide.$literal
59320 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2c 20 65 76 65 6e 20 74 68 6f String.on.level.$level,.even.tho
59340 75 67 68 20 24 70 61 63 6b 61 67 65 20 77 61 73 20 70 72 65 76 69 6f 75 73 6c 79 20 64 65 63 69 ugh.$package.was.previously.deci
59360 64 65 64 20 61 73 20 22 2e 28 69 6e 74 29 20 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e ded.as.".(int).$previousDecision
59380 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 24 .".".);.}..if.($literal.>.0).{.$
593a0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 this->decisionMap[$packageId].=.
593c0 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e $level;.}.else.{.$this->decision
593e0 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 2d 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d Map[$packageId].=.-$level;.}.}.}
59400 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
59420 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a oser\DependencyResolver;........
59440 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 0a 7b 0a 70 75 62 6c 69 63 20 24 77 .class.RuleWatchNode.{.public.$w
59460 61 74 63 68 31 3b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 32 3b 0a 0a 70 72 6f 74 65 63 74 65 atch1;.public.$watch2;..protecte
59480 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f d.$rule;.......public.function._
594a0 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 20 _construct($rule).{.$this->rule.
594c0 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 =.$rule;..$literals.=.$rule->get
594e0 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 63 6f 75 Literals();..$this->watch1.=.cou
59500 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d nt($literals).>.0.?.$literals[0]
59520 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 .:.0;.$this->watch2.=.count($lit
59540 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 3b 0a 7d erals).>.1.?.$literals[1].:.0;.}
59560 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 74 63 68 32 ..........public.function.watch2
59580 4f 6e 48 69 67 68 65 73 74 28 44 65 63 69 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e 73 29 0a OnHighest(Decisions.$decisions).
595a0 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 67 65 74 4c 69 {.$literals.=.$this->rule->getLi
595c0 74 65 72 61 6c 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 6c 73 20 3c 20 33 29 20 terals();....if.($literals.<.3).
595e0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 30 3b 0a 0a 66 {.return;.}..$watchLevel.=.0;..f
59600 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b oreach.($literals.as.$literal).{
59620 0a 24 6c 65 76 65 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 .$level.=.$decisions->decisionLe
59640 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 24 77 61 vel($literal);..if.($level.>.$wa
59660 74 63 68 4c 65 76 65 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 tchLevel).{.$this->watch2.=.$lit
59680 65 72 61 6c 3b 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a eral;.$watchLevel.=.$level;.}.}.
596a0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 }.......public.function.getRule(
596c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ).{.return.$this->rule;.}.......
596e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 .public.function.getOtherWatch($
59700 6c 69 74 65 72 61 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 literal).{.if.($this->watch1.==.
59720 24 6c 69 74 65 72 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 $literal).{.return.$this->watch2
59740 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b ;.}.else.{.return.$this->watch1;
59760 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 .}.}........public.function.move
59780 57 61 74 63 68 28 24 66 72 6f 6d 2c 20 24 74 6f 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 Watch($from,.$to).{.if.($this->w
597a0 61 74 63 68 31 20 3d 3d 20 24 66 72 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 atch1.==.$from).{.$this->watch1.
597c0 3d 20 24 74 6f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 =.$to;.}.else.{.$this->watch2.=.
597e0 24 74 6f 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 $to;.}.}.}.<?php............name
59800 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
59820 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 r;.....class.SolverProblemsExcep
59840 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b tion.extends.\RuntimeException.{
59860 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$problems;.protected.
59880 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $installedMap;..public.function.
598a0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 72 6f 62 6c 65 6d 73 2c 20 61 72 72 __construct(array.$problems,.arr
598c0 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c ay.$installedMap).{.$this->probl
598e0 65 6d 73 20 3d 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 ems.=.$problems;.$this->installe
59900 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f dMap.=.$installedMap;..parent::_
59920 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 _construct($this->createMessage(
59940 29 2c 20 32 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 ),.2);.}..protected.function.cre
59960 61 74 65 4d 65 73 73 61 67 65 28 29 0a 7b 0a 24 74 65 78 74 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 ateMessage().{.$text.=."\n";.for
59980 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 61 73 20 24 69 20 3d 3e 20 24 each.($this->problems.as.$i.=>.$
599a0 70 72 6f 62 6c 65 6d 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 50 72 6f 62 6c 65 6d 20 22 problem).{.$text..=."..Problem."
599c0 2e 28 24 69 2b 31 29 2e 24 70 72 6f 62 6c 65 6d 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e .($i+1).$problem->getPrettyStrin
599e0 67 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a g($this->installedMap)."\n";.}..
59a00 69 66 20 28 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 if.(strpos($text,.'could.not.be.
59a20 66 6f 75 6e 64 27 29 20 7c 7c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 6e 6f 20 6d 61 74 found').||.strpos($text,.'no.mat
59a40 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 27 29 29 20 7b 0a 24 74 65 78 74 20 2e ching.package.found')).{.$text..
59a60 3d 20 22 5c 6e 50 6f 74 65 6e 74 69 61 6c 20 63 61 75 73 65 73 3a 5c 6e 20 2d 20 41 20 74 79 70 =."\nPotential.causes:\n.-.A.typ
59a80 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 5c 6e 20 2d 20 54 68 65 20 70 61 o.in.the.package.name\n.-.The.pa
59aa0 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 20 73 74 61 62 ckage.is.not.available.in.a.stab
59ac0 6c 65 2d 65 6e 6f 75 67 68 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 79 le-enough.version.according.to.y
59ae0 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 73 65 74 74 69 6e 67 5c 6e 20 our.minimum-stability.setting\n.
59b00 20 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 67 72 6f 75 70 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d ..see.<https://groups.google.com
59b20 2f 64 2f 74 6f 70 69 63 2f 63 6f 6d 70 6f 73 65 72 2d 64 65 76 2f 5f 67 33 41 53 65 49 46 6c 72 /d/topic/composer-dev/_g3ASeIFlr
59b40 63 2f 64 69 73 63 75 73 73 69 6f 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c c/discussion>.for.more.details.\
59b60 6e 5c 6e 52 65 61 64 20 3c 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f n\nRead.<http://getcomposer.org/
59b80 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 3e doc/articles/troubleshooting.md>
59ba0 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6d 6d 6f 6e 20 70 72 6f 62 6c 65 6d 73 2e 22 3b 0a .for.further.common.problems.";.
59bc0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 }..return.$text;.}..public.funct
59be0 69 6f 6e 20 67 65 74 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.getProblems().{.return.$this
59c00 2d 3e 70 72 6f 62 6c 65 6d 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->problems;.}.}.<?php...........
59c20 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
59c40 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c solver;..use.Composer\Package\Al
59c60 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 iasPackage;.use.Composer\Depende
59c80 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 ncyResolver\Operation;.....class
59ca0 20 54 72 61 6e 73 61 63 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 .Transaction.{.protected.$policy
59cc0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e ;.protected.$pool;.protected.$in
59ce0 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 stalledMap;.protected.$decisions
59d00 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 ;.protected.$transaction;..publi
59d20 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 c.function.__construct($policy,.
59d40 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 $pool,.$installedMap,.$decisions
59d60 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 ).{.$this->policy.=.$policy;.$th
59d80 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c is->pool.=.$pool;.$this->install
59da0 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 edMap.=.$installedMap;.$this->de
59dc0 63 69 73 69 6f 6e 73 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 cisions.=.$decisions;.$this->tra
59de0 6e 73 61 63 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 nsaction.=.array();.}..public.fu
59e00 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c nction.getOperations().{.$instal
59e20 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 lMeansUpdateMap.=.$this->findUpd
59e40 61 74 65 73 28 29 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 ates();..$updateMap.=.array();.$
59e60 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c installMap.=.array();.$uninstall
59e80 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e Map.=.array();..foreach.($this->
59ea0 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a decisions.as.$i.=>.$decision).{.
59ec0 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a $literal.=.$decision[Decisions::
59ee0 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 DECISION_LITERAL];.$reason.=.$de
59f00 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f cision[Decisions::DECISION_REASO
59f20 4e 5d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 N];..$package.=.$this->pool->lit
59f40 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 eralToPackage($literal);....if.(
59f60 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e ($literal.>.0).==.(isset($this->
59f80 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 installedMap[$package->getId()])
59fa0 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e )).{.continue;.}..if.($literal.>
59fc0 20 30 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 .0).{.if.(isset($installMeansUpd
59fe0 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b ateMap[abs($literal)]).&&.!$pack
5a000 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 0a age.instanceof.AliasPackage).{..
5a020 24 73 6f 75 72 63 65 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 $source.=.$installMeansUpdateMap
5a040 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 [abs($literal)];..$updateMap[$pa
5a060 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 ckage->getId()].=.array(.'packag
5a080 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 e'.=>.$package,.'source'.=>.$sou
5a0a0 72 63 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 rce,.'reason'.=>.$reason,.);....
5a0c0 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 unset($installMeansUpdateMap[abs
5a0e0 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 ($literal)]);.$ignoreRemove[$sou
5a100 72 63 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 rce->getId()].=.true;.}.else.{.$
5a120 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 installMap[$package->getId()].=.
5a140 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 array(.'package'.=>.$package,.'r
5a160 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 eason'.=>.$reason,.);.}.}.}..for
5a180 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 each.($this->decisions.as.$i.=>.
5a1a0 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f $decision).{.$literal.=.$decisio
5a1c0 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a n[Decisions::DECISION_LITERAL];.
5a1e0 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 $package.=.$this->pool->literalT
5a200 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 oPackage($literal);..if.($litera
5a220 6c 20 3c 3d 20 30 20 26 26 0a 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 l.<=.0.&&.isset($this->installed
5a240 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 20 26 26 0a 21 69 73 73 65 Map[$package->getId()]).&&.!isse
5a260 74 28 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 t($ignoreRemove[$package->getId(
5a280 29 5d 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 )])).{.$uninstallMap[$package->g
5a2a0 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 etId()].=.array(.'package'.=>.$p
5a2c0 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a ackage,.'reason'.=>.$reason,.);.
5a2e0 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 .}.}..$this->transactionFromMaps
5a300 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 ($installMap,.$updateMap,.$unins
5a320 74 61 6c 6c 4d 61 70 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 tallMap);..return.$this->transac
5a340 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e tion;.}..protected.function.tran
5a360 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 sactionFromMaps($installMap,.$up
5a380 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 65 dateMap,.$uninstallMap).{.$queue
5a3a0 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 6f .=.array_map(function.($operatio
5a3c0 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 n).{.return.$operation['package'
5a3e0 5d 3b 0a 7d 2c 0a 24 74 68 69 73 2d 3e 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 ];.},.$this->findRootPackages($i
5a400 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 69 nstallMap,.$updateMap).);..$visi
5a420 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 ted.=.array();..while.(!empty($q
5a440 75 65 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 ueue)).{.$package.=.array_pop($q
5a460 75 65 75 65 29 3b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ueue);.$packageId.=.$package->ge
5a480 74 49 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 tId();..if.(!isset($visited[$pac
5a4a0 6b 61 67 65 49 64 5d 29 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 kageId])).{.array_push($queue,.$
5a4c0 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 package);..if.($package.instance
5a4e0 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 of.AliasPackage).{.array_push($q
5a500 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d ueue,.$package->getAliasOf());.}
5a520 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 .else.{.foreach.($package->getRe
5a540 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 quires().as.$link).{.$possibleRe
5a560 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 quires.=.$this->pool->whatProvid
5a580 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 es($link->getTarget(),.$link->ge
5a5a0 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 tConstraint());..foreach.($possi
5a5c0 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 79 bleRequires.as.$require).{.array
5a5e0 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a _push($queue,.$require);.}.}.}..
5a600 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 $visited[$package->getId()].=.tr
5a620 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d ue;.}.else.{.if.(isset($installM
5a640 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c ap[$packageId])).{.$this->instal
5a660 6c 28 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b l(.$installMap[$packageId]['pack
5a680 61 67 65 27 5d 2c 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 age'],.$installMap[$packageId]['
5a6a0 72 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 reason'].);.unset($installMap[$p
5a6c0 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d ackageId]);.}.if.(isset($updateM
5a6e0 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 ap[$packageId])).{.$this->update
5a700 28 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 (.$updateMap[$packageId]['source
5a720 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b '],.$updateMap[$packageId]['pack
5a740 61 67 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 age'],.$updateMap[$packageId]['r
5a760 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 eason'].);.unset($updateMap[$pac
5a780 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 kageId]);.}.}.}..foreach.($unins
5a7a0 74 61 6c 6c 4d 61 70 20 61 73 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e tallMap.as.$uninstall).{.$this->
5a7c0 75 6e 69 6e 73 74 61 6c 6c 28 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c uninstall($uninstall['package'],
5a7e0 20 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f .$uninstall['reason']);.}.}..pro
5a800 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 tected.function.findRootPackages
5a820 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 ($installMap,.$updateMap).{.$pac
5a840 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 kages.=.$installMap.+.$updateMap
5a860 3b 0a 24 72 6f 6f 74 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 ;.$roots.=.$packages;..foreach.(
5a880 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 $packages.as.$packageId.=>.$oper
5a8a0 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 ation).{.$package.=.$operation['
5a8c0 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 package'];..if.(!isset($roots[$p
5a8e0 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 ackageId])).{.continue;.}..forea
5a900 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 ch.($package->getRequires().as.$
5a920 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 link).{.$possibleRequires.=.$thi
5a940 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 s->pool->whatProvides($link->get
5a960 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 Target(),.$link->getConstraint()
5a980 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 );..foreach.($possibleRequires.a
5a9a0 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 s.$require).{.unset($roots[$requ
5a9c0 69 72 65 2d 3e 67 65 74 49 64 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 ire->getId()]);.}.}.}..return.$r
5a9e0 6f 6f 74 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 oots;.}..protected.function.find
5aa00 55 70 64 61 74 65 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d Updates().{.$installMeansUpdateM
5aa20 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 ap.=.array();..foreach.($this->d
5aa40 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 ecisions.as.$i.=>.$decision).{.$
5aa60 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 literal.=.$decision[Decisions::D
5aa80 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 ECISION_LITERAL];.$package.=.$th
5aaa0 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 is->pool->literalToPackage($lite
5aac0 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 ral);..if.($package.instanceof.A
5aae0 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 liasPackage).{.continue;.}....if
5ab00 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e .($literal.<=.0.&&.isset($this->
5ab20 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 installedMap[$package->getId()])
5ab40 29 20 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 ).{.$updates.=.$this->policy->fi
5ab60 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 ndUpdatePackages($this->pool,.$t
5ab80 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 his->installedMap,.$package);..$
5aba0 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 literals.=.array($package->getId
5abc0 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 ());..foreach.($updates.as.$upda
5abe0 74 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 75 70 64 61 74 65 2d 3e 67 65 74 te).{.$literals[].=.$update->get
5ac00 49 64 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 Id();.}..foreach.($literals.as.$
5ac20 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 75 70 64 61 74 65 4c 69 74 65 updateLiteral).{.if.($updateLite
5ac40 72 61 6c 20 21 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e ral.!==.$literal).{.$installMean
5ac60 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 5d 20 sUpdateMap[abs($updateLiteral)].
5ac80 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 =.$package;.}.}.}.}..return.$ins
5aca0 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 tallMeansUpdateMap;.}..protected
5acc0 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 .function.install($package,.$rea
5ace0 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 son).{.if.($package.instanceof.A
5ad00 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 liasPackage).{.return.$this->mar
5ad20 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f kAliasInstalled($package,.$reaso
5ad40 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 n);.}..$this->transaction[].=.ne
5ad60 77 20 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 w.Operation\InstallOperation($pa
5ad80 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ckage,.$reason);.}..protected.fu
5ada0 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f nction.update($from,.$to,.$reaso
5adc0 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 n).{.$this->transaction[].=.new.
5ade0 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 66 72 6f 6d 2c Operation\UpdateOperation($from,
5ae00 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .$to,.$reason);.}..protected.fun
5ae20 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f ction.uninstall($package,.$reaso
5ae40 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 n).{.if.($package.instanceof.Ali
5ae60 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 asPackage).{.return.$this->markA
5ae80 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f liasUninstalled($package,.$reaso
5aea0 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 n);.}..$this->transaction[].=.ne
5aec0 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 w.Operation\UninstallOperation($
5aee0 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 package,.$reason);.}..protected.
5af00 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 function.markAliasInstalled($pac
5af20 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 kage,.$reason).{.$this->transact
5af40 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 ion[].=.new.Operation\MarkAliasI
5af60 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 nstalledOperation($package,.$rea
5af80 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b son);.}..protected.function.mark
5afa0 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 AliasUninstalled($package,.$reas
5afc0 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 on).{.$this->transaction[].=.new
5afe0 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f .Operation\MarkAliasUninstalledO
5b000 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 7d peration($package,.$reason);.}.}
5b020 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
5b040 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f oser\DependencyResolver\Operatio
5b060 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 n;..use.Composer\Package\Package
5b080 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c Interface;.......class.Uninstall
5b0a0 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f Operation.extends.SolverOperatio
5b0c0 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 n.{.protected.$package;........p
5b0e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 ublic.function.__construct(Packa
5b100 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 geInterface.$package,.$reason.=.
5b120 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 null).{.parent::__construct($rea
5b140 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 son);..$this->package.=.$package
5b160 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 ;.}.......public.function.getPac
5b180 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a kage().{.return.$this->package;.
5b1a0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 }.......public.function.getJobTy
5b1c0 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a pe().{.return.'uninstall';.}....
5b1e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a .public.function.__toString().{.
5b200 72 65 74 75 72 6e 20 27 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 return.'Uninstalling.'.$this->pa
5b220 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 ckage->getPrettyName().'.('.$thi
5b240 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 s->formatVersion($this->package)
5b260 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .')';.}.}.<?php............names
5b280 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 pace.Composer\DependencyResolver
5b2a0 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 \Operation;..use.Composer\Packag
5b2c0 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 e\PackageInterface;.......class.
5b2e0 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 UpdateOperation.extends.SolverOp
5b300 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b eration.{.protected.$initialPack
5b320 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a age;.protected.$targetPackage;..
5b340 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
5b360 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 ct(PackageInterface.$initial,.Pa
5b380 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 6f 6e 20 ckageInterface.$target,.$reason.
5b3a0 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 =.null).{.parent::__construct($r
5b3c0 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d eason);..$this->initialPackage.=
5b3e0 20 24 69 6e 69 74 69 61 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 .$initial;.$this->targetPackage.
5b400 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$target;.}.......public.functi
5b420 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 on.getInitialPackage().{.return.
5b440 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 $this->initialPackage;.}.......p
5b460 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 ublic.function.getTargetPackage(
5b480 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b ).{.return.$this->targetPackage;
5b4a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 .}.......public.function.getJobT
5b4c0 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 ype().{.return.'update';.}.....p
5b4e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 ublic.function.__toString().{.re
5b500 74 75 72 6e 20 27 55 70 64 61 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 turn.'Updating.'.$this->initialP
5b520 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 ackage->getPrettyName().'.('.$th
5b540 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c is->formatVersion($this->initial
5b560 50 61 63 6b 61 67 65 29 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 Package).').to.'..$this->targetP
5b580 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 ackage->getPrettyName()..'.('.$t
5b5a0 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 his->formatVersion($this->target
5b5c0 50 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a Package).')';.}.}.<?php.........
5b5e0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 ...namespace.Composer\Dependency
5b600 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Resolver\Operation;..use.Compose
5b620 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c r\Package\AliasPackage;.......cl
5b640 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 ass.MarkAliasInstalledOperation.
5b660 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 extends.SolverOperation.{.protec
5b680 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ted.$package;........public.func
5b6a0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 tion.__construct(AliasPackage.$p
5b6c0 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 ackage,.$reason.=.null).{.parent
5b6e0 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e ::__construct($reason);..$this->
5b700 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c package.=.$package;.}.......publ
5b720 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 ic.function.getPackage().{.retur
5b740 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this->package;.}.......public
5b760 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getJobType().{.return.
5b780 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 'markAliasInstalled';.}.....publ
5b7a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 ic.function.__toString().{.retur
5b7c0 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 n.'Marking.'.$this->package->get
5b7e0 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 PrettyName().'.('.$this->formatV
5b800 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 ersion($this->package).').as.ins
5b820 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 talled,.alias.of.'.$this->packag
5b840 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 e->getAliasOf()->getPrettyName()
5b860 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 .'.('.$this->formatVersion($this
5b880 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a ->package->getAliasOf()).')';.}.
5b8a0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
5b8c0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
5b8e0 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 on;..use.Composer\Package\Packag
5b900 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f eInterface;.......class.InstallO
5b920 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e peration.extends.SolverOperation
5b940 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .{.protected.$package;........pu
5b960 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 blic.function.__construct(Packag
5b980 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e eInterface.$package,.$reason.=.n
5b9a0 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 ull).{.parent::__construct($reas
5b9c0 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b on);..$this->package.=.$package;
5b9e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b .}.......public.function.getPack
5ba00 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d age().{.return.$this->package;.}
5ba20 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 .......public.function.getJobTyp
5ba40 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 e().{.return.'install';.}.....pu
5ba60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 blic.function.__toString().{.ret
5ba80 75 72 6e 20 27 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 urn.'Installing.'.$this->package
5baa0 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f ->getPrettyName().'.('.$this->fo
5bac0 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b rmatVersion($this->package).')';
5bae0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
5bb00 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 Composer\DependencyResolver\Oper
5bb20 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 ation;..use.Composer\Package\Ver
5bb40 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 sion\VersionParser;.use.Composer
5bb60 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a \Package\PackageInterface;......
5bb80 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 .abstract.class.SolverOperation.
5bba0 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a implements.OperationInterface.{.
5bbc0 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 protected.$reason;.......public.
5bbe0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e function.__construct($reason.=.n
5bc00 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a ull).{.$this->reason.=.$reason;.
5bc20 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f }.......public.function.getReaso
5bc40 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 n().{.return.$this->reason;.}..p
5bc60 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 rotected.function.formatVersion(
5bc80 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 PackageInterface.$package).{.ret
5bca0 75 72 6e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e urn.VersionParser::formatVersion
5bcc0 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($package);.}.}.<?php...........
5bce0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
5bd00 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c solver\Operation;..use.Composer\
5bd20 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 Package\AliasPackage;.......clas
5bd40 73 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 s.MarkAliasUninstalledOperation.
5bd60 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 extends.SolverOperation.{.protec
5bd80 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ted.$package;........public.func
5bda0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 tion.__construct(AliasPackage.$p
5bdc0 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 ackage,.$reason.=.null).{.parent
5bde0 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e ::__construct($reason);..$this->
5be00 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c package.=.$package;.}.......publ
5be20 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 ic.function.getPackage().{.retur
5be40 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this->package;.}.......public
5be60 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getJobType().{.return.
5be80 27 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 'markAliasUninstalled';.}.....pu
5bea0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 blic.function.__toString().{.ret
5bec0 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 urn.'Marking.'.$this->package->g
5bee0 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 etPrettyName().'.('.$this->forma
5bf00 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 75 tVersion($this->package).').as.u
5bf20 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 ninstalled,.alias.of.'.$this->pa
5bf40 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 ckage->getAliasOf()->getPrettyNa
5bf60 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 me().'.('.$this->formatVersion($
5bf80 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 this->package->getAliasOf()).')'
5bfa0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
5bfc0 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 .Composer\DependencyResolver\Ope
5bfe0 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f ration;.......interface.Operatio
5c000 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f nInterface.{......public.functio
5c020 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e n.getJobType();.......public.fun
5c040 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ction.getReason();.......public.
5c060 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a function.__toString();.}.<?php..
5c080 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
5c0a0 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 endencyResolver;..use.Composer\P
5c0c0 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ackage\BasePackage;.use.Composer
5c0e0 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f \Package\AliasPackage;.use.Compo
5c100 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 ser\Package\Version\VersionParse
5c120 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 r;.use.Composer\Package\Link;.us
5c140 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e e.Composer\Package\LinkConstrain
5c160 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 t\LinkConstraintInterface;.use.C
5c180 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 omposer\Package\LinkConstraint\V
5c1a0 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ersionConstraint;.use.Composer\R
5c1c0 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 epository\RepositoryInterface;.u
5c1e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 se.Composer\Repository\Composite
5c200 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 Repository;.use.Composer\Reposit
5c220 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 ory\ComposerRepository;.use.Comp
5c240 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 oser\Repository\InstalledReposit
5c260 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 oryInterface;.use.Composer\Repos
5c280 69 74 6f 72 79 5c 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 itory\StreamableRepositoryInterf
5c2a0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 ace;.use.Composer\Repository\Pla
5c2c0 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f tformRepository;........class.Po
5c2e0 6f 6c 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 ol.{.const.MATCH_NAME.=.-1;.cons
5c300 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 t.MATCH_NONE.=.0;.const.MATCH.=.
5c320 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 1;.const.MATCH_PROVIDE.=.2;.cons
5c340 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d 20 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 t.MATCH_REPLACE.=.3;..protected.
5c360 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 $repositories.=.array();.protect
5c380 65 64 20 24 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f ed.$providerRepos.=.array();.pro
5c3a0 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 tected.$packages.=.array();.prot
5c3c0 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a ected.$packageByName.=.array();.
5c3e0 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 protected.$acceptableStabilities
5c400 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f ;.protected.$stabilityFlags;.pro
5c420 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 tected.$versionParser;.protected
5c440 20 24 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 .$providerCache.=.array();.prote
5c460 63 74 65 64 20 24 69 64 20 3d 20 31 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f cted.$id.=.1;..public.function._
5c480 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 _construct($minimumStability.=.'
5c4a0 73 74 61 62 6c 65 27 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d stable',.array.$stabilityFlags.=
5c4c0 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 .array()).{.$stabilities.=.BaseP
5c4e0 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 ackage::$stabilities;.$this->ver
5c500 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a sionParser.=.new.VersionParser;.
5c520 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 $this->acceptableStabilities.=.a
5c540 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 rray();.foreach.(BasePackage::$s
5c560 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c tabilities.as.$stability.=>.$val
5c580 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a ue).{.if.($value.<=.BasePackage:
5c5a0 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d :$stabilities[$minimumStability]
5c5c0 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 ).{.$this->acceptableStabilities
5c5e0 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 [$stability].=.$value;.}.}.$this
5c600 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 ->stabilityFlags.=.$stabilityFla
5c620 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 gs;.}........public.function.add
5c640 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 Repository(RepositoryInterface.$
5c660 72 65 70 6f 2c 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a repo,.$rootAliases.=.array()).{.
5c680 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 if.($repo.instanceof.CompositeRe
5c6a0 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 2d 3e 67 65 74 52 pository).{.$repos.=.$repo->getR
5c6c0 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6f 73 20 3d epositories();.}.else.{.$repos.=
5c6e0 20 61 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f .array($repo);.}..foreach.($repo
5c700 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 s.as.$repo).{.$this->repositorie
5c720 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 0a 24 65 78 65 6d 70 74 20 3d 20 24 72 65 70 6f 20 69 6e s[].=.$repo;..$exempt.=.$repo.in
5c740 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 7c 7c 20 24 stanceof.PlatformRepository.||.$
5c760 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 repo.instanceof.InstalledReposit
5c780 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 oryInterface;..if.($repo.instanc
5c7a0 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d eof.ComposerRepository.&&.$repo-
5c7c0 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 >hasProviders()).{.$this->provid
5c7e0 65 72 52 65 70 6f 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 24 72 65 70 6f 2d 3e 73 65 74 52 6f 6f erRepos[].=.$repo;.$repo->setRoo
5c800 74 41 6c 69 61 73 65 73 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 3b 0a 24 72 65 70 6f 2d 3e 72 tAliases($rootAliases);.$repo->r
5c820 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 70 esetPackageIds();.}.elseif.($rep
5c840 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 o.instanceof.StreamableRepositor
5c860 79 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 yInterface).{.foreach.($repo->ge
5c880 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 tMinimalPackages().as.$package).
5c8a0 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 76 65 72 {.$name.=.$package['name'];.$ver
5c8c0 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 73 74 61 sion.=.$package['version'];.$sta
5c8e0 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 bility.=.VersionParser::parseSta
5c900 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 bility($version);....$names.=.ar
5c920 72 61 79 28 0a 24 6e 61 6d 65 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 ray(.$name.=>.true,.);.if.(isset
5c940 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 ($package['provide'])).{.foreach
5c960 20 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 .($package['provide'].as.$target
5c980 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 .=>.$constraint).{.$names[$targe
5c9a0 74 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 t].=.true;.}.}.if.(isset($packag
5c9c0 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 e['replace'])).{.foreach.($packa
5c9e0 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e ge['replace'].as.$target.=>.$con
5ca00 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 straint).{.$names[$target].=.tru
5ca20 65 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 e;.}.}.$names.=.array_keys($name
5ca40 73 29 3b 0a 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 50 61 63 s);..if.($exempt.||.$this->isPac
5ca60 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 73 2c 20 24 73 74 61 62 69 6c 69 74 kageAcceptable($names,.$stabilit
5ca80 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 y)).{.$package['id'].=.$this->id
5caa0 2b 2b 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 ++;.$this->packages[].=.$package
5cac0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 ;..foreach.($names.as.$provided)
5cae0 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 .{.$this->packageByName[$provide
5cb00 64 5d 5b 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b d][$package['id']].=.$this->pack
5cb20 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 ages[$this->id.-.2];.}....unset(
5cb40 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 $rootAliasData);.if.(isset($root
5cb60 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 72 6f Aliases[$name][$version])).{.$ro
5cb80 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 otAliasData.=.$rootAliases[$name
5cba0 5d 5b 24 76 65 72 73 69 6f 6e 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 70 61 ][$version];.}.elseif.(isset($pa
5cbc0 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 26 26 20 69 73 ckage['alias_normalized']).&&.is
5cbe0 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 set($rootAliases[$name][$package
5cc00 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 ['alias_normalized']])).{.$rootA
5cc20 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 liasData.=.$rootAliases[$name][$
5cc40 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 5d 3b 0a 7d 0a package['alias_normalized']];.}.
5cc60 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 .if.(isset($rootAliasData)).{.$a
5cc80 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 72 lias.=.$package;.unset($alias['r
5cca0 61 77 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 72 6f 6f 74 aw']);.$alias['version'].=.$root
5ccc0 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 AliasData['alias_normalized'];.$
5cce0 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b alias['alias'].=.$rootAliasData[
5cd00 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 24 'alias'];.$alias['alias_of'].=.$
5cd20 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 74 package['id'];.$alias['id'].=.$t
5cd40 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 61 6c 69 61 73 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 27 5d 20 his->id++;.$alias['root_alias'].
5cd60 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 =.true;.$this->packages[].=.$ali
5cd80 61 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 as;..foreach.($names.as.$provide
5cda0 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 d).{.$this->packageByName[$provi
5cdc0 64 65 64 5d 5b 24 61 6c 69 61 73 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b ded][$alias['id']].=.$this->pack
5cde0 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 ages[$this->id.-.2];.}.}....if.(
5ce00 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 61 6c 69 isset($package['alias'])).{.$ali
5ce20 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 72 61 77 as.=.$package;.unset($alias['raw
5ce40 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 ']);.$alias['version'].=.$packag
5ce60 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 e['alias_normalized'];.$alias['a
5ce80 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 lias'].=.$package['alias'];.$ali
5cea0 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b as['alias_of'].=.$package['id'];
5cec0 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 74 68 .$alias['id'].=.$this->id++;.$th
5cee0 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 63 is->packages[].=.$alias;..foreac
5cf00 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d h.($names.as.$provided).{.$this-
5cf20 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 24 61 6c 69 61 73 >packageByName[$provided][$alias
5cf40 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d ['id']].=.$this->packages[$this-
5cf60 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 >id.-.2];.}.}.}.}.}.else.{.forea
5cf80 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 ch.($repo->getPackages().as.$pac
5cfa0 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 kage).{.$names.=.$package->getNa
5cfc0 6d 65 73 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 mes();.$stability.=.$package->ge
5cfe0 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 tStability();.if.($exempt.||.$th
5d000 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 73 2c 20 is->isPackageAcceptable($names,.
5d020 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 $stability)).{.$package->setId($
5d040 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d this->id++);.$this->packages[].=
5d060 20 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 .$package;..foreach.($names.as.$
5d080 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 provided).{.$this->packageByName
5d0a0 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 24 [$provided][].=.$package;.}....$
5d0c0 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 name.=.$package->getName();.if.(
5d0e0 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 isset($rootAliases[$name][$packa
5d100 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 ge->getVersion()])).{.$alias.=.$
5d120 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 rootAliases[$name][$package->get
5d140 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 Version()];.if.($package.instanc
5d160 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 eof.AliasPackage).{.$package.=.$
5d180 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 50 package->getAliasOf();.}.$aliasP
5d1a0 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 ackage.=.new.AliasPackage($packa
5d1c0 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 ge,.$alias['alias_normalized'],.
5d1e0 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d $alias['alias']);.$aliasPackage-
5d200 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 61 6c 69 >setRootPackageAlias(true);.$ali
5d220 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 0a asPackage->setId($this->id++);..
5d240 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 $package->getRepository()->addPa
5d260 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 ckage($aliasPackage);.$this->pac
5d280 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 kages[].=.$aliasPackage;..foreac
5d2a0 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 73 20 h.($aliasPackage->getNames().as.
5d2c0 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e $name).{.$this->packageByName[$n
5d2e0 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a ame][].=.$aliasPackage;.}.}.}.}.
5d300 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 }.}.}..public.function.getPriori
5d320 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a ty(RepositoryInterface.$repo).{.
5d340 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 65 70 6f 2c 20 $priority.=.array_search($repo,.
5d360 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 $this->repositories,.true);..if.
5d380 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 (false.===.$priority).{.throw.ne
5d3a0 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 64 w.\RuntimeException("Could.not.d
5d3c0 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 79 2e 20 54 68 etermine.repository.priority..Th
5d3e0 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 20 e.repository.was.not.registered.
5d400 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d 24 70 72 69 6f in.the.pool.");.}..return.-$prio
5d420 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 rity;.}........public.function.p
5d440 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ackageById($id).{.return.$this->
5d460 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 74 68 69 73 2d 3e 70 61 63 ensurePackageIsLoaded($this->pac
5d480 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c kages[$id.-.1]);.}..........publ
5d4a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 ic.function.whatProvides($name,.
5d4c0 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 LinkConstraintInterface.$constra
5d4e0 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 int.=.null).{.if.(isset($this->p
5d500 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f roviderCache[$name][(string).$co
5d520 6e 73 74 72 61 69 6e 74 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 nstraint])).{.return.$this->prov
5d540 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 iderCache[$name][(string).$const
5d560 72 61 69 6e 74 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 raint];.}..return.$this->provide
5d580 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 rCache[$name][(string).$constrai
5d5a0 6e 74 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 nt].=.$this->computeWhatProvides
5d5c0 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 ($name,.$constraint);.}.....priv
5d5e0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 ate.function.computeWhatProvides
5d600 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 24 63 61 6e 64 69 64 61 74 ($name,.$constraint).{.$candidat
5d620 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 es.=.array();..foreach.($this->p
5d640 72 6f 76 69 64 65 72 52 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 roviderRepos.as.$repo).{.foreach
5d660 20 28 24 72 65 70 6f 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 74 68 69 73 2c 20 24 6e 61 .($repo->whatProvides($this,.$na
5d680 6d 65 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 me).as.$candidate).{.$candidates
5d6a0 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d [].=.$candidate;.if.($candidate-
5d6c0 3e 67 65 74 49 64 28 29 20 3c 20 31 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 2d 3e 73 65 74 49 >getId().<.1).{.$candidate->setI
5d6e0 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b d($this->id++);.$this->packages[
5d700 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d $this->id.-.2].=.$candidate;.}.}
5d720 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 .}..if.(isset($this->packageByNa
5d740 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 me[$name])).{.$candidates.=.arra
5d760 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b y_merge($candidates,.$this->pack
5d780 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d ageByName[$name]);.}..$matches.=
5d7a0 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d .$provideMatches.=.array();.$nam
5d7c0 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 eMatch.=.false;..foreach.($candi
5d7e0 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 dates.as.$candidate).{.switch.($
5d800 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 24 this->match($candidate,.$name,.$
5d820 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f constraint)).{.case.self::MATCH_
5d840 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e NONE:.break;..case.self::MATCH_N
5d860 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a AME:.$nameMatch.=.true;.break;..
5d880 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 case.self::MATCH:.$nameMatch.=.t
5d8a0 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 rue;.$matches[].=.$this->ensureP
5d8c0 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 ackageIsLoaded($candidate);.brea
5d8e0 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3a 0a 24 70 k;..case.self::MATCH_PROVIDE:.$p
5d900 72 6f 76 69 64 65 4d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 rovideMatches[].=.$this->ensureP
5d920 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 ackageIsLoaded($candidate);.brea
5d940 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3a 0a 24 6d k;..case.self::MATCH_REPLACE:.$m
5d960 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 atches[].=.$this->ensurePackageI
5d980 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 sLoaded($candidate);.break;..def
5d9a0 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 ault:.throw.new.\UnexpectedValue
5d9c0 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 70 65 Exception('Unexpected.match.type
5d9e0 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 65 74 ');.}.}....if.($nameMatch).{.ret
5da00 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 urn.$matches;.}..return.array_me
5da20 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 3b 0a rge($matches,.$provideMatches);.
5da40 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b }..public.function.literalToPack
5da60 61 67 65 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 age($literal).{.$packageId.=.abs
5da80 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 ($literal);..return.$this->packa
5daa0 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 geById($packageId);.}..public.fu
5dac0 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 nction.literalToString($literal)
5dae0 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 3a 20 .{.return.($literal.>.0.?.'+'.:.
5db00 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 '-')...$this->literalToPackage($
5db20 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 literal);.}..public.function.lit
5db40 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e eralToPrettyString($literal,.$in
5db60 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e stalledMap).{.$package.=.$this->
5db80 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 literalToPackage($literal);..if.
5dba0 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 (isset($installedMap[$package->g
5dbc0 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 etId()])).{.$prefix.=.($literal.
5dbe0 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c 73 65 >.0.?.'keep'.:.'remove');.}.else
5dc00 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 69 6e .{.$prefix.=.($literal.>.0.?.'in
5dc20 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 stall'.:.'don\'t.install');.}..r
5dc40 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 eturn.$prefix.'.'.$package->getP
5dc60 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rettyString();.}..public.functio
5dc80 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 n.isPackageAcceptable($name,.$st
5dca0 61 62 69 6c 69 74 79 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 6e 61 6d ability).{.foreach.((array).$nam
5dcc0 65 20 61 73 20 24 6e 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 e.as.$n).{...if.(!isset($this->s
5dce0 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 tabilityFlags[$n]).&&.isset($thi
5dd00 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c s->acceptableStabilities[$stabil
5dd20 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 ity])).{.return.true;.}....if.(i
5dd40 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 sset($this->stabilityFlags[$n]).
5dd60 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 &&.BasePackage::$stabilities[$st
5dd80 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 ability].<=.$this->stabilityFlag
5dda0 73 5b 24 6e 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 s[$n]).{.return.true;.}.}..retur
5ddc0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 6e 73 n.false;.}..private.function.ens
5dde0 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 urePackageIsLoaded($data).{.if.(
5de00 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 is_array($data)).{.if.(isset($da
5de20 74 61 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 29 29 20 7b 0a 24 61 6c 69 61 73 4f 66 20 3d 20 24 74 ta['alias_of'])).{.$aliasOf.=.$t
5de40 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6f 66 his->packageById($data['alias_of
5de60 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b ']);.$package.=.$this->packages[
5de80 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 27 5d $data['id'].-.1].=.$data['repo']
5dea0 2d 3e 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 64 61 74 61 2c 20 24 61 6c 69 61 73 ->loadAliasPackage($data,.$alias
5dec0 4f 66 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 Of);.$package->setRootPackageAli
5dee0 61 73 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 27 5d 29 29 3b as(!empty($data['root_alias']));
5df00 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b .}.else.{.$package.=.$this->pack
5df20 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d 20 24 64 61 74 61 5b 27 72 ages[$data['id'].-.1].=.$data['r
5df40 65 70 6f 27 5d 2d 3e 6c 6f 61 64 50 61 63 6b 61 67 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 66 6f epo']->loadPackage($data);.}..fo
5df60 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 73 20 24 reach.($package->getNames().as.$
5df80 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 name).{.$this->packageByName[$na
5dfa0 6d 65 5d 5b 24 64 61 74 61 5b 27 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 24 me][$data['id']].=.$package;.}.$
5dfc0 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 64 61 74 61 5b 27 69 64 27 5d 29 3b 0a 0a 72 65 package->setId($data['id']);..re
5dfe0 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a turn.$package;.}..return.$data;.
5e000 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 }...........private.function.mat
5e020 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 ch($candidate,.$name,.LinkConstr
5e040 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c aintInterface.$constraint.=.null
5e060 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 29 29 20 ).{...if.(is_array($candidate)).
5e080 7b 0a 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 5b 27 6e {.$candidateName.=.$candidate['n
5e0a0 61 6d 65 27 5d 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 ame'];.$candidateVersion.=.$cand
5e0c0 69 64 61 74 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 61 idate['version'];.}.else.{...$ca
5e0e0 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d ndidateName.=.$candidate->getNam
5e100 65 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 69 64 e();.$candidateVersion.=.$candid
5e120 61 74 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6e 64 69 ate->getVersion();.}..if.($candi
5e140 64 61 74 65 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 63 6f 6e 73 74 dateName.===.$name).{.if.($const
5e160 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d raint.===.null).{.return.self::M
5e180 41 54 43 48 3b 0a 7d 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 ATCH;.}.return.$constraint->matc
5e1a0 68 65 73 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 hes(new.VersionConstraint('==',.
5e1c0 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 $candidateVersion)).?.self::MATC
5e1e0 48 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f H.:.self::MATCH_NAME;.}..if.(is_
5e200 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d array($candidate)).{.$provides.=
5e220 20 69 73 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3f 20 .isset($candidate['provide']).?.
5e240 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 $this->versionParser->parseLinks
5e260 28 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 ($candidateName,.$candidateVersi
5e280 6f 6e 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 on,.'provides',.$candidate['prov
5e2a0 69 64 65 27 5d 29 0a 3a 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 69 73 ide']).:.array();.$replaces.=.is
5e2c0 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3f 20 24 74 68 set($candidate['replace']).?.$th
5e2e0 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 is->versionParser->parseLinks($c
5e300 61 6e 64 69 64 61 74 65 4e 61 6d 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c andidateName,.$candidateVersion,
5e320 20 27 72 65 70 6c 61 63 65 73 27 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 .'replaces',.$candidate['replace
5e340 27 5d 29 0a 3a 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 76 69 64 65 ']).:.array();.}.else.{.$provide
5e360 73 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 24 s.=.$candidate->getProvides();.$
5e380 72 65 70 6c 61 63 65 73 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 52 65 70 6c 61 63 replaces.=.$candidate->getReplac
5e3a0 65 73 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 30 es();.}....if.(isset($replaces[0
5e3c0 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 70 72 6f 76 69 64 65 73 5b 30 5d 29 29 20 7b 0a 66 6f 72 ]).||.isset($provides[0])).{.for
5e3e0 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 each.($provides.as.$link).{.if.(
5e400 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 $link->getTarget().===.$name.&&.
5e420 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 ($constraint.===.null.||.$constr
5e440 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 aint->matches($link->getConstrai
5e460 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f nt()))).{.return.self::MATCH_PRO
5e480 56 49 44 45 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6c 61 63 65 73 20 61 73 VIDE;.}.}..foreach.($replaces.as
5e4a0 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 .$link).{.if.($link->getTarget()
5e4c0 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e .===.$name.&&.($constraint.===.n
5e4e0 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e ull.||.$constraint->matches($lin
5e500 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 k->getConstraint()))).{.return.s
5e520 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 elf::MATCH_REPLACE;.}.}..return.
5e540 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 self::MATCH_NONE;.}..if.(isset($
5e560 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 provides[$name]).&&.($constraint
5e580 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 .===.null.||.$constraint->matche
5e5a0 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e s($provides[$name]->getConstrain
5e5c0 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 t()))).{.return.self::MATCH_PROV
5e5e0 49 44 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d IDE;.}..if.(isset($replaces[$nam
5e600 65 5d 29 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 e]).&&.($constraint.===.null.||.
5e620 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b 24 $constraint->matches($replaces[$
5e640 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 name]->getConstraint()))).{.retu
5e660 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3b 0a 7d 0a 0a 72 65 74 75 72 rn.self::MATCH_REPLACE;.}..retur
5e680 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.self::MATCH_NONE;.}.}.<?php...
5e6a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
5e6c0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 0a 7b ndencyResolver;.....class.Rule.{
5e6e0 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 .const.RULE_INTERNAL_ALLOW_UPDAT
5e700 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 20 3d 20 E.=.1;.const.RULE_JOB_INSTALL.=.
5e720 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 20 3d 20 33 3b 0a 63 6f 2;.const.RULE_JOB_REMOVE.=.3;.co
5e740 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 20 3d 20 36 3b 0a 63 nst.RULE_PACKAGE_CONFLICT.=.6;.c
5e760 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 20 3d 20 37 3b 0a onst.RULE_PACKAGE_REQUIRES.=.7;.
5e780 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 38 const.RULE_PACKAGE_OBSOLETES.=.8
5e7a0 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f ;.const.RULE_INSTALLED_PACKAGE_O
5e7c0 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 BSOLETES.=.9;.const.RULE_PACKAGE
5e7e0 5f 53 41 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b _SAME_NAME.=.10;.const.RULE_PACK
5e800 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 31 31 3b 0a 63 6f 6e AGE_IMPLICIT_OBSOLETES.=.11;.con
5e820 73 74 20 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 st.RULE_LEARNED.=.12;.const.RULE
5e840 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 _PACKAGE_ALIAS.=.13;..protected.
5e860 24 70 6f 6f 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 61 62 6c 65 64 3b 0a 70 72 6f $pool;..protected.$disabled;.pro
5e880 74 65 63 74 65 64 20 24 6c 69 74 65 72 61 6c 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 tected.$literals;.protected.$typ
5e8a0 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 e;.protected.$id;.protected.$rea
5e8c0 73 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 70 72 6f son;.protected.$reasonData;..pro
5e8e0 74 65 63 74 65 64 20 24 6a 6f 62 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 tected.$job;..protected.$ruleHas
5e900 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 h;..public.function.__construct(
5e920 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 Pool.$pool,.array.$literals,.$re
5e940 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a ason,.$reasonData,.$job.=.null).
5e960 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 0a 0a 20 73 6f 72 74 28 24 {.$this->pool.=.$pool;....sort($
5e980 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c literals);..$this->literals.=.$l
5e9a0 69 74 65 72 61 6c 73 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e iterals;.$this->reason.=.$reason
5e9c0 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 ;.$this->reasonData.=.$reasonDat
5e9e0 61 3b 0a 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 a;..$this->disabled.=.false;..$t
5ea00 68 69 73 2d 3e 6a 6f 62 20 3d 20 24 6a 6f 62 3b 0a 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 his->job.=.$job;..$this->type.=.
5ea20 2d 31 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 -1;..$this->ruleHash.=.substr(md
5ea40 35 28 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 5(implode(',',.$this->literals))
5ea60 2c 20 30 2c 20 35 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 ,.0,.5);.}..public.function.getH
5ea80 61 73 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a ash().{.return.$this->ruleHash;.
5eaa0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a }..public.function.setId($id).{.
5eac0 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $this->id.=.$id;.}..public.funct
5eae0 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a ion.getId().{.return.$this->id;.
5eb00 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 }..public.function.getJob().{.re
5eb20 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 turn.$this->job;.}..public.funct
5eb40 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ion.getReason().{.return.$this->
5eb60 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 reason;.}..public.function.getRe
5eb80 61 73 6f 6e 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f asonData().{.return.$this->reaso
5eba0 6e 44 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 nData;.}..public.function.getReq
5ebc0 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 uiredPackage().{.if.($this->reas
5ebe0 6f 6e 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 29 20 7b on.===.self::RULE_JOB_INSTALL).{
5ec00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 69 66 .return.$this->reasonData;.}..if
5ec20 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 .($this->reason.===.self::RULE_P
5ec40 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ACKAGE_REQUIRES).{.return.$this-
5ec60 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 0a >reasonData->getTarget();.}.}...
5ec80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 .......public.function.equals(Ru
5eca0 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 le.$rule).{.if.($this->ruleHash.
5ecc0 21 3d 3d 20 24 72 75 6c 65 2d 3e 72 75 6c 65 48 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 !==.$rule->ruleHash).{.return.fa
5ece0 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c lse;.}..if.(count($this->literal
5ed00 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a s).!=.count($rule->literals)).{.
5ed20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e return.false;.}..for.($i.=.0,.$n
5ed40 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 .=.count($this->literals);.$i.<.
5ed60 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b $n;.$i++).{.if.($this->literals[
5ed80 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 $i].!==.$rule->literals[$i]).{.r
5eda0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d eturn.false;.}.}..return.true;.}
5edc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 ..public.function.setType($type)
5ede0 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 .{.$this->type.=.$type;.}..publi
5ee00 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 c.function.getType().{.return.$t
5ee20 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 his->type;.}..public.function.di
5ee40 73 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 sable().{.$this->disabled.=.true
5ee60 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a ;.}..public.function.enable().{.
5ee80 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c $this->disabled.=.false;.}..publ
5eea0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 ic.function.isDisabled().{.retur
5eec0 6e 20 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e n.$this->disabled;.}..public.fun
5eee0 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 ction.isEnabled().{.return.!$thi
5ef00 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s->disabled;.}..public.function.
5ef20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 getLiterals().{.return.$this->li
5ef40 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 terals;.}..public.function.isAss
5ef60 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 ertion().{.return.1.===.count($t
5ef80 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his->literals);.}..public.functi
5efa0 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c on.getPrettyString(array.$instal
5efc0 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 ledMap.=.array()).{.$ruleText.=.
5efe0 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 '';.foreach.($this->literals.as.
5f000 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b $i.=>.$literal).{.if.($i.!=.0).{
5f020 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e .$ruleText..=.'|';.}.$ruleText..
5f040 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 =.$this->pool->literalToPrettySt
5f060 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d ring($literal,.$installedMap);.}
5f080 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 29 20 7b 0a 63 61 73 65 20 ..switch.($this->reason).{.case.
5f0a0 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 self::RULE_INTERNAL_ALLOW_UPDATE
5f0c0 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a :.return.$ruleText;..case.self::
5f0e0 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 61 6c RULE_JOB_INSTALL:.return."Instal
5f100 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 l.command.rule.($ruleText)";..ca
5f120 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 72 6e se.self::RULE_JOB_REMOVE:.return
5f140 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 ."Remove.command.rule.($ruleText
5f160 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e )";..case.self::RULE_PACKAGE_CON
5f180 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e FLICT:.$package1.=.$this->pool->
5f1a0 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 literalToPackage($this->literals
5f1c0 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c [0]);.$package2.=.$this->pool->l
5f1e0 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b iteralToPackage($this->literals[
5f200 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 1]);..return.$package1->getPrett
5f220 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 27 2e 24 74 68 yString().'.conflicts.with.'.$th
5f240 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 61 72 72 61 79 28 24 is->formatPackagesUnique(array($
5f260 70 61 63 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 package2)).'.';..case.self::RULE
5f280 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 _PACKAGE_REQUIRES:.$literals.=.$
5f2a0 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 3d this->literals;.$sourceLiteral.=
5f2c0 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 65 .array_shift($literals);.$source
5f2e0 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f Package.=.$this->pool->literalTo
5f300 50 61 63 6b 61 67 65 28 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 69 Package($sourceLiteral);..$requi
5f320 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c res.=.array();.foreach.($literal
5f340 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 s.as.$literal).{.$requires[].=.$
5f360 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 this->pool->literalToPackage($li
5f380 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e teral);.}..$text.=.$this->reason
5f3a0 44 61 74 61 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 73 6f 75 72 63 65 50 61 63 Data->getPrettyString($sourcePac
5f3c0 6b 61 67 65 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 74 65 78 74 20 2e 3d kage);.if.($requires).{.$text..=
5f3e0 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e .'.->.satisfiable.by.'...$this->
5f400 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 72 65 71 75 69 72 65 73 29 20 formatPackagesUnique($requires).
5f420 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 ..'.';.}.else.{.$targetName.=.$t
5f440 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a his->reasonData->getTarget();...
5f460 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 .if.(0.===.strpos($targetName,.'
5f480 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e ext-')).{.$ext.=.substr($targetN
5f4a0 61 6d 65 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 ame,.4);.$error.=.extension_load
5f4c0 65 64 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f ed($ext).?.'has.the.wrong.versio
5f4e0 6e 20 28 27 2e 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 2e 27 29 20 69 6e 73 74 61 6c 6c n.('.phpversion($ext).').install
5f500 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 ed'.:.'is.missing.from.your.syst
5f520 65 6d 27 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 em';..$text..=.'.->.the.requeste
5f540 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f d.PHP.extension.'.$ext.'.'.$erro
5f560 72 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 r.'.';.}.elseif.(0.===.strpos($t
5f580 61 72 67 65 74 4e 61 6d 65 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 argetName,.'lib-')).{...$lib.=.s
5f5a0 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d ubstr($targetName,.4);..$text..=
5f5c0 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 .'.->.the.requested.linked.libra
5f5e0 72 79 20 27 2e 24 6c 69 62 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f ry.'.$lib.'.has.the.wrong.versio
5f600 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 n.installed.or.is.missing.from.y
5f620 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 our.system,.make.sure.to.have.th
5f640 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c e.extension.providing.it.';.}.el
5f660 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 se.{.$text..=.'.->.no.matching.p
5f680 61 63 6b 61 67 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 ackage.found.';.}.}..return.$tex
5f6a0 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f t;..case.self::RULE_PACKAGE_OBSO
5f6c0 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 LETES:.return.$ruleText;.case.se
5f6e0 6c 66 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c lf::RULE_INSTALLED_PACKAGE_OBSOL
5f700 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c ETES:.return.$ruleText;.case.sel
5f720 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 f::RULE_PACKAGE_SAME_NAME:.retur
5f740 6e 20 27 43 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 27 20 2e 20 n.'Can.only.install.one.of:.'...
5f760 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 74 68 69 $this->formatPackagesUnique($thi
5f780 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 2e 20 27 2e 27 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 s->literals)...'.';.case.self::R
5f7a0 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a ULE_PACKAGE_IMPLICIT_OBSOLETES:.
5f7c0 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c return.$ruleText;.case.self::RUL
5f7e0 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 E_LEARNED:.return.'Conclusion:.'
5f800 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b .$ruleText;.case.self::RULE_PACK
5f820 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 7d 0a 7d AGE_ALIAS:.return.$ruleText;.}.}
5f840 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 63 6b 61 ..protected.function.formatPacka
5f860 67 65 73 55 6e 69 71 75 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 gesUnique(array.$packages).{.$pr
5f880 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b epared.=.array();.foreach.($pack
5f8a0 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 ages.as.$package).{.if.(!is_obje
5f8c0 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 ct($package)).{.$package.=.$this
5f8e0 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 ->pool->literalToPackage($packag
5f900 65 29 3b 0a 7d 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d e);.}.$prepared[$package->getNam
5f920 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 e()]['name'].=.$package->getPret
5f940 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 tyName();.$prepared[$package->ge
5f960 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 tName()]['versions'][$package->g
5f980 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 etVersion()].=.$package->getPret
5f9a0 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 tyVersion();.}.foreach.($prepare
5f9c0 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 d.as.$name.=>.$package).{.$prepa
5f9e0 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b red[$name].=.$package['name'].'[
5fa00 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f '.implode(',.',.$package['versio
5fa20 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 ns']).']';.}..return.implode(',.
5fa40 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ',.$prepared);.}.......public.fu
5fa60 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 nction.__toString().{.$result.=.
5fa80 28 24 74 68 69 73 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 ($this->isDisabled()).?.'disable
5faa0 64 28 27 20 3a 20 27 28 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 d('.:.'(';..foreach.($this->lite
5fac0 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 rals.as.$i.=>.$literal).{.if.($i
5fae0 20 21 3d 20 30 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 .!=.0).{.$result..=.'|';.}.$resu
5fb00 6c 74 20 2e 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 lt..=.$this->pool->literalToStri
5fb20 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b ng($literal);.}..$result..=.')';
5fb40 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ..return.$result;.}.}.<?php.....
5fb60 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 .......namespace.Composer\Depend
5fb80 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b encyResolver;..use.Composer\Pack
5fba0 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 age\PackageInterface;.use.Compos
5fbc0 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 er\Package\AliasPackage;.....cla
5fbe0 73 73 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 ss.RuleSetGenerator.{.protected.
5fc00 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 $policy;.protected.$pool;.protec
5fc20 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f ted.$rules;.protected.$jobs;.pro
5fc40 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 tected.$installedMap;..public.fu
5fc60 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 nction.__construct(PolicyInterfa
5fc80 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d ce.$policy,.Pool.$pool).{.$this-
5fca0 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d >policy.=.$policy;.$this->pool.=
5fcc0 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .$pool;.}................protect
5fce0 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 ed.function.createRequireRule(Pa
5fd00 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 ckageInterface.$package,.array.$
5fd20 70 72 6f 76 69 64 65 72 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 providers,.$reason,.$reasonData.
5fd40 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 =.null).{.$literals.=.array(-$pa
5fd60 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 ckage->getId());..foreach.($prov
5fd80 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f iders.as.$provider).{...if.($pro
5fda0 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c vider.===.$package).{.return.nul
5fdc0 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 l;.}.$literals[].=.$provider->ge
5fde0 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d tId();.}..return.new.Rule($this-
5fe00 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 >pool,.$literals,.$reason,.$reas
5fe20 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 onData);.}..............protecte
5fe40 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c d.function.createInstallOneOfRul
5fe60 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 e(array.$packages,.$reason,.$job
5fe80 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ).{.$literals.=.array();.foreach
5fea0 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 74 65 .($packages.as.$package).{.$lite
5fec0 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 rals[].=.$package->getId();.}..r
5fee0 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 eturn.new.Rule($this->pool,.$lit
5ff00 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d erals,.$reason,.$job['packageNam
5ff20 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 e'],.$job);.}.............protec
5ff40 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 ted.function.createRemoveRule(Pa
5ff60 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e ckageInterface.$package,.$reason
5ff80 2c 20 24 6a 6f 62 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d ,.$job).{.return.new.Rule($this-
5ffa0 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 >pool,.array(-$package->getId())
5ffc0 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 ,.$reason,.$job['packageName'],.
5ffe0 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 $job);.}................protecte
60000 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 d.function.createConflictRule(Pa
60020 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 ckageInterface.$issuer,.PackageI
60040 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 nterface.$provider,.$reason,.$re
60060 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 asonData.=.null).{...if.($issuer
60080 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d .===.$provider).{.return.null;.}
600a0 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 ..return.new.Rule($this->pool,.a
600c0 72 72 61 79 28 2d 24 69 73 73 75 65 72 2d 3e 67 65 74 49 64 28 29 2c 20 2d 24 70 72 6f 76 69 64 rray(-$issuer->getId(),.-$provid
600e0 65 72 2d 3e 67 65 74 49 64 28 29 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 er->getId()),.$reason,.$reasonDa
60100 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ta);.}...........private.functio
60120 6e 20 61 64 64 52 75 6c 65 28 24 74 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d n.addRule($type,.Rule.$newRule.=
60140 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d .null).{.if.(!$newRule.||.$this-
60160 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 >rules->containsEqual($newRule))
60180 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 .{.return;.}..$this->rules->add(
601a0 24 6e 65 77 52 75 6c 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 $newRule,.$type);.}..protected.f
601c0 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 unction.addRulesForPackage(Packa
601e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 geInterface.$package).{.$workQue
60200 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e ue.=.new.\SplQueue;.$workQueue->
60220 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 enqueue($package);..while.(!$wor
60240 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 kQueue->isEmpty()).{.$package.=.
60260 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 $workQueue->dequeue();.if.(isset
60280 28 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 ($this->addedMap[$package->getId
602a0 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 ()])).{.continue;.}..$this->adde
602c0 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a dMap[$package->getId()].=.true;.
602e0 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 .foreach.($package->getRequires(
60300 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 ).as.$link).{.$possibleRequires.
60320 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e =.$this->pool->whatProvides($lin
60340 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
60360 61 69 6e 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 aint());..$this->addRule(RuleSet
60380 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 ::TYPE_PACKAGE,.$rule.=.$this->c
603a0 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 reateRequireRule($package,.$poss
603c0 69 62 6c 65 52 65 71 75 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 ibleRequires,.Rule::RULE_PACKAGE
603e0 5f 52 45 51 55 49 52 45 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 _REQUIRES,.$link));..foreach.($p
60400 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 ossibleRequires.as.$require).{.$
60420 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a workQueue->enqueue($require);.}.
60440 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 }..foreach.($package->getConflic
60460 74 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 ts().as.$link).{.$possibleConfli
60480 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 cts.=.$this->pool->whatProvides(
604a0 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f $link->getTarget(),.$link->getCo
604c0 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 nstraint());..foreach.($possible
604e0 43 6f 6e 66 6c 69 63 74 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d Conflicts.as.$conflict).{.$this-
60500 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 >addRule(RuleSet::TYPE_PACKAGE,.
60520 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 $this->createConflictRule($packa
60540 67 65 2c 20 24 63 6f 6e 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 ge,.$conflict,.Rule::RULE_PACKAG
60560 45 5f 43 4f 4e 46 4c 49 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 E_CONFLICT,.$link));.}.}....$isI
60580 6e 73 74 61 6c 6c 65 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c nstalled.=.(isset($this->install
605a0 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 3b 0a 0a 66 6f 72 edMap[$package->getId()]));..for
605c0 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 each.($package->getReplaces().as
605e0 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 .$link).{.$obsoleteProviders.=.$
60600 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e this->pool->whatProvides($link->
60620 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e getTarget(),.$link->getConstrain
60640 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 t());..foreach.($obsoleteProvide
60660 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 rs.as.$provider).{.if.($provider
60680 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 .===.$package).{.continue;.}..if
606a0 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 .(!$this->obsoleteImpossibleForA
606c0 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 lias($package,.$provider)).{.$re
606e0 61 73 6f 6e 20 3d 20 28 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 ason.=.($isInstalled).?.Rule::RU
60700 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a LE_INSTALLED_PACKAGE_OBSOLETES.:
60720 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 .Rule::RULE_PACKAGE_OBSOLETES;.$
60740 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b this->addRule(RuleSet::TYPE_PACK
60760 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 AGE,.$this->createConflictRule($
60780 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 package,.$provider,.$reason,.$li
607a0 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 nk));.}.}.}..$obsoleteProviders.
607c0 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 =.$this->pool->whatProvides($pac
607e0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 kage->getName(),.null);..foreach
60800 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 .($obsoleteProviders.as.$provide
60820 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 r).{.if.($provider.===.$package)
60840 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e .{.continue;.}..if.(($package.in
60860 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 stanceof.AliasPackage).&&.$packa
60880 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 ge->getAliasOf().===.$provider).
608a0 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 {.$this->addRule(RuleSet::TYPE_P
608c0 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 ACKAGE,.$rule.=.$this->createReq
608e0 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 uireRule($package,.array($provid
60900 65 72 29 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 er),.Rule::RULE_PACKAGE_ALIAS,.$
60920 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 package));.}.elseif.(!$this->obs
60940 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 oleteImpossibleForAlias($package
60960 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b ,.$provider)).{.$reason.=.($pack
60980 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 age->getName().==.$provider->get
609a0 4e 61 6d 65 28 29 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d Name()).?.Rule::RULE_PACKAGE_SAM
609c0 45 5f 4e 41 4d 45 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c E_NAME.:.Rule::RULE_PACKAGE_IMPL
609e0 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 ICIT_OBSOLETES;.$this->addRule(R
60a00 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 uleSet::TYPE_PACKAGE,.$rule.=.$t
60a20 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 his->createConflictRule($package
60a40 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 ,.$provider,.$reason,.$package))
60a60 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 ;.}.}.}.}..protected.function.ob
60a80 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 soleteImpossibleForAlias($packag
60aa0 65 2c 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 e,.$provider).{.$packageIsAlias.
60ac0 3d 20 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 =.$package.instanceof.AliasPacka
60ae0 67 65 3b 0a 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 ge;.$providerIsAlias.=.$provider
60b00 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f .instanceof.AliasPackage;..$impo
60b20 73 73 69 62 6c 65 20 3d 20 28 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 ssible.=.(.($packageIsAlias.&&.$
60b40 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 package->getAliasOf().===.$provi
60b60 64 65 72 29 20 7c 7c 0a 28 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 der).||.($providerIsAlias.&&.$pr
60b80 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 ovider->getAliasOf().===.$packag
60ba0 65 29 20 7c 7c 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 e).||.($packageIsAlias.&&.$provi
60bc0 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 derIsAlias.&&.$provider->getAlia
60be0 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 sOf().===.$package->getAliasOf()
60c00 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a ).);..return.$impossible;.}.....
60c20 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 55 ...private.function.addRulesForU
60c40 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 pdatePackages(PackageInterface.$
60c60 70 61 63 6b 61 67 65 29 0a 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c package).{.$updates.=.$this->pol
60c80 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 icy->findUpdatePackages($this->p
60ca0 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 ool,.$this->installedMap,.$packa
60cc0 67 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 ge);..foreach.($updates.as.$upda
60ce0 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 te).{.$this->addRulesForPackage(
60d00 24 75 70 64 61 74 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f $update);.}.}..protected.functio
60d20 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 n.addRulesForJobs().{.foreach.($
60d40 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a this->jobs.as.$job).{.switch.($j
60d60 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 ob['cmd']).{.case.'install':.if.
60d80 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6a ($job['packages']).{.foreach.($j
60da0 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 ob['packages'].as.$package).{.if
60dc0 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 .(!isset($this->installedMap[$pa
60de0 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 ckage->getId()])).{.$this->addRu
60e00 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 24 72 lesForPackage($package);.}.}..$r
60e20 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 ule.=.$this->createInstallOneOfR
60e40 75 6c 65 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 ule($job['packages'],.Rule::RULE
60e60 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 _JOB_INSTALL,.$job);.$this->addR
60e80 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d ule(RuleSet::TYPE_JOB,.$rule);.}
60ea0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 66 6f 72 65 61 .break;.case.'remove':.....forea
60ec0 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 ch.($job['packages'].as.$package
60ee0 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 ).{.$rule.=.$this->createRemoveR
60f00 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d ule($package,.Rule::RULE_JOB_REM
60f20 4f 56 45 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 OVE,.$job);.$this->addRule(RuleS
60f40 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d et::TYPE_JOB,.$rule);.}.break;.}
60f60 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f .}.}..public.function.getRulesFo
60f80 72 28 24 6a 6f 62 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d r($jobs,.$installedMap).{.$this-
60fa0 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 >jobs.=.$jobs;.$this->rules.=.ne
60fc0 77 20 52 75 6c 65 53 65 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d w.RuleSet;.$this->installedMap.=
60fe0 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d .$installedMap;..foreach.($this-
61000 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 >installedMap.as.$package).{.$th
61020 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 is->addRulesForPackage($package)
61040 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 ;.$this->addRulesForUpdatePackag
61060 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 es($package);.}..$this->addRules
61080 46 6f 72 4a 6f 62 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b ForJobs();..return.$this->rules;
610a0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
610c0 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a Composer\DependencyResolver;....
610e0 0a 63 6c 61 73 73 20 44 65 62 75 67 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 .class.DebugSolver.extends.Solve
61100 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 r.{.protected.function.printDeci
61120 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a sionMap().{.echo."\nDecisionMap:
61140 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 .\n";.foreach.($this->decisionMa
61160 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 p.as.$packageId.=>.$level).{.if.
61180 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ($packageId.===.0).{.continue;.}
611a0 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 .if.($level.>.0).{.echo.'....+'.
611c0 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b ..$this->pool->packageById($pack
611e0 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 ageId)."\n";.}.elseif.($level.<.
61200 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2d 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 0).{.echo.'....-'...$this->pool-
61220 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d >packageById($packageId)."\n";.}
61240 20 65 6c 73 65 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f .else.{.echo.'....?'...$this->po
61260 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 ol->packageById($packageId)."\n"
61280 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ;.}.}.echo."\n";.}..protected.fu
612a0 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 nction.printDecisionQueue().{.ec
612c0 68 6f 20 22 44 65 63 69 73 69 6f 6e 51 75 65 75 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 ho."DecisionQueue:.\n";.foreach.
612e0 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 ($this->decisionQueue.as.$i.=>.$
61300 6c 69 74 65 72 61 6c 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e literal).{.echo.'....'...$this->
61320 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 pool->literalToString($literal).
61340 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b ..'.'...$this->decisionQueueWhy[
61360 24 69 5d 2e 22 20 6c 65 76 65 6c 20 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 $i].".level.".$this->decisionMap
61380 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e [abs($literal)]."\n";.}.echo."\n
613a0 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 ";.}..protected.function.printWa
613c0 74 63 68 65 73 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 tches().{.echo."\nWatches:\n";.f
613e0 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 oreach.($this->watches.as.$liter
61400 61 6c 49 64 20 3d 3e 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 alId.=>.$watch).{.echo.'..'.$thi
61420 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e s->literalFromId($literalId)."\n
61440 22 3b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 ";.$queue.=.array(array('....',.
61460 24 77 61 74 63 68 29 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 $watch));..while.(!empty($queue)
61480 29 20 7b 0a 6c 69 73 74 28 24 69 6e 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 ).{.list($indent,.$watch).=.arra
614a0 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 y_pop($queue);..echo.$indent.$wa
614c0 74 63 68 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 tch;..if.($watch).{.echo.'.[id='
614e0 2e 24 77 61 74 63 68 2d 3e 67 65 74 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 .$watch->getId().',watch1='.$thi
61500 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 s->literalFromId($watch->watch1)
61520 2e 27 2c 77 61 74 63 68 32 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 .',watch2='.$this->literalFromId
61540 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c ($watch->watch2)."]";.}..echo."\
61560 6e 22 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 n";..if.($watch.&&.($watch->next
61580 31 20 3d 3d 20 24 77 61 74 63 68 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 1.==.$watch.||.$watch->next2.==.
615a0 24 77 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 $watch)).{.if.($watch->next1.==.
615c0 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 $watch).{.echo.$indent."....1.*R
615e0 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 ECURSION*";.}.if.($watch->next2.
61600 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 ==.$watch).{.echo.$indent."....2
61620 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 .*RECURSION*";.}.}.elseif.($watc
61640 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e h.&&.($watch->next1.||.$watch->n
61660 65 78 74 32 29 29 20 7b 0a 24 69 6e 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 ext2)).{.$indent.=.str_replace(a
61680 72 72 61 79 28 27 31 27 2c 20 27 32 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a rray('1',.'2'),.'.',.$indent);..
616a0 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 array_push($queue,.array($indent
616c0 2e 27 20 20 20 20 32 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 .'....2.',.$watch->next2));.arra
616e0 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 y_push($queue,.array($indent.'..
61700 20 20 31 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 ..1.',.$watch->next1));.}.}..ech
61720 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e o."\n";.}.}.}.<?php............n
61740 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f amespace.Composer\DependencyReso
61760 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 lver;.....class.RuleSetIterator.
61780 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 implements.\Iterator.{.protected
617a0 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 .$rules;.protected.$types;..prot
617c0 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 4f 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 ected.$currentOffset;.protected.
617e0 24 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 $currentType;.protected.$current
61800 54 79 70 65 4f 66 66 73 65 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 TypeOffset;..public.function.__c
61820 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e onstruct(array.$rules).{.$this->
61840 72 75 6c 65 73 20 3d 20 24 72 75 6c 65 73 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 rules.=.$rules;.$this->types.=.a
61860 72 72 61 79 5f 6b 65 79 73 28 24 72 75 6c 65 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 rray_keys($rules);.sort($this->t
61880 79 70 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c ypes);..$this->rewind();.}..publ
618a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ic.function.current().{.return.$
618c0 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b this->rules[$this->currentType][
618e0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $this->currentOffset];.}..public
61900 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .function.key().{.return.$this->
61920 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 currentType;.}..public.function.
61940 6e 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b next().{.$this->currentOffset++;
61960 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d ..if.(!isset($this->rules[$this-
61980 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 >currentType])).{.return;.}..if.
619a0 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 ($this->currentOffset.>=.sizeof(
619c0 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d $this->rules[$this->currentType]
619e0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a )).{.$this->currentOffset.=.0;..
61a00 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b do.{.$this->currentTypeOffset++;
61a20 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d ..if.(!isset($this->types[$this-
61a40 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 >currentTypeOffset])).{.$this->c
61a60 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 urrentType.=.-1;.break;.}..$this
61a80 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 ->currentType.=.$this->types[$th
61aa0 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 is->currentTypeOffset];.}.while.
61ac0 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 (isset($this->types[$this->curre
61ae0 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d ntTypeOffset]).&&.!sizeof($this-
61b00 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a >rules[$this->currentType]));.}.
61b20 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 }..public.function.rewind().{.$t
61b40 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e his->currentOffset.=.0;..$this->
61b60 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 currentTypeOffset.=.-1;.$this->c
61b80 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 urrentType.=.-1;..do.{.$this->cu
61ba0 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 rrentTypeOffset++;..if.(!isset($
61bc0 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 this->types[$this->currentTypeOf
61be0 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d fset])).{.$this->currentType.=.-
61c00 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 1;.break;.}..$this->currentType.
61c20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 =.$this->types[$this->currentTyp
61c40 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e eOffset];.}.while.(isset($this->
61c60 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 types[$this->currentTypeOffset])
61c80 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e .&&.!sizeof($this->rules[$this->
61ca0 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 currentType]));.}..public.functi
61cc0 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d on.valid().{.return.isset($this-
61ce0 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 >rules[$this->currentType]).&&.i
61d00 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 sset($this->rules[$this->current
61d20 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a Type][$this->currentOffset]);.}.
61d40 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
61d60 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a poser\DependencyResolver;.......
61d80 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 ...class.RuleWatchChain.extends.
61da0 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 6e 6b 65 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 \SplDoublyLinkedList.{.protected
61dc0 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$offset.=.0;.......public.funct
61de0 69 6f 6e 20 73 65 65 6b 28 24 6f 66 66 73 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e ion.seek($offset).{.$this->rewin
61e00 64 28 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 d();.for.($i.=.0;.$i.<.$offset;.
61e20 24 69 2b 2b 2c 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a $i++,.$this->next());.}.........
61e40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 .public.function.remove().{.$off
61e60 73 65 74 20 3d 20 24 74 68 69 73 2d 3e 6b 65 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 set.=.$this->key();.$this->offse
61e80 74 55 6e 73 65 74 28 24 6f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 tUnset($offset);.$this->seek($of
61ea0 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 fset);.}.}.<?php............name
61ec0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
61ee0 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f r;..use.Composer\Repository\Repo
61f00 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 sitoryInterface;.....class.Solve
61f20 72 0a 7b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 r.{.const.BRANCH_LITERALS.=.0;.c
61f40 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 onst.BRANCH_LEVEL.=.1;..protecte
61f60 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 d.$policy;.protected.$pool;.prot
61f80 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c ected.$installed;.protected.$rul
61fa0 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b es;.protected.$ruleSetGenerator;
61fc0 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 .protected.$updateAll;..protecte
61fe0 64 20 24 61 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 d.$addedMap.=.array();.protected
62000 20 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 .$updateMap.=.array();.protected
62020 20 24 77 61 74 63 68 47 72 61 70 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f .$watchGraph;.protected.$decisio
62040 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 ns;.protected.$installedMap;..pr
62060 6f 74 65 63 74 65 64 20 24 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 otected.$propagateIndex;.protect
62080 65 64 20 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ed.$branches.=.array();.protecte
620a0 64 20 24 70 72 6f 62 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 d.$problems.=.array();.protected
620c0 20 24 6c 65 61 72 6e 65 64 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 .$learnedPool.=.array();..public
620e0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 .function.__construct(PolicyInte
62100 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 rface.$policy,.Pool.$pool,.Repos
62120 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 itoryInterface.$installed).{.$th
62140 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f is->policy.=.$policy;.$this->poo
62160 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 l.=.$pool;.$this->installed.=.$i
62180 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f nstalled;.$this->ruleSetGenerato
621a0 72 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 r.=.new.RuleSetGenerator($policy
621c0 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ,.$pool);.}....private.function.
621e0 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 makeAssertionRuleDecisions().{.$
62200 64 65 63 69 73 69 6f 6e 53 74 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 decisionStart.=.count($this->dec
62220 69 73 69 6f 6e 73 29 20 2d 20 31 3b 0a 0a 24 72 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e isions).-.1;..$rulesCount.=.coun
62240 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 t($this->rules);.for.($ruleIndex
62260 20 3d 20 30 3b 20 24 72 75 6c 65 49 6e 64 65 78 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 .=.0;.$ruleIndex.<.$rulesCount;.
62280 24 72 75 6c 65 49 6e 64 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 $ruleIndex++).{.$rule.=.$this->r
622a0 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 ules->ruleById($ruleIndex);..if.
622c0 28 21 24 72 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d (!$rule->isAssertion().||.$rule-
622e0 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c >isDisabled()).{.continue;.}..$l
62300 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a iterals.=.$rule->getLiterals();.
62320 24 6c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 $literal.=.$literals[0];..if.(!$
62340 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 this->decisions->decided(abs($li
62360 74 65 72 61 6c 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 teral))).{.$this->decisions->dec
62380 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 ide($literal,.1,.$rule);.continu
623a0 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 e;.}..if.($this->decisions->sati
623c0 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 sfy($literal)).{.continue;.}....
623e0 69 66 20 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 if.(RuleSet::TYPE_LEARNED.===.$r
62400 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 ule->getType()).{.$rule->disable
62420 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 ();.continue;.}..$conflict.=.$th
62440 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 is->decisions->decisionRule($lit
62460 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 eral);..if.($conflict.&&.RuleSet
62480 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 ::TYPE_PACKAGE.===.$conflict->ge
624a0 74 54 79 70 65 28 29 29 20 7b 0a 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c tType()).{..$problem.=.new.Probl
624c0 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 em($this->pool);..$problem->addR
624e0 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 ule($rule);.$problem->addRule($c
62500 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 onflict);.$this->disableProblem(
62520 24 72 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f $rule);.$this->problems[].=.$pro
62540 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 62 6c 65 6d 20 3d 20 blem;.continue;.}....$problem.=.
62560 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c new.Problem($this->pool);.$probl
62580 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 em->addRule($rule);.$problem->ad
625a0 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 dRule($conflict);......foreach.(
625c0 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c $this->rules->getIteratorFor(Rul
625e0 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 20 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 eSet::TYPE_JOB).as.$assertRule).
62600 7b 0a 69 66 20 28 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 {.if.($assertRule->isDisabled().
62620 7c 7c 20 21 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 ||.!$assertRule->isAssertion()).
62640 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 {.continue;.}..$assertRuleLitera
62660 6c 73 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b ls.=.$assertRule->getLiterals();
62680 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c .$assertRuleLiteral.=.$assertRul
626a0 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 eLiterals[0];..if.(abs($literal)
626c0 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a .!==.abs($assertRuleLiteral)).{.
626e0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 continue;.}..$problem->addRule($
62700 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c assertRule);.$this->disableProbl
62720 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 em($assertRule);.}.$this->proble
62740 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ms[].=.$problem;..$this->decisio
62760 6e 73 2d 3e 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 ns->resetToOffset($decisionStart
62780 29 3b 0a 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 );.$ruleIndex.=.-1;.}.}..protect
627a0 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a ed.function.setupInstalledMap().
627c0 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b {.$this->installedMap.=.array();
627e0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 .foreach.($this->installed->getP
62800 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e ackages().as.$package).{.$this->
62820 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 installedMap[$package->getId()].
62840 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a =.$package;.}..foreach.($this->j
62860 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 obs.as.$job).{.switch.($job['cmd
62880 27 5d 29 20 7b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 6a ']).{.case.'update':.foreach.($j
628a0 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 ob['packages'].as.$package).{.if
628c0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 .(isset($this->installedMap[$pac
628e0 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 kage->getId()])).{.$this->update
62900 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d Map[$package->getId()].=.true;.}
62920 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f .}.break;..case.'update-all':.fo
62940 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 reach.($this->installedMap.as.$p
62960 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b ackage).{.$this->updateMap[$pack
62980 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a age->getId()].=.true;.}.break;..
629a0 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 case.'install':.if.(!$job['packa
629c0 67 65 73 27 5d 29 20 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 ges']).{.$problem.=.new.Problem(
629e0 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 $this->pool);.$problem->addRule(
62a00 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 6e new.Rule($this->pool,.array(),.n
62a20 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6a 6f 62 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 ull,.null,.$job));.$this->proble
62a40 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a ms[].=.$problem;.}.break;.}.}.}.
62a60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 6c 76 65 28 52 65 71 75 65 73 74 20 24 .public.function.solve(Request.$
62a80 72 65 71 75 65 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 72 65 71 75 65 73 request).{.$this->jobs.=.$reques
62aa0 74 2d 3e 67 65 74 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 75 70 49 6e 73 74 61 t->getJobs();..$this->setupInsta
62ac0 6c 6c 65 64 4d 61 70 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 6e lledMap();..$this->decisions.=.n
62ae0 65 77 20 44 65 63 69 73 69 6f 6e 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 0a 24 74 68 69 ew.Decisions($this->pool);..$thi
62b00 73 2d 3e 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 s->rules.=.$this->ruleSetGenerat
62b20 6f 72 2d 3e 67 65 74 52 75 6c 65 73 46 6f 72 28 24 74 68 69 73 2d 3e 6a 6f 62 73 2c 20 24 74 68 or->getRulesFor($this->jobs,.$th
62b40 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 is->installedMap);.$this->watchG
62b60 72 61 70 68 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 3b 0a 0a 66 6f 72 65 raph.=.new.RuleWatchGraph;..fore
62b80 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 74 ach.($this->rules.as.$rule).{.$t
62ba0 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 65 72 74 28 6e 65 77 20 52 75 6c 65 his->watchGraph->insert(new.Rule
62bc0 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c 65 29 29 3b 0a 7d 0a 0a 0a 24 74 68 69 73 2d 3e 6d 61 WatchNode($rule));.}...$this->ma
62be0 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 0a 24 74 68 keAssertionRuleDecisions();..$th
62c00 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 is->runSat(true);....foreach.($t
62c20 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 his->installedMap.as.$packageId.
62c40 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 =>.$void).{.if.($this->decisions
62c60 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 61 63 6b 61 67 65 49 64 29 29 20 7b 0a 24 74 68 69 73 ->undecided($packageId)).{.$this
62c80 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 2d 24 70 61 63 6b 61 67 65 49 64 2c ->decisions->decide(-$packageId,
62ca0 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c .1,.null);.}.}..if.($this->probl
62cc0 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 ems).{.throw.new.SolverProblemsE
62ce0 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 2c 20 24 74 68 69 73 2d xception($this->problems,.$this-
62d00 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 24 74 72 61 6e 73 61 63 74 69 6f 6e 20 >installedMap);.}..$transaction.
62d20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2c =.new.Transaction($this->policy,
62d40 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 .$this->pool,.$this->installedMa
62d60 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 p,.$this->decisions);..return.$t
62d80 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a ransaction->getOperations();.}..
62da0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 protected.function.literalFromId
62dc0 28 24 69 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e ($id).{.$package.=.$this->pool->
62de0 70 61 63 6b 61 67 65 42 79 49 64 28 61 62 73 28 24 69 64 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6e packageById(abs($id));..return.n
62e00 65 77 20 4c 69 74 65 72 61 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 69 64 20 3e 20 30 29 3b 0a 7d ew.Literal($package,.$id.>.0);.}
62e20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 ...........protected.function.pr
62e40 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e opagate($level).{.while.($this->
62e60 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c 69 64 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 decisions->validOffset($this->pr
62e80 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 opagateIndex)).{.$decision.=.$th
62ea0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 is->decisions->atOffset($this->p
62ec0 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 ropagateIndex);..$conflict.=.$th
62ee0 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c is->watchGraph->propagateLiteral
62f00 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f (.$decision[Decisions::DECISION_
62f20 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c 65 76 65 6c 2c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f LITERAL],.$level,.$this->decisio
62f40 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 2b 2b 3b 0a ns.);..$this->propagateIndex++;.
62f60 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 6c 69 .if.($conflict).{.return.$confli
62f80 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 ct;.}.}..return.null;.}.....priv
62fa0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 ate.function.revert($level).{.wh
62fc0 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 ile.(!$this->decisions->isEmpty(
62fe0 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 )).{.$literal.=.$this->decisions
63000 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 ->lastLiteral();..if.($this->dec
63020 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 isions->undecided($literal)).{.b
63040 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d reak;.}..$decisionLevel.=.$this-
63060 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 >decisions->decisionLevel($liter
63080 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 al);..if.($decisionLevel.<=.$lev
630a0 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 el).{.break;.}..$this->decisions
630c0 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 ->revertLast();.$this->propagate
630e0 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b Index.=.count($this->decisions);
63100 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 .}..while.(!empty($this->branche
63120 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 s).&&.$this->branches[count($thi
63140 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c s->branches).-.1][self::BRANCH_L
63160 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 EVEL].>=.$level).{.array_pop($th
63180 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a is->branches);.}.}..............
631a0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 70 61 67 61 74 65 ...private.function.setPropagate
631c0 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 Learn($level,.$literal,.$disable
631e0 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a Rules,.Rule.$rule).{.$level++;..
63200 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 $this->decisions->decide($litera
63220 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 l,.$level,.$rule);..while.(true)
63240 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 .{.$rule.=.$this->propagate($lev
63260 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 el);..if.(!$rule).{.break;.}..if
63280 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 .($level.==.1).{.return.$this->a
632a0 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 72 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 nalyzeUnsolvable($rule,.$disable
632c0 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 73 74 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c Rules);.}....list($learnLiteral,
632e0 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 2c 20 24 77 68 79 29 20 3d 20 24 74 .$newLevel,.$newRule,.$why).=.$t
63300 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 his->analyze($level,.$rule);..if
63320 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 30 20 7c 7c 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d .($newLevel.<=.0.||.$newLevel.>=
63340 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 .$level).{.throw.new.SolverBugEx
63360 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 72 65 76 65 72 74 20 74 6f 20 69 6e ception(."Trying.to.revert.to.in
63380 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 valid.level.".(int).$newLevel.".
633a0 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b from.level.".(int).$level.".".);
633c0 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 77 52 75 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .}.elseif.(!$newRule).{.throw.ne
633e0 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 w.SolverBugException(."No.rule.w
63400 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d 20 61 6e 61 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 as.learned.from.analyzing.$rule.
63420 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2e 22 0a 29 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d at.level.$level.".);.}..$level.=
63440 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 .$newLevel;..$this->revert($leve
63460 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c l);..$this->rules->add($newRule,
63480 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d .RuleSet::TYPE_LEARNED);..$this-
634a0 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 77 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d >learnedWhy[$newRule->getId()].=
634c0 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 65 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 .$why;..$ruleNode.=.new.RuleWatc
634e0 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b 0a 24 72 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 hNode($newRule);.$ruleNode->watc
63500 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 h2OnHighest($this->decisions);.$
63520 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f this->watchGraph->insert($ruleNo
63540 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 de);..$this->decisions->decide($
63560 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b learnLiteral,.$level,.$newRule);
63580 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 .}..return.$level;.}..private.fu
635a0 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 nction.selectAndInstall($level,.
635c0 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 array.$decisionQueue,.$disableRu
635e0 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 0a 20 24 6c 69 74 65 72 61 6c 73 20 3d les,.Rule.$rule).{...$literals.=
63600 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 .$this->policy->selectPreferedPa
63620 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 ckages($this->pool,.$this->insta
63640 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 72 75 6c 65 2d 3e lledMap,.$decisionQueue,.$rule->
63660 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 29 3b 0a 0a 24 73 65 6c 65 63 74 65 getRequiredPackage());..$selecte
63680 64 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 dLiteral.=.array_shift($literals
636a0 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 24 74 );....if.(count($literals)).{.$t
636c0 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c his->branches[].=.array($literal
636e0 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 74 s,.$level);.}..return.$this->set
63700 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 73 65 6c 65 63 74 65 64 PropagateLearn($level,.$selected
63720 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a Literal,.$disableRules,.$rule);.
63740 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 28 24 6c }..protected.function.analyze($l
63760 65 76 65 6c 2c 20 24 72 75 6c 65 29 0a 7b 0a 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 20 3d 20 24 evel,.$rule).{.$analyzedRule.=.$
63780 72 75 6c 65 3b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 31 3b 0a 24 6e 75 6d 20 3d 20 30 3b 0a rule;.$ruleLevel.=.1;.$num.=.0;.
637a0 24 6c 31 6e 75 6d 20 3d 20 30 3b 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 $l1num.=.0;.$seen.=.array();.$le
637c0 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 0a 24 64 arnedLiterals.=.array(null);..$d
637e0 65 63 69 73 69 6f 6e 49 64 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ecisionId.=.count($this->decisio
63800 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 5d 20 3d 20 61 72 72 ns);..$this->learnedPool[].=.arr
63820 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 65 61 ay();..while.(true).{.$this->lea
63840 72 6e 65 64 50 6f 6f 6c 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f rnedPool[count($this->learnedPoo
63860 6c 29 20 2d 20 31 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 l).-.1][].=.$rule;..foreach.($ru
63880 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b le->getLiterals().as.$literal).{
638a0 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 ...if.($this->decisions->satisfy
638c0 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 ($literal)).{.continue;.}..if.(i
638e0 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f sset($seen[abs($literal)])).{.co
63900 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d ntinue;.}.$seen[abs($literal)].=
63920 20 74 72 75 65 3b 0a 0a 24 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 .true;..$l.=.$this->decisions->d
63940 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 31 20 3d ecisionLevel($literal);..if.(1.=
63960 3d 3d 20 24 6c 29 20 7b 0a 24 6c 31 6e 75 6d 2b 2b 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 ==.$l).{.$l1num++;.}.elseif.($le
63980 76 65 6c 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6e 75 6d 2b 2b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a vel.===.$l).{.$num++;.}.else.{..
639a0 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a .$learnedLiterals[].=.$literal;.
639c0 0a 69 66 20 28 24 6c 20 3e 20 24 72 75 6c 65 4c 65 76 65 6c 29 20 7b 0a 24 72 75 6c 65 4c 65 76 .if.($l.>.$ruleLevel).{.$ruleLev
639e0 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b el.=.$l;.}.}.}..$l1retry.=.true;
63a00 0a 77 68 69 6c 65 20 28 24 6c 31 72 65 74 72 79 29 20 7b 0a 24 6c 31 72 65 74 72 79 20 3d 20 66 .while.($l1retry).{.$l1retry.=.f
63a20 61 6c 73 65 3b 0a 0a 69 66 20 28 21 24 6e 75 6d 20 26 26 20 21 2d 2d 24 6c 31 6e 75 6d 29 20 7b alse;..if.(!$num.&&.!--$l1num).{
63a40 0a 0a 20 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 69 66 ...break.2;.}..while.(true).{.if
63a60 20 28 24 64 65 63 69 73 69 6f 6e 49 64 20 3c 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 .($decisionId.<=.0).{.throw.new.
63a80 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 52 65 61 63 68 65 64 20 69 6e 76 SolverBugException(."Reached.inv
63aa0 61 6c 69 64 20 64 65 63 69 73 69 6f 6e 20 69 64 20 24 64 65 63 69 73 69 6f 6e 49 64 20 77 68 69 alid.decision.id.$decisionId.whi
63ac0 6c 65 20 6c 6f 6f 6b 69 6e 67 20 74 68 72 6f 75 67 68 20 24 72 75 6c 65 20 66 6f 72 20 61 20 6c le.looking.through.$rule.for.a.l
63ae0 69 74 65 72 61 6c 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 61 6e 61 6c 79 7a 65 64 20 72 iteral.present.in.the.analyzed.r
63b00 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 ule.$analyzedRule.".);.}..$decis
63b20 69 6f 6e 49 64 2d 2d 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 ionId--;..$decision.=.$this->dec
63b40 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 49 64 29 3b 0a 24 isions->atOffset($decisionId);.$
63b60 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 literal.=.$decision[Decisions::D
63b80 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 ECISION_LITERAL];..if.(isset($se
63ba0 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d en[abs($literal)])).{.break;.}.}
63bc0 0a 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 0a ..unset($seen[abs($literal)]);..
63be0 69 66 20 28 24 6e 75 6d 20 26 26 20 30 20 3d 3d 3d 20 2d 2d 24 6e 75 6d 29 20 7b 0a 24 6c 65 61 if.($num.&&.0.===.--$num).{.$lea
63c00 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 20 3d 20 2d 61 62 73 28 24 6c 69 74 65 72 61 6c 29 rnedLiterals[0].=.-abs($literal)
63c20 3b 0a 0a 69 66 20 28 21 24 6c 31 6e 75 6d 29 20 7b 0a 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 66 6f ;..if.(!$l1num).{.break.2;.}..fo
63c40 72 65 61 63 68 20 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e reach.($learnedLiterals.as.$i.=>
63c60 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 3d 20 30 .$learnedLiteral).{.if.($i.!==.0
63c80 29 20 7b 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 ).{.unset($seen[abs($learnedLite
63ca0 72 61 6c 29 5d 29 3b 0a 7d 0a 7d 0a 0a 20 24 6c 31 6e 75 6d 2b 2b 3b 0a 24 6c 31 72 65 74 72 79 ral)]);.}.}...$l1num++;.$l1retry
63cc0 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d .=.true;.}.}..$decision.=.$this-
63ce0 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 49 64 >decisions->atOffset($decisionId
63d00 29 3b 0a 24 72 75 6c 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a );.$rule.=.$decision[Decisions::
63d20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 63 6f 75 6e DECISION_REASON];.}..$why.=.coun
63d40 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 3b 0a 0a 69 66 20 28 t($this->learnedPool).-.1;..if.(
63d60 21 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 !$learnedLiterals[0]).{.throw.ne
63d80 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 44 69 64 20 6e 6f 74 20 66 w.SolverBugException(."Did.not.f
63da0 69 6e 64 20 61 20 6c 65 61 72 6e 61 62 6c 65 20 6c 69 74 65 72 61 6c 20 69 6e 20 61 6e 61 6c 79 ind.a.learnable.literal.in.analy
63dc0 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 zed.rule.$analyzedRule.".);.}..$
63de0 6e 65 77 52 75 6c 65 20 3d 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 newRule.=.new.Rule($this->pool,.
63e00 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4c 45 41 $learnedLiterals,.Rule::RULE_LEA
63e20 52 4e 45 44 2c 20 24 77 68 79 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6c 65 61 72 RNED,.$why);..return.array($lear
63e40 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 2c 20 24 72 75 6c 65 4c 65 76 65 6c 2c 20 24 6e 65 77 nedLiterals[0],.$ruleLevel,.$new
63e60 52 75 6c 65 2c 20 24 77 68 79 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e Rule,.$why);.}..private.function
63e80 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c .analyzeUnsolvableRule($problem,
63ea0 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 0a 7b 0a 24 77 68 79 20 3d 20 24 63 6f 6e 66 6c 69 .$conflictRule).{.$why.=.$confli
63ec0 63 74 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 ctRule->getId();..if.($conflictR
63ee0 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f ule->getType().==.RuleSet::TYPE_
63f00 4c 45 41 52 4e 45 44 29 20 7b 0a 24 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 24 74 68 69 73 2d 3e LEARNED).{.$learnedWhy.=.$this->
63f20 6c 65 61 72 6e 65 64 57 68 79 5b 24 77 68 79 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 learnedWhy[$why];.$problemRules.
63f40 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 6c 65 61 72 6e 65 64 57 68 79 =.$this->learnedPool[$learnedWhy
63f60 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 ];..foreach.($problemRules.as.$p
63f80 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f roblemRule).{.$this->analyzeUnso
63fa0 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 70 72 6f 62 6c 65 6d 52 75 6c lvableRule($problem,.$problemRul
63fc0 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 e);.}..return;.}..if.($conflictR
63fe0 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f ule->getType().==.RuleSet::TYPE_
64000 50 41 43 4b 41 47 45 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d PACKAGE).{...return;.}..$problem
64020 2d 3e 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 ->nextSection();.$problem->addRu
64040 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 le($conflictRule);.}..private.fu
64060 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 nction.analyzeUnsolvable($confli
64080 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 0a 7b 0a 24 70 72 6f 62 6c 65 ctRule,.$disableRules).{.$proble
640a0 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 m.=.new.Problem($this->pool);.$p
640c0 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a roblem->addRule($conflictRule);.
640e0 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 .$this->analyzeUnsolvableRule($p
64100 72 6f 62 6c 65 6d 2c 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e roblem,.$conflictRule);..$this->
64120 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 problems[].=.$problem;..$seen.=.
64140 61 72 72 61 79 28 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 array();.$literals.=.$conflictRu
64160 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 le->getLiterals();..foreach.($li
64180 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 terals.as.$literal).{...if.($thi
641a0 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 s->decisions->satisfy($literal))
641c0 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 .{.continue;.}.$seen[abs($litera
641e0 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 l)].=.true;.}..foreach.($this->d
64200 65 63 69 73 69 6f 6e 73 20 61 73 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 ecisions.as.$decision).{.$litera
64220 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f l.=.$decision[Decisions::DECISIO
64240 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 65 65 6e 5b N_LITERAL];....if.(!isset($seen[
64260 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a abs($literal)])).{.continue;.}..
64280 24 77 68 79 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 $why.=.$decision[Decisions::DECI
642a0 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 SION_REASON];..$problem->addRule
642c0 28 24 77 68 79 29 3b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 ($why);.$this->analyzeUnsolvable
642e0 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 Rule($problem,.$why);..$literals
64300 20 3d 20 24 77 68 79 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 .=.$why->getLiterals();..foreach
64320 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 .($literals.as.$literal).{...if.
64340 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 ($this->decisions->satisfy($lite
64360 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c ral)).{.continue;.}.$seen[abs($l
64380 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 iteral)].=.true;.}.}..if.($disab
643a0 6c 65 52 75 6c 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c leRules).{.foreach.($this->probl
643c0 65 6d 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 ems[count($this->problems).-.1].
643e0 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 as.$reason).{.$this->disableProb
64400 6c 65 6d 28 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e lem($reason['rule']);.}..$this->
64420 72 65 73 65 74 53 6f 6c 76 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 resetSolver();..return.1;.}..ret
64440 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 urn.0;.}..private.function.disab
64460 6c 65 50 72 6f 62 6c 65 6d 28 24 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 leProblem($why).{.$job.=.$why->g
64480 65 74 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 etJob();..if.(!$job).{.$why->dis
644a0 61 62 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 able();..return;.}....foreach.($
644c0 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 this->rules.as.$rule).{.if.($job
644e0 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 .===.$rule->getJob()).{.$rule->d
64500 69 73 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f isable();.}.}.}..private.functio
64520 6e 20 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f n.resetSolver().{.$this->decisio
64540 6e 73 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e ns->reset();..$this->propagateIn
64560 64 65 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 dex.=.0;.$this->branches.=.array
64580 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 ();..$this->enableDisableLearned
645a0 52 75 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c Rules();.$this->makeAssertionRul
645c0 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 eDecisions();.}.........private.
645e0 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c function.enableDisableLearnedRul
64600 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 es().{.foreach.($this->rules->ge
64620 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e tIteratorFor(RuleSet::TYPE_LEARN
64640 45 44 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 ED).as.$rule).{.$why.=.$this->le
64660 61 72 6e 65 64 57 68 79 5b 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c arnedWhy[$rule->getId()];.$probl
64680 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 emRules.=.$this->learnedPool[$wh
646a0 79 5d 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 y];..$foundDisabled.=.false;.for
646c0 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 each.($problemRules.as.$problemR
646e0 75 6c 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 ule).{.if.($problemRule->isDisab
64700 6c 65 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a led()).{.$foundDisabled.=.true;.
64720 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 break;.}.}..if.($foundDisabled.&
64740 26 20 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 &.$rule->isEnabled()).{.$rule->d
64760 69 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 isable();.}.elseif.(!$foundDisab
64780 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 led.&&.$rule->isDisabled()).{.$r
647a0 75 6c 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ule->enable();.}.}.}..private.fu
647c0 6e 63 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 nction.runSat($disableRules.=.tr
647e0 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b ue).{.$this->propagateIndex.=.0;
64800 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 ....................$decisionQue
64820 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e ue.=.array();.$decisionSupplemen
64840 74 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 tQueue.=.array();.$disableRules.
64860 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c =.array();..$level.=.1;.$systemL
64880 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 evel.=.$level.+.1;.$installedPos
648a0 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d .=.0;..while.(true).{..if.(1.===
648c0 20 24 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 .$level).{.$conflictRule.=.$this
648e0 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d ->propagate($level);.if.(null.!=
64900 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e =.$conflictRule).{.if.($this->an
64920 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 alyzeUnsolvable($conflictRule,.$
64940 64 69 73 61 62 6c 65 52 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 disableRules)).{.continue;.}..re
64960 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 turn;.}.}....if.($level.<.$syste
64980 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c mLevel).{.$iterator.=.$this->rul
649a0 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 es->getIteratorFor(RuleSet::TYPE
649c0 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 _JOB);.foreach.($iterator.as.$ru
649e0 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a le).{.if.($rule->isEnabled()).{.
64a00 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 $decisionQueue.=.array();.$noneS
64a20 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 atisfied.=.true;..foreach.($rule
64a40 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 ->getLiterals().as.$literal).{.i
64a60 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 f.($this->decisions->satisfy($li
64a80 74 65 72 61 6c 29 29 20 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 teral)).{.$noneSatisfied.=.false
64aa0 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 ;.break;.}.if.($literal.>.0.&&.$
64ac0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 this->decisions->undecided($lite
64ae0 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 ral)).{.$decisionQueue[].=.$lite
64b00 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 ral;.}.}..if.($noneSatisfied.&&.
64b20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 count($decisionQueue)).{.....if.
64b40 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e (count($this->installed).!=.coun
64b60 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 t($this->updateMap)).{.$prunedQu
64b80 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f eue.=.array();.foreach.($decisio
64ba0 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 nQueue.as.$literal).{.if.(isset(
64bc0 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c $this->installedMap[abs($literal
64be0 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c )])).{.$prunedQueue[].=.$literal
64c00 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 ;.if.(isset($this->updateMap[abs
64c20 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 ($literal)])).{.$prunedQueue.=.$
64c40 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 decisionQueue;.break;.}.}.}.$dec
64c60 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a isionQueue.=.$prunedQueue;.}.}..
64c80 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 if.($noneSatisfied.&&.count($dec
64ca0 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c isionQueue)).{..$oLevel.=.$level
64cc0 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 ;.$level.=.$this->selectAndInsta
64ce0 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 ll($level,.$decisionQueue,.$disa
64d00 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 bleRules,.$rule);..if.(0.===.$le
64d20 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 vel).{.return;.}.if.($level.<=.$
64d40 6f 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 oLevel).{.break;.}.}.}.}..$syste
64d60 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f mLevel.=.$level.+.1;....$iterato
64d80 72 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 r->next();.if.($iterator->valid(
64da0 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c )).{.continue;.}.}..if.($level.<
64dc0 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 .$systemLevel).{.$systemLevel.=.
64de0 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 $level;.}..for.($i.=.0,.$n.=.0;.
64e00 24 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 $n.<.count($this->rules);.$i++,.
64e20 24 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 $n++).{.if.($i.==.count($this->r
64e40 75 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 ules)).{.$i.=.0;.}..$rule.=.$thi
64e60 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 28 24 69 29 3b 0a 24 6c 69 74 65 72 61 6c s->rules->ruleById($i);.$literal
64e80 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 69 66 20 28 24 s.=.$rule->getLiterals();..if.($
64ea0 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a rule->isDisabled()).{.continue;.
64ec0 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 }..$decisionQueue.=.array();....
64ee0 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 ..........foreach.($literals.as.
64f00 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b $literal).{.if.($literal.<=.0).{
64f20 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 .if.(!$this->decisions->decidedI
64f40 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 nstall(abs($literal))).{.continu
64f60 65 20 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 e.2;...}.}.else.{.if.($this->dec
64f80 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 isions->decidedInstall(abs($lite
64fa0 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 ral))).{.continue.2;...}.if.($th
64fc0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 is->decisions->undecided(abs($li
64fe0 74 65 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c teral))).{.$decisionQueue[].=.$l
65000 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 iteral;.}.}.}....if.(count($deci
65020 73 69 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 sionQueue).<.2).{.continue;.}..$
65040 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d oLevel.=.$level;.$level.=.$this-
65060 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 >selectAndInstall($level,.$decis
65080 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b ionQueue,.$disableRules,.$rule);
650a0 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a ..if.(0.===.$level).{.return;.}.
650c0 0a 0a 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 ...$n.=.-1;.}..if.($level.<.$sys
650e0 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 temLevel).{.continue;.}....if.(c
65100 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 24 6c 61 73 74 4c ount($this->branches)).{..$lastL
65120 69 74 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c iteral.=.null;.$lastLevel.=.null
65140 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 ;.$lastBranchIndex.=.0;.$lastBra
65160 6e 63 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 nchOffset.=.0;.$l.=.0;..for.($i.
65180 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 =.count($this->branches).-.1;.$i
651a0 20 3e 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 .>=.0;.$i--).{.list($literals,.$
651c0 6c 29 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 l).=.$this->branches[$i];..forea
651e0 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 ch.($literals.as.$offset.=>.$lit
65200 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c eral).{.if.($literal.&&.$literal
65220 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 .>.0.&&.$this->decisions->decisi
65240 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c onLevel($literal).>.$l.+.1).{.$l
65260 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e astLiteral.=.$literal;.$lastBran
65280 63 68 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 chIndex.=.$i;.$lastBranchOffset.
652a0 3d 20 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a =.$offset;.$lastLevel.=.$l;.}.}.
652c0 7d 0a 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 }..if.($lastLiteral).{.unset($th
652e0 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 is->branches[$lastBranchIndex][s
65300 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 elf::BRANCH_LITERALS][$lastBranc
65320 68 4f 66 66 73 65 74 5d 29 3b 0a 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 62 hOffset]);.array_values($this->b
65340 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a ranches[$lastBranchIndex][self::
65360 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 BRANCH_LITERALS]);..$level.=.$la
65380 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a stLevel;.$this->revert($level);.
653a0 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 .$why.=.$this->decisions->lastRe
653c0 61 73 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 ason();..$oLevel.=.$level;.$leve
653e0 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 l.=.$this->setPropagateLearn($le
65400 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 vel,.$lastLiteral,.$disableRules
65420 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 ,.$why);..if.($level.==.0).{.ret
65440 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a urn;.}..continue;.}.}..break;.}.
65460 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
65480 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 omposer\DependencyResolver;..use
654a0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
654c0 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c \LinkConstraintInterface;.....cl
654e0 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 ass.Request.{.protected.$jobs;.p
65500 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rotected.$pool;..public.function
65520 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 .__construct(Pool.$pool).{.$this
65540 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 ->pool.=.$pool;.$this->jobs.=.ar
65560 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c ray();.}..public.function.instal
65580 6c 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e l($packageName,.LinkConstraintIn
655a0 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 terface.$constraint.=.null).{.$t
655c0 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 his->addJob($packageName,.'insta
655e0 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ll',.$constraint);.}..public.fun
65600 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 ction.update($packageName,.LinkC
65620 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d onstraintInterface.$constraint.=
65640 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e .null).{.$this->addJob($packageN
65660 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a ame,.'update',.$constraint);.}..
65680 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e public.function.remove($packageN
656a0 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f ame,.LinkConstraintInterface.$co
656c0 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 nstraint.=.null).{.$this->addJob
656e0 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 ($packageName,.'remove',.$constr
65700 61 69 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 aint);.}..protected.function.add
65720 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 Job($packageName,.$cmd,.LinkCons
65740 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 traintInterface.$constraint.=.nu
65760 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 ll).{.$packageName.=.strtolower(
65780 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 $packageName);.$packages.=.$this
657a0 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d ->pool->whatProvides($packageNam
657c0 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 e,.$constraint);..$this->jobs[].
657e0 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 =.array(.'packages'.=>.$packages
65800 2c 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d ,.'cmd'.=>.$cmd,.'packageName'.=
65820 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 >.$packageName,.'constraint'.=>.
65840 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $constraint,.);.}..public.functi
65860 6f 6e 20 75 70 64 61 74 65 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d on.updateAll().{.$this->jobs[].=
65880 20 61 72 72 61 79 28 27 63 6d 64 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 .array('cmd'.=>.'update-all',.'p
658a0 61 63 6b 61 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ackages'.=>.array());.}..public.
658c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getJobs().{.return.$thi
658e0 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 s->jobs;.}.}.<?php............na
65900 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c mespace.Composer\DependencyResol
65920 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 ver;.......class.Problem.{.....p
65940 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 rotected.$reasonSeen;......prote
65960 63 74 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 cted.$reasons.=.array();..protec
65980 74 65 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f ted.$section.=.0;..protected.$po
659a0 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 ol;..public.function.__construct
659c0 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f (Pool.$pool).{.$this->pool.=.$po
659e0 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 ol;.}.......public.function.addR
65a00 75 6c 65 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 61 73 ule(Rule.$rule).{.$this->addReas
65a20 6f 6e 28 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 2c 20 61 72 72 61 79 28 0a 27 72 75 6c 65 27 on($rule->getId(),.array(.'rule'
65a40 20 3d 3e 20 24 72 75 6c 65 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f .=>.$rule,.'job'.=>.$rule->getJo
65a60 62 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e b(),.));.}.......public.function
65a80 20 67 65 74 52 65 61 73 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 .getReasons().{.return.$this->re
65aa0 61 73 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 asons;.}........public.function.
65ac0 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 getPrettyString(array.$installed
65ae0 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 65 61 73 6f 6e 73 20 3d 20 63 61 6c 6c Map.=.array()).{.$reasons.=.call
65b00 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 _user_func_array('array_merge',.
65b20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 29 3b 0a array_reverse($this->reasons));.
65b40 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 61 73 6f 6e 73 29 20 3d 3d 3d 20 31 29 20 7b 0a 72 65 .if.(count($reasons).===.1).{.re
65b60 73 65 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 63 75 72 72 65 6e 74 set($reasons);.$reason.=.current
65b80 28 24 72 65 61 73 6f 6e 73 29 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 ($reasons);..$rule.=.$reason['ru
65ba0 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 le'];.$job.=.$reason['job'];..if
65bc0 20 28 24 6a 6f 62 20 26 26 20 24 6a 6f 62 5b 27 63 6d 64 27 5d 20 3d 3d 3d 20 27 69 6e 73 74 61 .($job.&&.$job['cmd'].===.'insta
65be0 6c 6c 27 20 26 26 20 65 6d 70 74 79 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 20 ll'.&&.empty($job['packages'])).
65c00 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 5b 27 70 61 63 6b {...if.(0.===.stripos($job['pack
65c20 61 67 65 4e 61 6d 65 27 5d 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 73 75 62 ageName'],.'ext-')).{.$ext.=.sub
65c40 73 74 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 34 29 3b 0a 24 65 72 str($job['packageName'],.4);.$er
65c60 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 20 3f 20 27 ror.=.extension_loaded($ext).?.'
65c80 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 70 68 70 76 65 72 73 has.the.wrong.version.('.phpvers
65ca0 69 6f 6e 28 24 65 78 74 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 ion($ext).').installed'.:.'is.mi
65cc0 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 72 65 74 75 72 6e ssing.from.your.system';..return
65ce0 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 ."\n....-.The.requested.PHP.exte
65d00 6e 73 69 6f 6e 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 nsion.".$job['packageName'].$thi
65d20 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 s->constraintToText($job['constr
65d40 61 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 aint']).'.'.$error.'.';.}....if.
65d60 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 (0.===.stripos($job['packageName
65d80 27 5d 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6a '],.'lib-')).{.if.(strtolower($j
65da0 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 20 3d 3d 3d 20 27 6c 69 62 2d 69 63 75 27 ob['packageName']).===.'lib-icu'
65dc0 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 69 ).{.$error.=.extension_loaded('i
65de0 6e 74 6c 27 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 ntl').?.'has.the.wrong.version.i
65e00 6e 73 74 61 6c 6c 65 64 2c 20 74 72 79 20 75 70 67 72 61 64 69 6e 67 20 74 68 65 20 69 6e 74 6c nstalled,.try.upgrading.the.intl
65e20 20 65 78 74 65 6e 73 69 6f 6e 2e 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 .extension.'.:.'is.missing.from.
65e40 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e 74 6c 20 your.system,.make.sure.the.intl.
65e60 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2e 27 3b 0a 0a 72 65 74 75 72 6e 20 22 extension.is.loaded.';..return."
65e80 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 \n....-.The.requested.linked.lib
65ea0 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 rary.".$job['packageName'].$this
65ec0 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 ->constraintToText($job['constra
65ee0 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e int']).'.'.$error;.}..return."\n
65f00 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 ....-.The.requested.linked.libra
65f20 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e ry.".$job['packageName'].$this->
65f40 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e constraintToText($job['constrain
65f60 74 27 5d 29 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 t']).'.has.the.wrong.version.ins
65f80 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 talled.or.is.missing.from.your.s
65fa0 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 6c 6f 61 64 20 74 68 65 20 65 78 74 ystem,.make.sure.to.load.the.ext
65fc0 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 70 ension.providing.it.';.}..if.(!p
65fe0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 reg_match('{^[A-Za-z0-9_./-]+$}'
66000 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 24 69 6c 6c 65 67 ,.$job['packageName'])).{.$illeg
66020 61 6c 43 68 61 72 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 41 2d 5a 61 2d 7a alChars.=.preg_replace('{[A-Za-z
66040 30 2d 39 5f 2e 2f 2d 5d 2b 7d 27 2c 20 27 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 0-9_./-]+}',.'',.$job['packageNa
66060 6d 65 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 me']);..return."\n....-.The.requ
66080 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d ested.package.".$job['packageNam
660a0 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2c 20 69 74 20 6c 6f 6f e'].'.could.not.be.found,.it.loo
660c0 6b 73 20 6c 69 6b 65 20 69 74 73 20 6e 61 6d 65 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 22 27 2e ks.like.its.name.is.invalid,."'.
660e0 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 2e 27 22 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 $illegalChars.'".is.not.allowed.
66100 69 6e 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 in.package.names.';.}..if.(!$thi
66120 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b s->pool->whatProvides($job['pack
66140 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 ageName'])).{.return."\n....-.Th
66160 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b e.requested.package.".$job['pack
66180 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 ageName'].'.could.not.be.found.i
661a0 6e 20 61 6e 79 20 76 65 72 73 69 6f 6e 2c 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 74 79 n.any.version,.there.may.be.a.ty
661c0 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 po.in.the.package.name.';.}..ret
661e0 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 urn."\n....-.The.requested.packa
66200 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e ge.".$job['packageName'].$this->
66220 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e constraintToText($job['constrain
66240 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d t']).'.could.not.be.found.';.}.}
66260 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ..$messages.=.array();..foreach.
66280 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 ($reasons.as.$reason).{.$rule.=.
662a0 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b $reason['rule'];.$job.=.$reason[
662c0 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 'job'];..if.($job).{.$messages[]
662e0 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 .=.$this->jobToText($job);.}.els
66300 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 eif.($rule).{.if.($rule.instance
66320 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e of.Rule).{.$messages[].=.$rule->
66340 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a getPrettyString($installedMap);.
66360 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 }.}.}..return."\n....-.".implode
66380 28 22 5c 6e 20 20 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ("\n....-.",.$messages);.}......
663a0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 ..protected.function.addReason($
663c0 69 64 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d id,.$reason).{.if.(!isset($this-
663e0 3e 72 65 61 73 6f 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 >reasonSeen[$id])).{.$this->reas
66400 6f 6e 53 65 65 6e 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f onSeen[$id].=.true;.$this->reaso
66420 6e 73 5b 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a ns[$this->section][].=.$reason;.
66440 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e }.}..public.function.nextSection
66460 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ().{.$this->section++;.}........
66480 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f protected.function.jobToText($jo
664a0 62 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 b).{.switch.($job['cmd']).{.case
664c0 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 .'install':.if.(!$job['packages'
664e0 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 20 74 6f ]).{.return.'No.package.found.to
66500 20 73 61 74 69 73 66 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 .satisfy.install.request.for.'.$
66520 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 job['packageName'].$this->constr
66540 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a aintToText($job['constraint']);.
66560 7d 0a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 }..return.'Installation.request.
66580 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d for.'.$job['packageName'].$this-
665a0 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 >constraintToText($job['constrai
665c0 6e 74 27 5d 29 2e 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 24 74 68 69 nt']).'.->.satisfiable.by.'.$thi
665e0 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 s->getPackageList($job['packages
66600 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 ']).'.';.case.'update':.return.'
66620 55 70 64 61 74 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 Update.request.for.'.$job['packa
66640 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 geName'].$this->constraintToText
66660 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 ($job['constraint']).'.';.case.'
66680 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 remove':.return.'Removal.request
666a0 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 .for.'.$job['packageName'].$this
666c0 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 ->constraintToText($job['constra
666e0 69 6e 74 27 5d 29 2e 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e int']).'';.}..return.'Job(cmd='.
66700 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 2c 20 74 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 $job['cmd'].',.target='.$job['pa
66720 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 2c 20 70 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 ckageName'].',.packages=['.$this
66740 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 ->getPackageList($job['packages'
66760 5d 29 2e 27 5d 29 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 ]).'])';.}..protected.function.g
66780 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 etPackageList($packages).{.$prep
667a0 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 ared.=.array();.foreach.($packag
667c0 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 es.as.$package).{.$prepared[$pac
667e0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b kage->getName()]['name'].=.$pack
66800 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b age->getPrettyName();.$prepared[
66820 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d $package->getName()]['versions']
66840 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b [$package->getVersion()].=.$pack
66860 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 age->getPrettyVersion();.}.forea
66880 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 ch.($prepared.as.$name.=>.$packa
668a0 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 ge).{.$prepared[$name].=.$packag
668c0 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 e['name'].'['.implode(',.',.$pac
668e0 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e kage['versions']).']';.}..return
66900 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a .implode(',.',.$prepared);.}....
66920 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e ....protected.function.constrain
66940 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 tToText($constraint).{.return.($
66960 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 constraint).?.'.'.$constraint->g
66980 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 20 3a 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 etPrettyString().:.'';.}.}.<?php
669a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
669c0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c ependencyResolver;............cl
669e0 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 ass.RuleWatchGraph.{.protected.$
66a00 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a watchChains.=.array();..........
66a20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 57 ....public.function.insert(RuleW
66a40 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 74 atchNode.$node).{.if.($node->get
66a60 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b Rule()->isAssertion()).{.return;
66a80 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 31 .}..foreach.(array($node->watch1
66aa0 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a ,.$node->watch2).as.$literal).{.
66ac0 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c if.(!isset($this->watchChains[$l
66ae0 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 iteral])).{.$this->watchChains[$
66b00 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d literal].=.new.RuleWatchChain;.}
66b20 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e ..$this->watchChains[$literal]->
66b40 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a unshift($node);.}.}.............
66b60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 ............public.function.prop
66b80 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 6c agateLiteral($decidedLiteral,.$l
66ba0 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 72 evel,.$decisions).{.......$liter
66bc0 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 73 al.=.-$decidedLiteral;..if.(!iss
66be0 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 et($this->watchChains[$literal])
66c00 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 68 ).{.return.null;.}..$chain.=.$th
66c20 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 is->watchChains[$literal];..$cha
66c40 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 6c in->rewind();.while.($chain->val
66c60 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 28 id()).{.$node.=.$chain->current(
66c80 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 72 );.$otherWatch.=.$node->getOther
66ca0 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 65 Watch($literal);..if.(!$node->ge
66cc0 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 73 tRule()->isDisabled().&&.!$decis
66ce0 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 72 ions->satisfy($otherWatch)).{.$r
66d00 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e uleLiterals.=.$node->getRule()->
66d20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 getLiterals();..$alternativeLite
66d40 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c rals.=.array_filter($ruleLiteral
66d60 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 s,.function.($ruleLiteral).use.(
66d80 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e $literal,.$otherWatch,.$decision
66da0 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 s).{.return.$literal.!==.$ruleLi
66dc0 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 teral.&&.$otherWatch.!==.$ruleLi
66de0 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 teral.&&.!$decisions->conflict($
66e00 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 ruleLiteral);.});..if.($alternat
66e20 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 iveLiterals).{.reset($alternativ
66e40 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 eLiterals);.$this->moveWatch($li
66e60 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 teral,.current($alternativeLiter
66e80 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 als),.$node);.continue;.}..if.($
66ea0 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 decisions->conflict($otherWatch)
66ec0 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a ).{.return.$node->getRule();.}..
66ee0 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 $decisions->decide($otherWatch,.
66f00 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 $level,.$node->getRule());.}..$c
66f20 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a hain->next();.}..return.null;.}.
66f40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 ..........protected.function.mov
66f60 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 2c eWatch($fromLiteral,.$toLiteral,
66f80 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 .$node).{.if.(!isset($this->watc
66fa0 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 hChains[$toLiteral])).{.$this->w
66fc0 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c atchChains[$toLiteral].=.new.Rul
66fe0 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 eWatchChain;.}..$node->moveWatch
67000 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 ($fromLiteral,.$toLiteral);.$thi
67020 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 s->watchChains[$fromLiteral]->re
67040 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 move();.$this->watchChains[$toLi
67060 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 teral]->unshift($node);.}.}.<?ph
67080 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
670a0 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 53 Config;........interface.ConfigS
670c0 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ourceInterface.{.......public.fu
670e0 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e nction.addRepository($name,.$con
67100 66 69 67 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f fig);.......public.function.remo
67120 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c veRepository($name);........publ
67140 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 ic.function.addConfigSetting($na
67160 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 me,.$value);.......public.functi
67180 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b 0a 0a on.removeConfigSetting($name);..
671a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 .......public.function.addLink($
671c0 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 type,.$name,.$value);........pub
671e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 lic.function.removeLink($type,.$
67200 6e 61 6d 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 name);.}.<?php............namesp
67220 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 ace.Composer\Config;..use.Compos
67240 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a er\Json\JsonFile;.use.Composer\J
67260 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 son\JsonManipulator;........clas
67280 73 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f s.JsonConfigSource.implements.Co
672a0 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 nfigSourceInterface.{.private.$f
672c0 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a ile;.private.$manipulator;......
672e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f .public.function.__construct(Jso
67300 6e 46 69 6c 65 20 24 66 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 nFile.$file).{.$this->file.=.$fi
67320 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 le;.}.....public.function.addRep
67340 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d ository($name,.$config).{.$this-
67360 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 74 6f 72 79 27 2c >manipulateJson('addRepository',
67380 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e .$name,.$config,.function.(&$con
673a0 66 69 67 2c 20 24 72 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 fig,.$repo,.$repoConfig).{.$conf
673c0 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 3d 20 24 72 65 70 ig['repositories'][$repo].=.$rep
673e0 6f 43 6f 6e 66 69 67 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 oConfig;.});.}.....public.functi
67400 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 on.removeRepository($name).{.$th
67420 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 6f 73 69 is->manipulateJson('removeReposi
67440 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 tory',.$name,.function.(&$config
67460 2c 20 24 72 65 70 6f 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 ,.$repo).{.unset($config['reposi
67480 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c tories'][$repo]);.});.}.....publ
674a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 ic.function.addConfigSetting($na
674c0 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a me,.$value).{.$this->manipulateJ
674e0 73 6f 6e 28 27 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 24 son('addConfigSetting',.$name,.$
67500 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 2c value,.function.(&$config,.$key,
67520 20 24 76 61 6c 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d .$val).{.$config['config'][$key]
67540 20 3d 20 24 76 61 6c 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .=.$val;.});.}.....public.functi
67560 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a on.removeConfigSetting($name).{.
67580 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e $this->manipulateJson('removeCon
675a0 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 figSetting',.$name,.function.(&$
675c0 63 6f 6e 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 config,.$key).{.unset($config['c
675e0 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 onfig'][$key]);.});.}.....public
67600 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 .function.addLink($type,.$name,.
67620 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 $value).{.$this->manipulateJson(
67640 27 61 64 64 4c 69 6e 6b 27 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 'addLink',.$type,.$name,.$value,
67660 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d .function.(&$config,.$type,.$nam
67680 65 2c 20 24 76 61 6c 75 65 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d e,.$value).{.$config[$type][$nam
676a0 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 e].=.$value;.});.}.....public.fu
676c0 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 0a nction.removeLink($type,.$name).
676e0 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 53 {.$this->manipulateJson('removeS
67700 75 62 4e 6f 64 65 27 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 ubNode',.$type,.$name,.function.
67720 28 26 24 63 6f 6e 66 69 67 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 (&$config,.$type,.$name).{.unset
67740 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a ($config[$type][$name]);.});.}..
67760 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f protected.function.manipulateJso
67780 6e 28 24 6d 65 74 68 6f 64 2c 20 24 61 72 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 n($method,.$args,.$fallback).{.$
677a0 61 72 67 73 20 3d 20 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f args.=.func_get_args();...array_
677c0 73 68 69 66 74 28 24 61 72 67 73 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f shift($args);.$fallback.=.array_
677e0 70 6f 70 28 24 61 72 67 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 pop($args);..if.($this->file->ex
67800 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 ists()).{.$contents.=.file_get_c
67820 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b ontents($this->file->getPath());
67840 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 20 20 20 20 5c 22 .}.else.{.$contents.=."{\n....\"
67860 63 6f 6e 66 69 67 5c 22 3a 20 7b 5c 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b 0a 7d 0a 24 6d 61 6e config\":.{\n....}\n}\n";.}.$man
67880 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 ipulator.=.new.JsonManipulator($
678a0 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 24 6e 65 77 46 69 6c 65 20 3d 20 21 24 74 68 69 73 2d 3e 66 contents);..$newFile.=.!$this->f
678c0 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 3b 0a 0a 0a 20 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f ile->exists();....if.(call_user_
678e0 66 75 6e 63 5f 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 func_array(array($manipulator,.$
67900 6d 65 74 68 6f 64 29 2c 20 24 61 72 67 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 method),.$args)).{.file_put_cont
67920 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 ents($this->file->getPath(),.$ma
67940 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 nipulator->getContents());.}.els
67960 65 20 7b 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 e.{...$config.=.$this->file->rea
67980 64 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 d();.array_unshift($args,.$confi
679a0 67 29 3b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 66 61 6c 6c 62 61 g);.call_user_func_array($fallba
679c0 63 6b 2c 20 24 61 72 67 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 ck,.$args);.$this->file->write($
679e0 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 46 69 6c 65 29 20 7b 0a 40 63 68 6d config);.}..if.($newFile).{.@chm
67a00 6f 64 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 od($this->file->getPath(),.0600)
67a20 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.}.}.}.<?php............namespa
67a40 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ce.Composer\Plugin;.......class.
67a60 50 6c 75 67 69 6e 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 43 4f 4d PluginEvents.{.........const.COM
67a80 4d 41 4e 44 20 3d 20 27 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 MAND.=.'command';..........const
67aa0 20 50 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 20 3d 20 27 70 72 65 2d 66 69 6c 65 2d 64 .PRE_FILE_DOWNLOAD.=.'pre-file-d
67ac0 6f 77 6e 6c 6f 61 64 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ownload';.}.<?php............nam
67ae0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d espace.Composer\Plugin;..use.Com
67b00 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 poser\IO\IOInterface;.use.Compos
67b20 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 er\EventDispatcher\Event;.use.Sy
67b40 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e mfony\Component\Console\Input\In
67b60 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e putInterface;.use.Symfony\Compon
67b80 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ent\Console\Output\OutputInterfa
67ba0 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 ce;.......class.CommandEvent.ext
67bc0 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 ends.Event.{....private.$command
67be0 4e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 0a 0a 0a 0a 70 72 Name;.....private.$input;.....pr
67c00 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ivate.$output;..........public.f
67c20 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d unction.__construct($name,.$comm
67c40 61 6e 64 4e 61 6d 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 70 61 72 65 andName,.$input,.$output).{.pare
67c60 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 63 nt::__construct($name);.$this->c
67c80 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 24 74 68 69 73 ommandName.=.$commandName;.$this
67ca0 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 ->input.=.$input;.$this->output.
67cc0 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$output;.}.......public.functi
67ce0 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e on.getInput().{.return.$this->in
67d00 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 put;.}.......public.function.get
67d20 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b Output().{.return.$this->output;
67d40 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d .}.......public.function.getComm
67d60 61 6e 64 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e andName().{.return.$this->comman
67d80 64 4e 61 6d 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 dName;.}.}.<?php............name
67da0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 space.Composer\Plugin;..use.Comp
67dc0 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 oser\Composer;.use.Composer\IO\I
67de0 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 OInterface;.use.Composer\EventDi
67e00 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 spatcher\Event;.use.Composer\Uti
67e20 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 l\RemoteFilesystem;.......class.
67e40 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 PreFileDownloadEvent.extends.Eve
67e60 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 nt.{....private.$rfs;.....privat
67e80 65 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 e.$processedUrl;.........public.
67ea0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 52 65 6d 6f function.__construct($name,.Remo
67ec0 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c teFilesystem.$rfs,.$processedUrl
67ee0 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a ).{.parent::__construct($name);.
67f00 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 $this->rfs.=.$rfs;.$this->proces
67f20 73 65 64 55 72 6c 20 3d 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a sedUrl.=.$processedUrl;.}.......
67f40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 public.function.getRemoteFilesys
67f60 74 65 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 3b 0a 7d 0a 0a 0a 0a tem().{.return.$this->rfs;.}....
67f80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6d 6f 74 65 46 69 6c 65 ...public.function.setRemoteFile
67fa0 73 79 73 74 65 6d 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a system(RemoteFilesystem.$rfs).{.
67fc0 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $this->rfs.=.$rfs;.}.......publi
67fe0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 65 64 55 72 6c 28 29 0a 7b 0a 72 c.function.getProcessedUrl().{.r
68000 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 7d 0a 7d 0a 3c eturn.$this->processedUrl;.}.}.<
68020 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
68040 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 er\Plugin;..use.Composer\Compose
68060 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a r;.use.Composer\IO\IOInterface;.
68080 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 0a ......interface.PluginInterface.
680a0 7b 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 20 {......const.PLUGIN_API_VERSION.
680c0 3d 20 27 31 2e 30 2e 30 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f =.'1.0.0';........public.functio
680e0 6e 20 61 63 74 69 76 61 74 65 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 n.activate(Composer.$composer,.I
68100 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a OInterface.$io);.}.<?php........
68120 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a ....namespace.Composer\Plugin;..
68140 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f use.Composer\Composer;.use.Compo
68160 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 53 75 62 73 63 72 69 ser\EventDispatcher\EventSubscri
68180 62 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f berInterface;.use.Composer\IO\IO
681a0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
681c0 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 Package;.use.Composer\Package\Ve
681e0 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 rsion\VersionParser;.use.Compose
68200 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 r\Repository\RepositoryInterface
68220 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e ;.use.Composer\Package\PackageIn
68240 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 terface;.use.Composer\Package\Li
68260 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e nk;.use.Composer\Package\LinkCon
68280 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 straint\VersionConstraint;.use.C
682a0 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b omposer\DependencyResolver\Pool;
682c0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f .......class.PluginManager.{.pro
682e0 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b tected.$composer;.protected.$io;
68300 0a 70 72 6f 74 65 63 74 65 64 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 .protected.$globalRepository;.pr
68320 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 72 6f 74 65 63 74 otected.$versionParser;..protect
68340 65 64 20 24 70 6c 75 67 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 ed.$plugins.=.array();..private.
68360 73 74 61 74 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a static.$classCounter.=.0;.......
68380 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 public.function.__construct(Comp
683a0 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c oser.$composer,.IOInterface.$io,
683c0 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 67 6c 6f 62 61 6c 52 65 70 6f .RepositoryInterface.$globalRepo
683e0 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 sitory.=.null).{.$this->composer
68400 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 .=.$composer;.$this->io.=.$io;.$
68420 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 67 6c 6f 62 61 6c this->globalRepository.=.$global
68440 52 65 70 6f 73 69 74 6f 72 79 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 Repository;.$this->versionParser
68460 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 .=.new.VersionParser();.}.....pu
68480 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 73 74 61 6c 6c 65 64 50 6c 75 67 69 blic.function.loadInstalledPlugi
684a0 6e 73 28 29 0a 7b 0a 24 72 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e ns().{.$repo.=.$this->composer->
684c0 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c getRepositoryManager()->getLocal
684e0 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 69 66 20 28 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 Repository();..if.($repo).{.$thi
68500 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 69 66 20 28 s->loadRepository($repo);.}.if.(
68520 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 $this->globalRepository).{.$this
68540 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 ->loadRepository($this->globalRe
68560 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 pository);.}.}.......public.func
68580 74 69 6f 6e 20 61 64 64 50 6c 75 67 69 6e 28 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 20 24 tion.addPlugin(PluginInterface.$
685a0 70 6c 75 67 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 73 5b 5d 20 3d 20 24 70 6c plugin).{.$this->plugins[].=.$pl
685c0 75 67 69 6e 3b 0a 24 70 6c 75 67 69 6e 2d 3e 61 63 74 69 76 61 74 65 28 24 74 68 69 73 2d 3e 63 ugin;.$plugin->activate($this->c
685e0 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 0a 69 66 20 28 24 70 6c 75 67 69 omposer,.$this->io);..if.($plugi
68600 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 n.instanceof.EventSubscriberInte
68620 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 rface).{.$this->composer->getEve
68640 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 61 64 64 53 75 62 73 63 72 69 62 65 72 28 24 70 ntDispatcher()->addSubscriber($p
68660 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f lugin);.}.}.......public.functio
68680 6e 20 67 65 74 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 n.getPlugins().{.return.$this->p
686a0 6c 75 67 69 6e 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f lugins;.}..protected.function.lo
686c0 61 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 adRepository(RepositoryInterface
686e0 20 24 72 65 70 6f 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 .$repo).{.foreach.($repo->getPac
68700 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 27 63 6f 6d 70 kages().as.$package).{.if.('comp
68720 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 oser-plugin'.===.$package->getTy
68740 70 65 28 29 29 20 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c pe()).{.$requiresComposer.=.null
68760 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 ;.foreach.($package->getRequires
68780 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 ().as.$link).{.if.($link->getTar
687a0 67 65 74 28 29 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 29 20 get().==.'composer-plugin-api').
687c0 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 {.$requiresComposer.=.$link->get
687e0 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 72 65 71 75 69 72 65 Constraint();.}.}..if.(!$require
68800 73 43 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 sComposer).{.throw.new.\RuntimeE
68820 78 63 65 70 74 69 6f 6e 28 22 50 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 xception("Plugin.".$package->get
68840 4e 61 6d 65 28 29 2e 22 20 69 73 20 6d 69 73 73 69 6e 67 20 61 20 72 65 71 75 69 72 65 20 73 74 Name().".is.missing.a.require.st
68860 61 74 65 6d 65 6e 74 20 66 6f 72 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6d atement.for.a.version.of.the.com
68880 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 70 61 63 6b 61 67 65 2e 22 29 3b 0a 7d 0a 0a poser-plugin-api.package.");.}..
688a0 69 66 20 28 21 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 2d 3e 6d 61 74 63 68 65 73 28 if.(!$requiresComposer->matches(
688c0 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 new.VersionConstraint('==',.$thi
688e0 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 50 6c 75 67 s->versionParser->normalize(Plug
68900 69 6e 49 6e 74 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 29 inInterface::PLUGIN_API_VERSION)
68920 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 3c 77 61 72 6e 69 6e 67 ))).{.$this->io->write("<warning
68940 3e 54 68 65 20 70 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 >The.plugin.".$package->getName(
68960 29 2e 22 20 72 65 71 75 69 72 65 73 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 ).".requires.a.version.of.compos
68980 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 er-plugin-api.that.does.not.matc
689a0 68 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 20 59 6f h.your.composer.installation..Yo
689c0 75 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 72 75 6e 20 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 u.may.need.to.run.composer.updat
689e0 65 20 77 69 74 68 20 74 68 65 20 27 2d 2d 6e 6f 2d 70 6c 75 67 69 6e 73 27 20 6f 70 74 69 6f 6e e.with.the.'--no-plugins'.option
68a00 2e 3c 2f 77 61 72 6e 69 6e 67 3e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 .</warning>");.}..$this->registe
68a20 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 20 69 66 20 28 27 63 6f 6d rPackage($package);.}...if.('com
68a40 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 poser-installer'.===.$package->g
68a60 65 74 54 79 70 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 etType()).{.$this->registerPacka
68a80 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ge($package);.}.}.}...........pr
68aa0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e otected.function.collectDependen
68ac0 63 69 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 63 6f 6c 6c 65 63 74 65 cies(Pool.$pool,.array.$collecte
68ae0 64 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a d,.PackageInterface.$package).{.
68b00 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 70 61 63 6b 61 67 $requires.=.array_merge(.$packag
68b20 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 e->getRequires(),.$package->getD
68b40 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 evRequires().);..foreach.($requi
68b60 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 69 72 65 64 res.as.$requireLink).{.$required
68b80 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 64 Package.=.$this->lookupInstalled
68ba0 50 61 63 6b 61 67 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 3b 0a 69 66 Package($pool,.$requireLink);.if
68bc0 20 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 69 73 73 65 74 28 24 63 6f .($requiredPackage.&&.!isset($co
68be0 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d llected[$requiredPackage->getNam
68c00 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 e()])).{.$collected[$requiredPac
68c20 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 72 65 71 75 69 72 65 64 50 61 63 6b kage->getName()].=.$requiredPack
68c40 61 67 65 3b 0a 24 63 6f 6c 6c 65 63 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6c 6c 65 63 74 age;.$collected.=.$this->collect
68c60 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 63 6f 6c 6c 65 63 74 65 64 2c 20 Dependencies($pool,.$collected,.
68c80 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 $requiredPackage);.}.}..return.$
68ca0 63 6f 6c 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 collected;.}............protecte
68cc0 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 d.function.lookupInstalledPackag
68ce0 65 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 4c 69 6e 6b 20 24 6c 69 6e 6b 29 0a 7b 0a 24 70 61 63 e(Pool.$pool,.Link.$link).{.$pac
68d00 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e kages.=.$pool->whatProvides($lin
68d20 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
68d40 61 69 6e 74 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 aint());..return.(!empty($packag
68d60 65 73 29 29 20 3f 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a es)).?.$packages[0].:.null;.}...
68d80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 50 .......public.function.registerP
68da0 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 ackage(PackageInterface.$package
68dc0 29 0a 7b 0a 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 20 3d 20 28 24 70 61 63 6b ).{.$oldInstallerPlugin.=.($pack
68de0 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 age->getType().===.'composer-ins
68e00 74 61 6c 6c 65 72 27 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 taller');..$extra.=.$package->ge
68e20 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 tExtra();.if.(empty($extra['clas
68e40 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c s'])).{.throw.new.\UnexpectedVal
68e60 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c ueException('Error.while.install
68e80 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e ing.'.$package->getPrettyName().
68ea0 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 65 73 20 73 68 6f 75 ',.composer-plugin.packages.shou
68ec0 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 ld.have.a.class.defined.in.their
68ee0 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 24 63 .extra.key.to.be.usable.');.}.$c
68f00 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 lasses.=.is_array($extra['class'
68f20 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 79 28 24 65 78 ]).?.$extra['class'].:.array($ex
68f40 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c tra['class']);..$pool.=.new.Pool
68f60 28 27 64 65 76 27 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d ('dev');.$localRepo.=.$this->com
68f80 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 poser->getRepositoryManager()->g
68fa0 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 etLocalRepository();.$pool->addR
68fc0 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 69 66 20 28 24 74 68 69 73 epository($localRepo);.if.($this
68fe0 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 ->globalRepository).{.$pool->add
69000 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f Repository($this->globalReposito
69020 72 79 29 3b 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 ry);.}..$autoloadPackages.=.arra
69040 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 y($package->getName().=>.$packag
69060 65 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 e);.$autoloadPackages.=.$this->c
69080 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 61 75 74 6f 6c ollectDependencies($pool,.$autol
690a0 6f 61 64 50 61 63 6b 61 67 65 73 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 67 65 6e 65 72 61 oadPackages,.$package);..$genera
690c0 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f tor.=.$this->composer->getAutolo
690e0 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 adGenerator();.$autoloads.=.arra
69100 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 y();.foreach.($autoloadPackages.
69120 61 73 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 as.$autoloadPackage).{.$download
69140 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 61 75 Path.=.$this->getInstallPath($au
69160 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 toloadPackage,.($this->globalRep
69180 6f 73 69 74 6f 72 79 20 26 26 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f ository.&&.$this->globalReposito
691a0 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 ry->hasPackage($autoloadPackage)
691c0 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 61 75 74 6f 6c 6f ));.$autoloads[].=.array($autolo
691e0 61 64 50 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 24 6d adPackage,.$downloadPath);.}..$m
69200 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 ap.=.$generator->parseAutoloads(
69220 24 61 75 74 6f 6c 6f 61 64 73 2c 20 6e 65 77 20 50 61 63 6b 61 67 65 28 27 64 75 6d 6d 79 27 2c $autoloads,.new.Package('dummy',
69240 20 27 31 2e 30 2e 30 2e 30 27 2c 20 27 31 2e 30 2e 30 27 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 .'1.0.0.0',.'1.0.0'));.$classLoa
69260 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 der.=.$generator->createLoader($
69280 6d 61 70 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a map);.$classLoader->register();.
692a0 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a .foreach.($classes.as.$class).{.
692c0 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 if.(class_exists($class,.false))
692e0 20 7b 0a 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c .{.$code.=.file_get_contents($cl
69300 61 73 73 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 assLoader->findFile($class));.$c
69320 6f 64 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 73 2a 29 63 6c 61 73 73 ode.=.preg_replace('{^(\s*)class
69340 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 2c 20 27 24 31 63 6c 61 73 73 20 24 32 5f 63 6f 6d 70 6f 73 \s+(\S+)}mi',.'$1class.$2_compos
69360 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f er_tmp'.self::$classCounter,.$co
69380 64 65 29 3b 0a 65 76 61 6c 28 27 3f 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d de);.eval('?>'.$code);.$class..=
693a0 20 27 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 .'_composer_tmp'.self::$classCou
693c0 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a nter;.self::$classCounter++;.}..
693e0 69 66 20 28 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 29 20 7b 0a 24 69 6e 73 74 if.($oldInstallerPlugin).{.$inst
69400 61 6c 6c 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 aller.=.new.$class($this->io,.$t
69420 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d his->composer);.$this->composer-
69440 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 61 64 64 49 6e >getInstallationManager()->addIn
69460 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 staller($installer);.}.else.{.$p
69480 6c 75 67 69 6e 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 lugin.=.new.$class();.$this->add
694a0 50 6c 75 67 69 6e 28 24 70 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a Plugin($plugin);.}.}.}..........
694c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 public.function.getInstallPath(P
694e0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 67 6c 6f 62 61 ackageInterface.$package,.$globa
69500 6c 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 67 6c 6f 62 61 6c 29 20 7b 0a 72 65 74 l.=.false).{.if.(!$global).{.ret
69520 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 urn.$this->composer->getInstalla
69540 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 tionManager()->getInstallPath($p
69560 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 ackage);.}..$targetDir.=.$packag
69580 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 e->getTargetDir();.$vendorDir.=.
695a0 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 $this->composer->getConfig()->ge
695c0 74 28 27 68 6f 6d 65 27 29 2e 27 2f 76 65 6e 64 6f 72 27 3b 0a 0a 72 65 74 75 72 6e 20 28 24 76 t('home').'/vendor';..return.($v
695e0 65 6e 64 6f 72 44 69 72 20 3f 20 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 27 20 3a 20 27 27 29 2e endorDir.?.$vendorDir.'/'.:.'').
69600 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 28 24 74 61 72 67 $package->getPrettyName().($targ
69620 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a etDir.?.'/'.$targetDir.:.'');.}.
69640 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
69660 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e poser;..use.Composer\Config\Json
69680 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c ConfigSource;.use.Composer\Json\
696a0 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 JsonFile;.use.Composer\IO\IOInte
696c0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 rface;.use.Composer\Package\Arch
696e0 69 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f iver;.use.Composer\Repository\Co
69700 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 mposerRepository;.use.Composer\R
69720 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 epository\RepositoryManager;.use
69740 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 .Composer\Repository\RepositoryI
69760 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 nterface;.use.Composer\Util\Proc
69780 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 essExecutor;.use.Composer\Util\R
697a0 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d emoteFilesystem;.use.Symfony\Com
697c0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 ponent\Console\Formatter\OutputF
697e0 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e ormatterStyle;.use.Composer\Even
69800 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 tDispatcher\EventDispatcher;.use
69820 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 .Composer\Autoload\AutoloadGener
69840 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 ator;.use.Composer\Package\Versi
69860 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 on\VersionParser;..........class
69880 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e .Factory.{.....public.static.fun
698a0 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 0a 7b 0a 0a 20 24 68 6f 6d 65 20 3d ction.createConfig().{...$home.=
698c0 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 27 29 3b 0a 24 63 61 63 68 65 .getenv('COMPOSER_HOME');.$cache
698e0 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 43 41 43 48 45 5f 44 49 52 Dir.=.getenv('COMPOSER_CACHE_DIR
69900 27 29 3b 0a 69 66 20 28 21 24 68 6f 6d 65 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 ');.if.(!$home).{.if.(defined('P
69920 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 HP_WINDOWS_VERSION_MAJOR')).{.if
69940 20 28 21 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .(!getenv('APPDATA')).{.throw.ne
69960 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 41 50 50 44 41 54 41 w.\RuntimeException('The.APPDATA
69980 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 .or.COMPOSER_HOME.environment.va
699a0 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 riable.must.be.set.for.composer.
699c0 74 6f 20 72 75 6e 20 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 73 74 to.run.correctly');.}.$home.=.st
699e0 72 74 72 28 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 rtr(getenv('APPDATA'),.'\\',.'/'
69a00 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 67 )...'/Composer';.}.else.{.if.(!g
69a20 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 etenv('HOME')).{.throw.new.\Runt
69a40 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 48 4f 4d 45 20 6f 72 20 43 4f 4d 50 4f 53 imeException('The.HOME.or.COMPOS
69a60 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 6d 75 73 ER_HOME.environment.variable.mus
69a80 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 6e 20 63 6f 72 t.be.set.for.composer.to.run.cor
69aa0 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 72 74 72 69 6d 28 67 65 74 65 6e 76 rectly');.}.$home.=.rtrim(getenv
69ac0 28 27 48 4f 4d 45 27 29 2c 20 27 2f 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d ('HOME'),.'/')...'/.composer';.}
69ae0 0a 7d 0a 69 66 20 28 21 24 63 61 63 68 65 44 69 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 .}.if.(!$cacheDir).{.if.(defined
69b00 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b ('PHP_WINDOWS_VERSION_MAJOR')).{
69b20 0a 69 66 20 28 24 63 61 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 4c 4f 43 41 4c 41 50 .if.($cacheDir.=.getenv('LOCALAP
69b40 50 44 41 54 41 27 29 29 20 7b 0a 24 63 61 63 68 65 44 69 72 20 2e 3d 20 27 2f 43 6f 6d 70 6f 73 PDATA')).{.$cacheDir..=.'/Compos
69b60 65 72 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 20 er';.}.else.{.$cacheDir.=.$home.
69b80 2e 20 27 2f 63 61 63 68 65 27 3b 0a 7d 0a 24 63 61 63 68 65 44 69 72 20 3d 20 73 74 72 74 72 28 ..'/cache';.}.$cacheDir.=.strtr(
69ba0 24 63 61 63 68 65 44 69 72 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a $cacheDir,.'\\',.'/');.}.else.{.
69bc0 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 2e 27 2f 63 61 63 68 65 27 3b 0a 7d 0a 7d 0a $cacheDir.=.$home.'/cache';.}.}.
69be0 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 68 6f 6d 65 2c 20 24 63 61 .......foreach.(array($home,.$ca
69c00 63 68 65 44 69 72 29 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 cheDir).as.$dir).{.if.(!file_exi
69c20 73 74 73 28 24 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 sts($dir...'/.htaccess')).{.if.(
69c40 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 !is_dir($dir)).{.@mkdir($dir,.07
69c60 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 77,.true);.}.@file_put_contents(
69c80 24 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 2c 20 27 44 65 6e 79 20 66 72 6f 6d 20 $dir...'/.htaccess',.'Deny.from.
69ca0 61 6c 6c 27 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 all');.}.}..$config.=.new.Config
69cc0 28 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e ();....$config->merge(array('con
69ce0 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d 65 27 20 3d 3e 20 24 68 6f 6d 65 2c 20 27 fig'.=>.array('home'.=>.$home,.'
69d00 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 63 61 63 68 65 44 69 72 29 29 29 3b 0a 0a 24 66 69 cache-dir'.=>.$cacheDir)));..$fi
69d20 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 68 6f 6d 65 2e 27 2f 63 6f 6e 66 69 67 le.=.new.JsonFile($home.'/config
69d40 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a .json');.if.($file->exists()).{.
69d60 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d $config->merge($file->read());.}
69d80 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 .$config->setConfigSource(new.Js
69da0 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 66 69 6c 65 29 29 3b 0a 0a 0a 20 24 6c 65 67 61 onConfigSource($file));....$lega
69dc0 63 79 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 cyPaths.=.array(.'cache-repo-dir
69de0 27 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 27 20 3d 3e 20 27 2f 68 74 74 70 2a 27 2c '.=>.array('/cache'.=>.'/http*',
69e00 20 27 2f 63 61 63 68 65 2e 73 76 6e 27 20 3d 3e 20 27 2f 2a 27 2c 20 27 2f 63 61 63 68 65 2e 67 .'/cache.svn'.=>.'/*',.'/cache.g
69e20 69 74 68 75 62 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 ithub'.=>.'/*'),.'cache-vcs-dir'
69e40 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 2e 67 69 74 27 20 3d 3e 20 27 2f 2a 27 2c 20 .=>.array('/cache.git'.=>.'/*',.
69e60 27 2f 63 61 63 68 65 2e 68 67 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c '/cache.hg'.=>.'/*'),.'cache-fil
69e80 65 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 2e 66 69 6c 65 73 27 20 es-dir'.=>.array('/cache.files'.
69ea0 3d 3e 20 27 2f 2a 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 65 67 61 63 79 50 61 74 =>.'/*'),.);.foreach.($legacyPat
69ec0 68 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 6f 6c 64 50 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 hs.as.$key.=>.$oldPaths).{.forea
69ee0 63 68 20 28 24 6f 6c 64 50 61 74 68 73 20 61 73 20 24 6f 6c 64 50 61 74 68 20 3d 3e 20 24 6d 61 ch.($oldPaths.as.$oldPath.=>.$ma
69f00 74 63 68 29 20 7b 0a 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6b 65 79 29 tch).{.$dir.=.$config->get($key)
69f20 3b 0a 69 66 20 28 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 27 20 3d 3d 3d 20 24 6f 6c 64 50 61 ;.if.('/cache.github'.===.$oldPa
69f40 74 68 29 20 7b 0a 24 64 69 72 20 2e 3d 20 27 2f 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 24 th).{.$dir..=.'/github.com';.}.$
69f60 6f 6c 64 50 61 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 24 oldPath.=.$config->get('home').$
69f80 6f 6c 64 50 61 74 68 3b 0a 24 6f 6c 64 50 61 74 68 4d 61 74 63 68 20 3d 20 24 6f 6c 64 50 61 74 oldPath;.$oldPathMatch.=.$oldPat
69fa0 68 20 2e 20 24 6d 61 74 63 68 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 6f 6c 64 50 61 74 68 29 h...$match;.if.(is_dir($oldPath)
69fc0 20 26 26 20 24 64 69 72 20 21 3d 3d 20 24 6f 6c 64 50 61 74 68 29 20 7b 0a 69 66 20 28 21 69 73 .&&.$dir.!==.$oldPath).{.if.(!is
69fe0 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 _dir($dir)).{.if.(!@mkdir($dir,.
6a000 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 69 66 20 0777,.true)).{.continue;.}.}.if.
6a020 28 69 73 5f 61 72 72 61 79 28 24 63 68 69 6c 64 72 65 6e 20 3d 20 67 6c 6f 62 28 24 6f 6c 64 50 (is_array($children.=.glob($oldP
6a040 61 74 68 4d 61 74 63 68 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e athMatch))).{.foreach.($children
6a060 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 40 72 65 6e 61 6d 65 28 24 63 68 69 6c 64 2c 20 24 64 .as.$child).{.@rename($child,.$d
6a080 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 63 68 69 6c 64 29 29 3b 0a 7d 0a 7d 0a 40 72 ir.'/'.basename($child));.}.}.@r
6a0a0 6d 64 69 72 28 24 6f 6c 64 50 61 74 68 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 mdir($oldPath);.}.}.}..return.$c
6a0c0 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e onfig;.}..public.static.function
6a0e0 20 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 69 6d .getComposerFile().{.return.trim
6a100 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 29 29 20 3f 3a 20 27 2e 2f 63 6f 6d 70 6f (getenv('COMPOSER')).?:.'./compo
6a120 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 ser.json';.}..public.static.func
6a140 74 69 6f 6e 20 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 0a 7b 0a tion.createAdditionalStyles().{.
6a160 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 68 69 67 68 6c 69 67 68 74 27 20 3d 3e 20 6e 65 77 return.array(.'highlight'.=>.new
6a180 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 72 65 64 27 29 2c 0a 27 77 .OutputFormatterStyle('red'),.'w
6a1a0 61 72 6e 69 6e 67 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 arning'.=>.new.OutputFormatterSt
6a1c0 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 27 29 2c 0a 29 3b 0a 7d 0a 0a 70 75 yle('black',.'yellow'),.);.}..pu
6a1e0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 blic.static.function.createDefau
6a200 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d ltRepositories(IOInterface.$io.=
6a220 20 6e 75 6c 6c 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 52 65 .null,.Config.$config.=.null,.Re
6a240 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 positoryManager.$rm.=.null).{.$r
6a260 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 29 20 7b epos.=.array();..if.(!$config).{
6a280 0a 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 .$config.=.static::createConfig(
6a2a0 29 3b 0a 7d 0a 69 66 20 28 21 24 72 6d 29 20 7b 0a 69 66 20 28 21 24 69 6f 29 20 7b 0a 74 68 72 );.}.if.(!$rm).{.if.(!$io).{.thr
6a2c0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
6a2e0 28 27 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 65 69 74 68 65 72 20 ('This.function.requires.either.
6a300 61 6e 20 49 4f 49 6e 74 65 72 66 61 63 65 20 6f 72 20 61 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 an.IOInterface.or.a.RepositoryMa
6a320 6e 61 67 65 72 27 29 3b 0a 7d 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 nager');.}.$factory.=.new.static
6a340 3b 0a 24 72 6d 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f ;.$rm.=.$factory->createReposito
6a360 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 66 6f 72 65 ryManager($io,.$config);.}..fore
6a380 61 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 ach.($config->getRepositories().
6a3a0 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 as.$index.=>.$repo).{.if.(!is_ar
6a3c0 72 61 79 28 24 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 ray($repo)).{.throw.new.\Unexpec
6a3e0 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e tedValueException('Repository.'.
6a400 24 69 6e 64 65 78 2e 27 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 $index.'.('.json_encode($repo).'
6a420 29 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 ).should.be.an.array,.'.gettype(
6a440 24 72 65 70 6f 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 $repo).'.given');.}.if.(!isset($
6a460 72 65 70 6f 5b 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 repo['type'])).{.throw.new.\Unex
6a480 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 pectedValueException('Repository
6a4a0 20 27 2e 24 69 6e 64 65 78 2e 27 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f .'.$index.'.('.json_encode($repo
6a4c0 29 2e 27 29 20 6d 75 73 74 20 68 61 76 65 20 61 20 74 79 70 65 20 64 65 66 69 6e 65 64 27 29 3b ).').must.have.a.type.defined');
6a4e0 0a 7d 0a 24 6e 61 6d 65 20 3d 20 69 73 5f 69 6e 74 28 24 69 6e 64 65 78 29 20 26 26 20 69 73 73 .}.$name.=.is_int($index).&&.iss
6a500 65 74 28 24 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3f 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 et($repo['url']).?.preg_replace(
6a520 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 72 65 70 6f 5b 27 75 72 6c 27 '{^https?://}i',.'',.$repo['url'
6a540 5d 29 20 3a 20 24 69 6e 64 65 78 3b 0a 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 72 65 70 6f 73 ]).:.$index;.while.(isset($repos
6a560 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 2e 3d 20 27 32 27 3b 0a 7d 0a 24 72 65 70 [$name])).{.$name..=.'2';.}.$rep
6a580 6f 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 6d 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 os[$name].=.$rm->createRepositor
6a5a0 79 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 2c 20 24 72 65 70 6f 29 3b 0a 7d 0a 0a 72 65 74 75 y($repo['type'],.$repo);.}..retu
6a5c0 72 6e 20 24 72 65 70 6f 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$repos;.}.............public.
6a5e0 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 function.createComposer(IOInterf
6a600 61 63 65 20 24 69 6f 2c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 ace.$io,.$localConfig.=.null,.$d
6a620 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 0a 20 69 66 20 28 6e isablePlugins.=.false).{...if.(n
6a640 75 6c 6c 20 3d 3d 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f ull.===.$localConfig).{.$localCo
6a660 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 nfig.=.static::getComposerFile()
6a680 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 ;.}..if.(is_string($localConfig)
6a6a0 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 ).{.$composerFile.=.$localConfig
6a6c0 3b 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e ;.$file.=.new.JsonFile($localCon
6a6e0 66 69 67 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 3b fig,.new.RemoteFilesystem($io));
6a700 0a 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 6c ..if.(!$file->exists()).{.if.($l
6a720 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 ocalConfig.===.'./composer.json'
6a740 20 7c 7c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a .||.$localConfig.===.'composer.j
6a760 73 6f 6e 27 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 son').{.$message.=.'Composer.cou
6a780 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 ld.not.find.a.composer.json.file
6a7a0 20 69 6e 20 27 2e 67 65 74 63 77 64 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 .in.'.getcwd();.}.else.{.$messag
6a7c0 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 e.=.'Composer.could.not.find.the
6a7e0 20 63 6f 6e 66 69 67 20 66 69 6c 65 3a 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a .config.file:.'.$localConfig;.}.
6a800 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 3d 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 $instructions.=.'To.initialize.a
6a820 20 70 72 6f 6a 65 63 74 2c 20 70 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 .project,.please.create.a.compos
6a840 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 er.json.file.as.described.in.the
6a860 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e .http://getcomposer.org/."Gettin
6a880 67 20 53 74 61 72 74 65 64 22 20 73 65 63 74 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c g.Started".section';.throw.new.\
6a8a0 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 InvalidArgumentException($messag
6a8c0 65 2e 50 48 50 5f 45 4f 4c 2e 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 e.PHP_EOL.$instructions);.}..$fi
6a8e0 6c 65 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 le->validateSchema(JsonFile::LAX
6a900 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 66 69 6c 65 2d 3e _SCHEMA);.$localConfig.=.$file->
6a920 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 read();.}....$config.=.static::c
6a940 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 6c reateConfig();.$config->merge($l
6a960 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 ocalConfig);.$io->loadConfigurat
6a980 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e ion($config);..$vendorDir.=.$con
6a9a0 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 fig->get('vendor-dir');.$binDir.
6a9c0 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 50 72 =.$config->get('bin-dir');....Pr
6a9e0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 65 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 20 ocessExecutor::setTimeout((int).
6aa00 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 29 $config->get('process-timeout'))
6aa20 3b 0a 0a 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f ;....$rm.=.$this->createReposito
6aa40 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 74 68 69 ryManager($io,.$config);....$thi
6aa60 73 2d 3e 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 s->addLocalRepository($rm,.$vend
6aa80 6f 72 44 69 72 29 3b 0a 0a 0a 20 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e orDir);....$parser.=.new.Version
6aaa0 50 61 72 73 65 72 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f Parser;.$loader.=.new.Package\Lo
6aac0 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e ader\RootPackageLoader($rm,.$con
6aae0 66 69 67 2c 20 24 70 61 72 73 65 72 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f fig,.$parser,.new.ProcessExecuto
6ab00 72 28 24 69 6f 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 r($io));.$package.=.$loader->loa
6ab20 64 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 68 69 73 2d d($localConfig);....$im.=.$this-
6ab40 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 0a >createInstallationManager();...
6ab60 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f .$composer.=.new.Composer();.$co
6ab80 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 63 6f 6e 66 69 67 29 3b 0a 24 63 6f 6d mposer->setConfig($config);.$com
6aba0 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 63 6f poser->setPackage($package);.$co
6abc0 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 72 6d mposer->setRepositoryManager($rm
6abe0 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e );.$composer->setInstallationMan
6ac00 61 67 65 72 28 24 69 6d 29 3b 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 65 77 20 ager($im);....$dispatcher.=.new.
6ac20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b EventDispatcher($composer,.$io);
6ac40 0a 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d ....$dm.=.$this->createDownloadM
6ac60 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 72 anager($io,.$config,.$dispatcher
6ac80 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 );..$composer->setDownloadManage
6aca0 72 28 24 64 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 45 76 65 6e 74 44 69 73 70 61 r($dm);.$composer->setEventDispa
6acc0 74 63 68 65 72 28 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 0a 0a 20 24 67 65 6e 65 72 61 74 6f tcher($dispatcher);....$generato
6ace0 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 64 69 73 70 61 r.=.new.AutoloadGenerator($dispa
6ad00 74 63 68 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 tcher);.$composer->setAutoloadGe
6ad20 6e 65 72 61 74 6f 72 28 24 67 65 6e 65 72 61 74 6f 72 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 nerator($generator);....$this->c
6ad40 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 24 69 6d 2c 20 24 63 6f 6d reateDefaultInstallers($im,.$com
6ad60 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 0a 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 poser,.$io);..$globalRepository.
6ad80 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 47 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 =.$this->createGlobalRepository(
6ada0 24 63 6f 6e 66 69 67 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 70 6d 20 3d 20 24 74 68 69 $config,.$vendorDir);.$pm.=.$thi
6adc0 73 2d 3e 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 63 6f 6d 70 6f 73 65 72 s->createPluginManager($composer
6ade0 2c 20 24 69 6f 2c 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 24 63 6f 6d 70 ,.$io,.$globalRepository);.$comp
6ae00 6f 73 65 72 2d 3e 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 70 6d 29 3b 0a 0a 69 66 oser->setPluginManager($pm);..if
6ae20 20 28 21 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 70 6d 2d 3e 6c 6f 61 64 49 .(!$disablePlugins).{.$pm->loadI
6ae40 6e 73 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 nstalledPlugins();.}....$this->p
6ae60 75 72 67 65 50 61 63 6b 61 67 65 73 28 24 72 6d 2c 20 24 69 6d 29 3b 0a 0a 0a 20 69 66 20 28 69 urgePackages($rm,.$im);....if.(i
6ae80 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 7b 0a 24 6c 6f 63 6b 46 69 6c 65 sset($composerFile)).{.$lockFile
6aea0 20 3d 20 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 63 6f 6d 70 6f 73 65 72 .=."json".===.pathinfo($composer
6aec0 46 69 6c 65 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 0a 3f 20 73 75 62 73 File,.PATHINFO_EXTENSION).?.subs
6aee0 74 72 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 30 2c 20 2d 34 29 2e 27 6c 6f 63 6b 27 0a tr($composerFile,.0,.-4).'lock'.
6af00 3a 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 2e 20 27 2e 6c 6f 63 6b 27 3b 0a 24 6c 6f 63 6b :.$composerFile...'.lock';.$lock
6af20 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 24 69 6f 2c 20 6e 65 77 er.=.new.Package\Locker($io,.new
6af40 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 6b 46 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 .JsonFile($lockFile,.new.RemoteF
6af60 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 2c 20 24 72 6d 2c 20 24 69 6d 2c 20 6d 64 35 5f 66 ilesystem($io)),.$rm,.$im,.md5_f
6af80 69 6c 65 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e ile($composerFile));.$composer->
6afa0 73 65 74 4c 6f 63 6b 65 72 28 24 6c 6f 63 6b 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 setLocker($locker);.}..return.$c
6afc0 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 omposer;.}.......protected.funct
6afe0 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e ion.createRepositoryManager(IOIn
6b000 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 terface.$io,.Config.$config).{.$
6b020 72 6d 20 3d 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 rm.=.new.RepositoryManager($io,.
6b040 24 63 6f 6e 66 69 67 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 $config);.$rm->setRepositoryClas
6b060 73 28 27 63 6f 6d 70 6f 73 65 72 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f s('composer',.'Composer\Reposito
6b080 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 ry\ComposerRepository');.$rm->se
6b0a0 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 tRepositoryClass('vcs',.'Compose
6b0c0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 r\Repository\VcsRepository');.$r
6b0e0 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c m->setRepositoryClass('package',
6b100 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 .'Composer\Repository\PackageRep
6b120 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 ository');.$rm->setRepositoryCla
6b140 73 73 28 27 70 65 61 72 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c ss('pear',.'Composer\Repository\
6b160 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 PearRepository');.$rm->setReposi
6b180 74 6f 72 79 43 6c 61 73 73 28 27 67 69 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 toryClass('git',.'Composer\Repos
6b1a0 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 itory\VcsRepository');.$rm->setR
6b1c0 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c epositoryClass('svn',.'Composer\
6b1e0 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d Repository\VcsRepository');.$rm-
6b200 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f >setRepositoryClass('hg',.'Compo
6b220 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a ser\Repository\VcsRepository');.
6b240 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 61 72 74 69 66 61 63 $rm->setRepositoryClass('artifac
6b260 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 74 69 66 61 63 t',.'Composer\Repository\Artifac
6b280 74 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a 0a tRepository');..return.$rm;.}...
6b2a0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 65 ...protected.function.addLocalRe
6b2c0 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 pository(RepositoryManager.$rm,.
6b2e0 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 $vendorDir).{.$rm->setLocalRepos
6b300 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 itory(new.Repository\InstalledFi
6b320 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 lesystemRepository(new.JsonFile(
6b340 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e $vendorDir.'/composer/installed.
6b360 6a 73 6f 6e 27 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 json')));.}......protected.funct
6b380 69 6f 6e 20 63 72 65 61 74 65 47 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 43 6f 6e 66 69 ion.createGlobalRepository(Confi
6b3a0 67 20 24 63 6f 6e 66 69 67 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 69 66 20 28 24 63 6f g.$config,.$vendorDir).{.if.($co
6b3c0 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 3d 3d 20 24 76 65 6e 64 6f 72 44 69 72 29 nfig->get('home').==.$vendorDir)
6b3e0 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 63 6f 6e 66 .{.return.null;.}..$path.=.$conf
6b400 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 ig->get('home').'/vendor/compose
6b420 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 r/installed.json';.if.(!file_exi
6b440 73 74 73 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 sts($path)).{.return.null;.}..re
6b460 74 75 72 6e 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c turn.new.Repository\InstalledFil
6b480 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 esystemRepository(new.JsonFile($
6b4a0 70 61 74 68 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e path));.}........public.function
6b4c0 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 .createDownloadManager(IOInterfa
6b4e0 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 ce.$io,.Config.$config,.EventDis
6b500 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 patcher.$eventDispatcher.=.null)
6b520 0a 7b 0a 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 6f 6e 66 69 67 2d 3e 67 .{.$cache.=.null;.if.($config->g
6b540 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 20 3e 20 30 29 20 7b 0a 24 63 61 et('cache-files-ttl').>.0).{.$ca
6b560 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 che.=.new.Cache($io,.$config->ge
6b580 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 2d 7a 30 2d 39 5f 2e 2f t('cache-files-dir'),.'a-z0-9_./
6b5a0 27 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e ');.}..$dm.=.new.Downloader\Down
6b5c0 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e loadManager();.switch.($config->
6b5e0 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 get('preferred-install')).{.case
6b600 20 27 64 69 73 74 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 74 72 75 65 .'dist':.$dm->setPreferDist(true
6b620 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 64 6d 2d 3e 73 65 );.break;.case.'source':.$dm->se
6b640 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 tPreferSource(true);.break;.case
6b660 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 .'auto':.default:...break;.}..$d
6b680 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 77 20 44 6f 77 6e m->setDownloader('git',.new.Down
6b6a0 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 loader\GitDownloader($io,.$confi
6b6c0 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e g));.$dm->setDownloader('svn',.n
6b6e0 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c ew.Downloader\SvnDownloader($io,
6b700 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 .$config));.$dm->setDownloader('
6b720 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 hg',.new.Downloader\HgDownloader
6b740 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 ($io,.$config));.$dm->setDownloa
6b760 64 65 72 28 27 7a 69 70 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 der('zip',.new.Downloader\ZipDow
6b780 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 nloader($io,.$config,.$eventDisp
6b7a0 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f atcher,.$cache));.$dm->setDownlo
6b7c0 61 64 65 72 28 27 72 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 52 61 72 44 6f ader('rar',.new.Downloader\RarDo
6b7e0 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 wnloader($io,.$config,.$eventDis
6b800 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c patcher,.$cache));.$dm->setDownl
6b820 6f 61 64 65 72 28 27 74 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 oader('tar',.new.Downloader\TarD
6b840 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 ownloader($io,.$config,.$eventDi
6b860 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e spatcher,.$cache));.$dm->setDown
6b880 6c 6f 61 64 65 72 28 27 70 68 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 loader('phar',.new.Downloader\Ph
6b8a0 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e arDownloader($io,.$config,.$even
6b8c0 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 tDispatcher,.$cache));.$dm->setD
6b8e0 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 ownloader('file',.new.Downloader
6b900 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 \FileDownloader($io,.$config,.$e
6b920 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 ventDispatcher,.$cache));..retur
6b940 6e 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 n.$dm;.}........public.function.
6b960 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e createArchiveManager(Config.$con
6b980 66 69 67 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 fig,.Downloader\DownloadManager.
6b9a0 24 64 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 6d 29 20 $dm.=.null).{.if.(null.===.$dm).
6b9c0 7b 0a 24 69 6f 20 3d 20 6e 65 77 20 49 4f 5c 4e 75 6c 6c 49 4f 28 29 3b 0a 24 69 6f 2d 3e 6c 6f {.$io.=.new.IO\NullIO();.$io->lo
6b9e0 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 20 3d 20 adConfiguration($config);.$dm.=.
6ba00 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f $this->createDownloadManager($io
6ba20 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 69 76 65 ,.$config);.}..$am.=.new.Archive
6ba40 72 5c 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 64 64 41 r\ArchiveManager($dm);.$am->addA
6ba60 72 63 68 69 76 65 72 28 6e 65 77 20 41 72 63 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 69 76 65 rchiver(new.Archiver\PharArchive
6ba80 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 r);..return.$am;.}.....protected
6baa0 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 43 6f .function.createPluginManager(Co
6bac0 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 mposer.$composer,.IOInterface.$i
6bae0 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 67 6c 6f 62 61 6c 52 65 o,.RepositoryInterface.$globalRe
6bb00 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6c pository.=.null).{.return.new.Pl
6bb20 75 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 ugin\PluginManager($composer,.$i
6bb40 6f 2c 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f o,.$globalRepository);.}.....pro
6bb60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 tected.function.createInstallati
6bb80 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c onManager().{.return.new.Install
6bba0 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a er\InstallationManager();.}.....
6bbc0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 ..protected.function.createDefau
6bbe0 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 ltInstallers(Installer\Installat
6bc00 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 ionManager.$im,.Composer.$compos
6bc20 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 er,.IOInterface.$io).{.$im->addI
6bc40 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e nstaller(new.Installer\LibraryIn
6bc60 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a staller($io,.$composer,.null));.
6bc80 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c $im->addInstaller(new.Installer\
6bca0 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 70 PearInstaller($io,.$composer,.'p
6bcc0 65 61 72 2d 6c 69 62 72 61 72 79 27 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 ear-library'));.$im->addInstalle
6bce0 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 28 r(new.Installer\PluginInstaller(
6bd00 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c $io,.$composer));.$im->addInstal
6bd20 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 ler(new.Installer\MetapackageIns
6bd40 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 taller($io));.}......protected.f
6bd60 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 74 6f 72 79 unction.purgePackages(Repository
6bd80 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 49 6e 73 74 61 6c 6c 65 \RepositoryManager.$rm,.Installe
6bda0 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 24 72 65 r\InstallationManager.$im).{.$re
6bdc0 70 6f 20 3d 20 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a po.=.$rm->getLocalRepository();.
6bde0 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 foreach.($repo->getPackages().as
6be00 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 .$package).{.if.(!$im->isPackage
6be20 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 Installed($repo,.$package)).{.$r
6be40 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a epo->removePackage($package);.}.
6be60 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 }.}.........public.static.functi
6be80 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 on.create(IOInterface.$io,.$conf
6bea0 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c ig.=.null,.$disablePlugins.=.fal
6bec0 73 65 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 0a se).{.$factory.=.new.static();..
6bee0 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 return.$factory->createComposer(
6bf00 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a $io,.$config,.$disablePlugins);.
6bf20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
6bf40 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 52 65 63 75 72 73 69 76 65 44 69 72 65 omposer\Util;..use.RecursiveDire
6bf60 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 52 65 63 75 72 73 69 76 65 49 74 65 72 ctoryIterator;.use.RecursiveIter
6bf80 61 74 6f 72 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 atorIterator;......class.Filesys
6bfa0 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a tem.{.private.$processExecutor;.
6bfc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f .public.function.__construct(Pro
6bfe0 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 65 78 65 63 75 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b cessExecutor.$executor.=.null).{
6c000 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 24 65 78 65 63 75 .$this->processExecutor.=.$execu
6c020 74 6f 72 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 7d 0a tor.?:.new.ProcessExecutor();.}.
6c040 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b .public.function.remove($file).{
6c060 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 .if.(is_dir($file)).{.return.$th
6c080 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 is->removeDirectory($file);.}..i
6c0a0 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 f.(file_exists($file)).{.return.
6c0c0 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a unlink($file);.}..return.false;.
6c0e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 72 45 6d }........public.function.isDirEm
6c100 70 74 79 28 24 64 69 72 29 0a 7b 0a 24 64 69 72 20 3d 20 72 74 72 69 6d 28 24 64 69 72 2c 20 27 pty($dir).{.$dir.=.rtrim($dir,.'
6c120 2f 5c 5c 27 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 67 6c 6f 62 28 24 64 69 72 2e 27 /\\');..return.count(glob($dir.'
6c140 2f 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 29 20 3d 3d 3d 20 30 20 26 26 20 63 6f 75 6e 74 28 /*').?:.array()).===.0.&&.count(
6c160 67 6c 6f 62 28 24 64 69 72 2e 27 2f 2e 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 29 20 3d 3d 3d glob($dir.'/.*').?:.array()).===
6c180 20 32 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .2;.}...........public.function.
6c1a0 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 removeDirectory($directory).{.if
6c1c0 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 .(!is_dir($directory)).{.return.
6c1e0 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 true;.}..if.(!function_exists('p
6c200 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f roc_open')).{.return.$this->remo
6c220 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 veDirectoryPhp($directory);.}..i
6c240 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f f.(defined('PHP_WINDOWS_VERSION_
6c260 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 BUILD')).{.$cmd.=.sprintf('rmdir
6c280 20 2f 53 20 2f 51 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 72 65 61 6c 70 ./S./Q.%s',.escapeshellarg(realp
6c2a0 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6d 64 ath($directory)));.}.else.{.$cmd
6c2c0 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 .=.sprintf('rm.-rf.%s',.escapesh
6c2e0 65 6c 6c 61 72 67 28 24 64 69 72 65 63 74 6f 72 79 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 ellarg($directory));.}..$result.
6c300 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 2d 3e 65 78 65 63 75 74 65 28 24 =.$this->getProcess()->execute($
6c320 63 6d 64 2c 20 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 cmd,.$output).===.0;....clearsta
6c340 74 63 61 63 68 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 26 26 20 21 69 73 tcache();..return.$result.&&.!is
6c360 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 _dir($directory);.}............p
6c380 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 ublic.function.removeDirectoryPh
6c3a0 70 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 p($directory).{.$it.=.new.Recurs
6c3c0 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c iveDirectoryIterator($directory,
6c3e0 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 .RecursiveDirectoryIterator::SKI
6c400 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 49 74 65 72 P_DOTS);.$ri.=.new.RecursiveIter
6c420 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 atorIterator($it,.RecursiveItera
6c440 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 43 48 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 66 6f 72 65 torIterator::CHILD_FIRST);..fore
6c460 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e ach.($ri.as.$file).{.if.($file->
6c480 69 73 44 69 72 28 29 29 20 7b 0a 72 6d 64 69 72 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e isDir()).{.rmdir($file->getPathn
6c4a0 61 6d 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 ame());.}.else.{.unlink($file->g
6c4c0 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 72 6d 64 69 72 etPathname());.}.}..return.rmdir
6c4e0 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($directory);.}..public.function
6c500 20 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 .ensureDirectoryExists($director
6c520 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a y).{.if.(!is_dir($directory)).{.
6c540 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 74 if.(file_exists($directory)).{.t
6c560 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 hrow.new.\RuntimeException(.$dir
6c580 65 63 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 ectory.'.exists.and.is.not.a.dir
6c5a0 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 65 63 ectory.'.);.}.if.(!@mkdir($direc
6c5c0 74 6f 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c tory,.0777,.true)).{.throw.new.\
6c5e0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 64 RuntimeException(.$directory.'.d
6c600 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 oes.not.exist.and.could.not.be.c
6c620 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c reated.'.);.}.}.}...........publ
6c640 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 ic.function.copyThenRemove($sour
6c660 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 ce,.$target).{.$it.=.new.Recursi
6c680 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 73 6f 75 72 63 65 2c 20 52 65 63 veDirectoryIterator($source,.Rec
6c6a0 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f ursiveDirectoryIterator::SKIP_DO
6c6c0 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 TS);.$ri.=.new.RecursiveIterator
6c6e0 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 Iterator($it,.RecursiveIteratorI
6c700 74 65 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 73 terator::SELF_FIRST);.$this->ens
6c720 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 29 3b 0a 0a 66 6f ureDirectoryExists($target);..fo
6c740 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 61 72 67 65 74 50 61 reach.($ri.as.$file).{.$targetPa
6c760 74 68 20 3d 20 24 74 61 72 67 65 74 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 th.=.$target...DIRECTORY_SEPARAT
6c780 4f 52 20 2e 20 24 72 69 2d 3e 67 65 74 53 75 62 50 61 74 68 4e 61 6d 65 28 29 3b 0a 69 66 20 28 OR...$ri->getSubPathName();.if.(
6c7a0 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 $file->isDir()).{.$this->ensureD
6c7c0 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 20 65 irectoryExists($targetPath);.}.e
6c7e0 6c 73 65 20 7b 0a 63 6f 70 79 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c lse.{.copy($file->getPathname(),
6c800 20 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 .$targetPath);.}.}..$this->remov
6c820 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 eDirectoryPhp($source);.}..publi
6c840 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 c.function.rename($source,.$targ
6c860 65 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 40 72 65 6e 61 6d 65 28 24 73 6f 75 72 et).{.if.(true.===.@rename($sour
6c880 63 65 2c 20 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 ce,.$target)).{.return;.}..if.(!
6c8a0 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a function_exists('proc_open')).{.
6c8c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f return.$this->copyThenRemove($so
6c8e0 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 urce,.$target);.}..if.(defined('
6c900 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a PHP_WINDOWS_VERSION_BUILD')).{..
6c920 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 78 63 6f 70 79 20 25 73 20 25 73 .$command.=.sprintf('xcopy.%s.%s
6c940 20 2f 45 20 2f 49 20 2f 51 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 ./E./I./Q',.escapeshellarg($sour
6c960 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 29 29 3b 0a 24 ce),.escapeshellarg($target));.$
6c980 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d result.=.$this->processExecutor-
6c9a0 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 >execute($command,.$output);....
6c9c0 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 clearstatcache();..if.(0.===.$re
6c9e0 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a sult).{.$this->remove($source);.
6ca00 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 .return;.}.}.else.{.....$command
6ca20 20 3d 20 73 70 72 69 6e 74 66 28 27 6d 76 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 .=.sprintf('mv.%s.%s',.escapeshe
6ca40 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 llarg($source),.escapeshellarg($
6ca60 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 target));.$result.=.$this->proce
6ca80 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f ssExecutor->execute($command,.$o
6caa0 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 utput);....clearstatcache();..if
6cac0 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a .(0.===.$result).{.return;.}.}..
6cae0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f return.$this->copyThenRemove($so
6cb00 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urce,.$target);.}...........publ
6cb20 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 66 72 ic.function.findShortestPath($fr
6cb40 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b om,.$to,.$directories.=.false).{
6cb60 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 66 72 6f .if.(!$this->isAbsolutePath($fro
6cb80 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 74 6f m).||.!$this->isAbsolutePath($to
6cba0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
6cbc0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 20 61 6e 64 xception(sprintf('$from.(%s).and
6cbe0 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 .$to.(%s).must.be.absolute.paths
6cc00 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 6c 63 66 .',.$from,.$to));.}..$from.=.lcf
6cc20 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 72 6f 6d 29 irst($this->normalizePath($from)
6cc40 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a );.$to.=.lcfirst($this->normaliz
6cc60 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 29 20 ePath($to));..if.($directories).
6cc80 7b 0a 24 66 72 6f 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 27 3b 0a 7d 0a 0a 69 66 20 {.$from..=.'/dummy_file';.}..if.
6cca0 28 64 69 72 6e 61 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 6e 61 6d 65 28 24 74 6f 29 (dirname($from).===.dirname($to)
6ccc0 29 20 7b 0a 72 65 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 74 6f 29 3b 0a 7d ).{.return.'./'.basename($to);.}
6cce0 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 ..$commonPath.=.$to;.while.(strp
6cd00 6f 73 28 24 66 72 6f 6d 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f 27 29 20 21 os($from.'/',.$commonPath.'/').!
6cd20 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 ==.0.&&.'/'.!==.$commonPath.&&.!
6cd40 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d preg_match('{^[a-z]:/?$}i',.$com
6cd60 6d 6f 6e 50 61 74 68 29 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 64 69 72 6e 61 6d monPath)).{.$commonPath.=.dirnam
6cd80 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 e($commonPath);.}..if.(0.!==.str
6cda0 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d pos($from,.$commonPath).||.'/'.=
6cdc0 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a ==.$commonPath).{.return.$to;.}.
6cde0 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 .$commonPath.=.rtrim($commonPath
6ce00 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d ,.'/')...'/';.$sourcePathDepth.=
6ce20 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c .substr_count(substr($from,.strl
6ce40 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e 50 en($commonPath)),.'/');.$commonP
6ce60 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f 75 athCode.=.str_repeat('../',.$sou
6ce80 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e 50 rcePathDepth);..return.($commonP
6cea0 61 74 68 43 6f 64 65 20 2e 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f athCode...substr($to,.strlen($co
6cec0 6d 6d 6f 6e 50 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mmonPath))).?:.'./';.}..........
6cee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 .public.function.findShortestPat
6cf00 68 43 6f 64 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d hCode($from,.$to,.$directories.=
6cf20 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 .false).{.if.(!$this->isAbsolute
6cf40 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 Path($from).||.!$this->isAbsolut
6cf60 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ePath($to)).{.throw.new.\Invalid
6cf80 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d ArgumentException(sprintf('$from
6cfa0 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c .(%s).and.$to.(%s).must.be.absol
6cfc0 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 ute.paths.',.$from,.$to));.}..$f
6cfe0 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 rom.=.lcfirst($this->normalizePa
6d000 74 68 28 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d th($from));.$to.=.lcfirst($this-
6d020 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d >normalizePath($to));..if.($from
6d040 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 .===.$to).{.return.$directories.
6d060 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f ?.'__DIR__'.:.'__FILE__';.}..$co
6d080 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 mmonPath.=.$to;.while.(strpos($f
6d0a0 72 6f 6d 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 rom.'/',.$commonPath.'/').!==.0.
6d0c0 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f &&.'/'.!==.$commonPath.&&.!preg_
6d0e0 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 match('{^[a-z]:/?$}i',.$commonPa
6d100 74 68 29 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 24 63 6f th)).{.$commonPath.=.dirname($co
6d120 6d 6d 6f 6e 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 mmonPath);.}..if.(0.!==.strpos($
6d140 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 from,.$commonPath).||.'/'.===.$c
6d160 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 ommonPath).{.return.var_export($
6d180 74 6f 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 to,.true);.}..$commonPath.=.rtri
6d1a0 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 m($commonPath,.'/')...'/';.if.(s
6d1c0 74 72 70 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 trpos($to,.$from.'/').===.0).{.r
6d1e0 65 74 75 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 eturn.'__DIR__...'.var_export(su
6d200 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b bstr($to,.strlen($from)),.true);
6d220 0a 7d 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 .}.$sourcePathDepth.=.substr_cou
6d240 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 nt(substr($from,.strlen($commonP
6d260 61 74 68 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d ath)),.'/').+.$directories;.$com
6d280 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d monPathCode.=.str_repeat('dirnam
6d2a0 65 28 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 e(',.$sourcePathDepth).'__DIR__'
6d2c0 2e 73 74 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 .str_repeat(')',.$sourcePathDept
6d2e0 68 29 3b 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 h);.$relTarget.=.substr($to,.str
6d300 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d len($commonPath));..return.$comm
6d320 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 onPathCode...(strlen($relTarget)
6d340 20 3f 20 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 .?.'.'...var_export('/'...$relTa
6d360 72 67 65 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rget,.true).:.'');.}........publ
6d380 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 ic.function.isAbsolutePath($path
6d3a0 29 0a 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d ).{.return.substr($path,.0,.1).=
6d3c0 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d ==.'/'.||.substr($path,.1,.1).==
6d3e0 3d 20 27 3a 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f =.':';.}..........public.functio
6d400 6e 20 73 69 7a 65 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 n.size($path).{.if.(!file_exists
6d420 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ($path)).{.throw.new.\RuntimeExc
6d440 65 70 74 69 6f 6e 28 22 24 70 61 74 68 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b eption("$path.does.not.exist.");
6d460 0a 7d 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 .}.if.(is_dir($path)).{.return.$
6d480 74 68 69 73 2d 3e 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 this->directorySize($path);.}..r
6d4a0 65 74 75 72 6e 20 66 69 6c 65 73 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a eturn.filesize($path);.}........
6d4c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 .public.function.normalizePath($
6d4e0 70 61 74 68 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 61 74 68 20 path).{.$parts.=.array();.$path.
6d500 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 70 72 65 66 =.strtr($path,.'\\',.'/');.$pref
6d520 69 78 20 3d 20 27 27 3b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 ix.=.'';.$absolute.=.false;..if.
6d540 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 30 2d 39 61 2d 7a 5d 2b 3a 28 3f 3a 2f 2f 28 (preg_match('{^([0-9a-z]+:(?://(
6d560 3f 3a 5b 61 2d 7a 5d 3a 29 3f 29 3f 29 7d 69 27 2c 20 24 70 61 74 68 2c 20 24 6d 61 74 63 68 29 ?:[a-z]:)?)?)}i',.$path,.$match)
6d580 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 70 61 74 68 20 3d ).{.$prefix.=.$match[1];.$path.=
6d5a0 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 29 3b .substr($path,.strlen($prefix));
6d5c0 0a 7d 0a 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 .}..if.(substr($path,.0,.1).===.
6d5e0 27 2f 27 29 20 7b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 74 72 75 65 3b 0a 24 70 61 74 68 20 3d '/').{.$absolute.=.true;.$path.=
6d600 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 29 3b 0a 7d 0a 0a 24 75 70 20 3d 20 66 61 6c 73 .substr($path,.1);.}..$up.=.fals
6d620 65 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 20 e;.foreach.(explode('/',.$path).
6d640 61 73 20 24 63 68 75 6e 6b 29 20 7b 0a 69 66 20 28 27 2e 2e 27 20 3d 3d 3d 20 24 63 68 75 6e 6b as.$chunk).{.if.('..'.===.$chunk
6d660 20 26 26 20 28 24 61 62 73 6f 6c 75 74 65 20 7c 7c 20 24 75 70 29 29 20 7b 0a 61 72 72 61 79 5f .&&.($absolute.||.$up)).{.array_
6d680 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 24 75 70 20 3d 20 21 28 65 6d 70 74 79 28 24 70 61 72 74 pop($parts);.$up.=.!(empty($part
6d6a0 73 29 20 7c 7c 20 27 2e 2e 27 20 3d 3d 3d 20 65 6e 64 28 24 70 61 72 74 73 29 29 3b 0a 7d 20 65 s).||.'..'.===.end($parts));.}.e
6d6c0 6c 73 65 69 66 20 28 27 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 27 27 20 21 3d 3d 20 lseif.('.'.!==.$chunk.&&.''.!==.
6d6e0 24 63 68 75 6e 6b 29 20 7b 0a 24 70 61 72 74 73 5b 5d 20 3d 20 24 63 68 75 6e 6b 3b 0a 24 75 70 $chunk).{.$parts[].=.$chunk;.$up
6d700 20 3d 20 27 2e 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 .=.'..'.!==.$chunk;.}.}..return.
6d720 24 70 72 65 66 69 78 2e 28 24 61 62 73 6f 6c 75 74 65 20 3f 20 27 2f 27 20 3a 20 27 27 29 2e 69 $prefix.($absolute.?.'/'.:.'').i
6d740 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 mplode('/',.$parts);.}..protecte
6d760 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 64 69 72 65 63 74 d.function.directorySize($direct
6d780 6f 72 79 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 ory).{.$it.=.new.RecursiveDirect
6d7a0 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 oryIterator($directory,.Recursiv
6d7c0 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a eDirectoryIterator::SKIP_DOTS);.
6d7e0 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 $ri.=.new.RecursiveIteratorItera
6d800 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 tor($it,.RecursiveIteratorIterat
6d820 6f 72 3a 3a 43 48 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 24 73 69 7a 65 20 3d 20 30 3b 0a 66 6f or::CHILD_FIRST);..$size.=.0;.fo
6d840 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 reach.($ri.as.$file).{.if.($file
6d860 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 24 73 69 7a 65 20 2b 3d 20 24 66 69 6c 65 2d 3e 67 65 ->isFile()).{.$size.+=.$file->ge
6d880 74 53 69 7a 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 tSize();.}.}..return.$size;.}..p
6d8a0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b rotected.function.getProcess().{
6d8c0 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 7d .return.new.ProcessExecutor;.}.}
6d8e0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
6d900 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e oser\Util;..use.Composer\IO\IOIn
6d920 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 terface;.use.Composer\Config;.us
6d940 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 e.Composer\Downloader\TransportE
6d960 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e xception;.use.Composer\Json\Json
6d980 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b 0a 70 72 6f 74 65 63 74 File;.....class.GitHub.{.protect
6d9a0 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 ed.$io;.protected.$config;.prote
6d9c0 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 cted.$process;.protected.$remote
6d9e0 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Filesystem;..........public.func
6da00 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f tion.__construct(IOInterface.$io
6da20 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f ,.Config.$config,.ProcessExecuto
6da40 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 r.$process.=.null,.RemoteFilesys
6da60 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a tem.$remoteFilesystem.=.null).{.
6da80 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d $this->io.=.$io;.$this->config.=
6daa0 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 .$config;.$this->process.=.$proc
6dac0 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 ess.?:.new.ProcessExecutor;.$thi
6dae0 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c s->remoteFilesystem.=.$remoteFil
6db00 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 esystem.?:.new.RemoteFilesystem(
6db20 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 $io);.}........public.function.a
6db40 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 69 66 20 28 uthorizeOAuth($originUrl).{.if.(
6db60 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 21 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 29 20 7b 0a 72 'github.com'.!==.$originUrl).{.r
6db80 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 eturn.false;.}....if.(0.===.$thi
6dba0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 s->process->execute('git.config.
6dbc0 67 69 74 68 75 62 2e 61 63 63 65 73 73 74 6f 6b 65 6e 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b github.accesstoken',.$output)).{
6dbe0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f .$this->io->setAuthentication($o
6dc00 72 69 67 69 6e 55 72 6c 2c 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 27 78 2d 6f 61 75 74 riginUrl,.trim($output),.'x-oaut
6dc20 68 2d 62 61 73 69 63 27 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 h-basic');..return.true;.}..retu
6dc40 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rn.false;.}...........public.fun
6dc60 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c ction.authorizeOAuthInteractivel
6dc80 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b y($originUrl,.$message.=.null).{
6dca0 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6d 65 73 73 .$attemptCounter.=.0;..if.($mess
6dcc0 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 age).{.$this->io->write($message
6dce0 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 54 68 65 20 63 72 65 64 65 );.}.$this->io->write('The.crede
6dd00 6e 74 69 61 6c 73 20 77 69 6c 6c 20 62 65 20 73 77 61 70 70 65 64 20 66 6f 72 20 61 6e 20 4f 41 ntials.will.be.swapped.for.an.OA
6dd20 75 74 68 20 74 6f 6b 65 6e 20 73 74 6f 72 65 64 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e uth.token.stored.in.'.$this->con
6dd40 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 2c 20 fig->get('home').'/config.json,.
6dd60 79 6f 75 72 20 70 61 73 73 77 6f 72 64 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 73 74 6f 72 65 64 your.password.will.not.be.stored
6dd80 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 54 6f 20 72 65 76 6f 6b 65 20 ');.$this->io->write('To.revoke.
6dda0 61 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 6e 20 76 69 73 access.to.this.token.you.can.vis
6ddc0 69 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 61 it.https://github.com/settings/a
6dde0 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 77 68 69 6c 65 20 28 24 61 74 74 65 6d 70 74 43 6f pplications');.while.($attemptCo
6de00 75 6e 74 65 72 2b 2b 20 3c 20 35 29 20 7b 0a 74 72 79 20 7b 0a 24 75 73 65 72 6e 61 6d 65 20 3d unter++.<.5).{.try.{.$username.=
6de20 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 .$this->io->ask('Username:.');.$
6de40 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 password.=.$this->io->askAndHide
6de60 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d Answer('Password:.');.$this->io-
6de80 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 >setAuthentication($originUrl,.$
6dea0 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 0a 20 24 61 70 70 4e 61 6d username,.$password);....$appNam
6dec0 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d e.=.'Composer';.if.(0.===.$this-
6dee0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 6f 73 74 6e 61 6d 65 27 2c 20 24 6f >process->execute('hostname',.$o
6df00 75 74 70 75 74 29 29 20 7b 0a 24 61 70 70 4e 61 6d 65 20 2e 3d 20 27 20 6f 6e 20 27 20 2e 20 74 utput)).{.$appName..=.'.on.'...t
6df20 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 4a 73 6f rim($output);.}..$contents.=.Jso
6df40 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 nFile::parseJson($this->remoteFi
6df60 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c lesystem->getContents($originUrl
6df80 2c 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 61 75 74 68 6f 72 ,.'https://api.github.com/author
6dfa0 69 7a 61 74 69 6f 6e 73 27 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 68 74 74 70 27 20 izations',.false,.array(.'http'.
6dfc0 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 66 =>.array(.'method'.=>.'POST',.'f
6dfe0 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 68 65 61 64 65 ollow_location'.=>.false,.'heade
6e000 72 27 20 3d 3e 20 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e r'.=>."Content-Type:.application
6e020 2f 6a 73 6f 6e 5c 72 5c 6e 22 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e /json\r\n",.'content'.=>.json_en
6e040 63 6f 64 65 28 61 72 72 61 79 28 0a 27 73 63 6f 70 65 73 27 20 3d 3e 20 61 72 72 61 79 28 27 72 code(array(.'scopes'.=>.array('r
6e060 65 70 6f 27 29 2c 0a 27 6e 6f 74 65 27 20 3d 3e 20 24 61 70 70 4e 61 6d 65 2c 0a 27 6e 6f 74 65 epo'),.'note'.=>.$appName,.'note
6e080 5f 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 _url'.=>.'https://getcomposer.or
6e0a0 67 2f 27 2c 0a 29 29 2c 0a 29 0a 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f g/',.)),.).)));.}.catch.(Transpo
6e0c0 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 rtException.$e).{.if.(in_array($
6e0e0 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 29 29 29 20 e->getCode(),.array(403,.401))).
6e100 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 76 61 6c 69 64 20 63 72 65 64 {.$this->io->write('Invalid.cred
6e120 65 6e 74 69 61 6c 73 2e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 entials.');.continue;.}..throw.$
6e140 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 e;.}..$this->io->setAuthenticati
6e160 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b 65 6e 27 on($originUrl,.$contents['token'
6e180 5d 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 0a 0a 20 24 67 69 74 68 75 62 54 ],.'x-oauth-basic');....$githubT
6e1a0 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 okens.=.$this->config->get('gith
6e1c0 75 62 2d 6f 61 75 74 68 27 29 20 3f 3a 20 61 72 72 61 79 28 29 3b 0a 24 67 69 74 68 75 62 54 6f ub-oauth').?:.array();.$githubTo
6e1e0 6b 65 6e 73 5b 24 6f 72 69 67 69 6e 55 72 6c 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f kens[$originUrl].=.$contents['to
6e200 6b 65 6e 27 5d 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 69 67 53 ken'];.$this->config->getConfigS
6e220 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 ource()->addConfigSetting('githu
6e240 62 2d 6f 61 75 74 68 27 2c 20 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 b-oauth',.$githubTokens);..retur
6e260 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 n.true;.}..throw.new.\RuntimeExc
6e280 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 eption("Invalid.GitHub.credentia
6e2a0 6c 73 20 35 20 74 69 6d 65 73 20 69 6e 20 61 20 72 6f 77 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 ls.5.times.in.a.row,.aborting.")
6e2c0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
6e2e0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d .Composer\Util;..use.Symfony\Com
6e300 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 43 6f 6d 70 ponent\Process\Process;.use.Comp
6e320 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 oser\IO\IOInterface;.....class.P
6e340 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 rocessExecutor.{.protected.stati
6e360 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 c.$timeout.=.300;..protected.$ca
6e380 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 4f 75 74 ptureOutput;.protected.$errorOut
6e3a0 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 put;.protected.$io;..public.func
6e3c0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f tion.__construct(IOInterface.$io
6e3e0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a .=.null).{.$this->io.=.$io;.}...
6e400 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 ........public.function.execute(
6e420 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 $command,.&$output.=.null,.$cwd.
6e440 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 20 26 26 20 24 74 68 69 73 =.null).{.if.($this->io.&&.$this
6e460 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 73 61 66 65 43 6f 6d 6d 61 6e 64 20 ->io->isDebug()).{.$safeCommand.
6e480 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3a 2f 2f 5b 5e 3a 2f 5c 73 5d 2b 3a 29 5b =.preg_replace('{(://[^:/\s]+:)[
6e4a0 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 2a 2a 2a 2a 27 2c 20 24 63 6f 6d 6d 61 6e 64 29 3b ^@\s/]+}i',.'$1****',.$command);
6e4c0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 45 78 65 63 75 74 69 6e 67 20 63 6f 6d .$this->io->write('Executing.com
6e4e0 6d 61 6e 64 20 28 27 2e 28 24 63 77 64 20 3f 3a 20 27 43 57 44 27 29 2e 27 29 3a 20 27 2e 24 73 mand.('.($cwd.?:.'CWD').'):.'.$s
6e500 61 66 65 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d afeCommand);.}......if.(null.===
6e520 20 24 63 77 64 20 26 26 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 .$cwd.&&.defined('PHP_WINDOWS_VE
6e540 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f RSION_BUILD').&&.false.!==.strpo
6e560 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 27 67 69 74 27 29 20 26 26 20 67 65 74 63 77 64 28 29 29 20 s($command,.'git').&&.getcwd()).
6e580 7b 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 67 65 74 63 77 64 28 29 29 3b 0a 7d 0a 0a {.$cwd.=.realpath(getcwd());.}..
6e5a0 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 28 66 75 6e $this->captureOutput.=.count(fun
6e5c0 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f c_get_args()).>.1;.$this->errorO
6e5e0 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f utput.=.null;.$process.=.new.Pro
6e600 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c cess($command,.$cwd,.null,.null,
6e620 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 .static::getTimeout());..$callba
6e640 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 74 ck.=.is_callable($output).?.$out
6e660 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 put.:.array($this,.'outputHandle
6e680 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a r');.$process->run($callback);..
6e6a0 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 26 20 21 69 73 5f if.($this->captureOutput.&&.!is_
6e6c0 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 callable($output)).{.$output.=.$
6e6e0 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e process->getOutput();.}..$this->
6e700 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 errorOutput.=.$process->getError
6e720 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 Output();..return.$process->getE
6e740 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 70 xitCode();.}..public.function.sp
6e760 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 74 72 litLines($output).{.$output.=.tr
6e780 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 28 28 73 74 72 69 6e 67 29 20 24 im($output);..return.((string).$
6e7a0 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 70 72 65 67 5f output.===.'').?.array().:.preg_
6e7c0 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a split('{\r?\n}',.$output);.}....
6e7e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 ...public.function.getErrorOutpu
6e800 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 3b t().{.return.$this->errorOutput;
6e820 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 .}..public.function.outputHandle
6e840 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 r($type,.$buffer).{.if.($this->c
6e860 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 65 63 68 6f 20 aptureOutput).{.return;.}..echo.
6e880 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 $buffer;.}..public.static.functi
6e8a0 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a on.getTimeout().{.return.static:
6e8c0 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 :$timeout;.}..public.static.func
6e8e0 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 73 74 61 74 tion.setTimeout($timeout).{.stat
6e900 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 ic::$timeout.=.$timeout;.}.}.<?p
6e920 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
6e940 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 \Util;..use.Composer\IO\IOInterf
6e960 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 ace;.....class.Git.{.public.func
6e980 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 28 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 73 tion.cleanEnv().{.if.(ini_get('s
6e9a0 61 66 65 5f 6d 6f 64 65 27 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 69 afe_mode').&&.false.===.strpos(i
6e9c0 6e 69 5f 67 65 74 28 27 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f 65 6e 76 5f 76 61 ni_get('safe_mode_allowed_env_va
6e9e0 72 73 27 29 2c 20 27 47 49 54 5f 41 53 4b 50 41 53 53 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 rs'),.'GIT_ASKPASS')).{.throw.ne
6ea00 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 73 61 66 65 5f 6d 6f 64 65 20 69 w.\RuntimeException('safe_mode.i
6ea20 73 20 65 6e 61 62 6c 65 64 20 61 6e 64 20 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f s.enabled.and.safe_mode_allowed_
6ea40 65 6e 76 5f 76 61 72 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 47 49 54 5f 41 53 env_vars.does.not.contain.GIT_AS
6ea60 4b 50 41 53 53 2c 20 63 61 6e 20 6e 6f 74 20 73 65 74 20 65 6e 76 20 76 61 72 2e 20 59 6f 75 20 KPASS,.can.not.set.env.var..You.
6ea80 63 61 6e 20 64 69 73 61 62 6c 65 20 73 61 66 65 5f 6d 6f 64 65 20 77 69 74 68 20 22 2d 64 73 61 can.disable.safe_mode.with."-dsa
6eaa0 66 65 5f 6d 6f 64 65 3d 30 22 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 fe_mode=0".when.running.composer
6eac0 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 53 53 ');.}....if.(getenv('GIT_ASKPASS
6eae0 27 29 20 21 3d 3d 20 27 65 63 68 6f 27 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 41 53 4b ').!==.'echo').{.putenv('GIT_ASK
6eb00 50 41 53 53 3d 65 63 68 6f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 PASS=echo');.}....if.(getenv('GI
6eb20 54 5f 44 49 52 27 29 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 44 49 52 27 29 3b 0a 7d 0a T_DIR')).{.putenv('GIT_DIR');.}.
6eb40 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 29 20 7b 0a 70 if.(getenv('GIT_WORK_TREE')).{.p
6eb60 75 74 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f utenv('GIT_WORK_TREE');.}.}.}.<?
6eb80 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
6eba0 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a r\Util;..use.Composer\Composer;.
6ebc0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 use.Composer\IO\IOInterface;.use
6ebe0 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 .Composer\Downloader\TransportEx
6ec00 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 74 65 46 69 6c 65 73 ception;.......class.RemoteFiles
6ec20 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 66 69 ystem.{.private.$io;.private.$fi
6ec40 72 73 74 43 61 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b 0a 70 72 69 76 rstCall;.private.$bytesMax;.priv
6ec60 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 55 72 6c ate.$originUrl;.private.$fileUrl
6ec80 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 ;.private.$fileName;.private.$re
6eca0 74 72 79 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 try;.private.$progress;.private.
6ecc0 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b $lastProgress;.private.$options;
6ece0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
6ed00 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 uct(IOInterface.$io,.$options.=.
6ed20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 array()).{.$this->io.=.$io;.$thi
6ed40 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->options.=.$options;.}........
6ed60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 .....public.function.copy($origi
6ed80 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 nUrl,.$fileUrl,.$fileName,.$prog
6eda0 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 ress.=.true,.$options.=.array())
6edc0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c .{.return.$this->get($originUrl,
6ede0 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 .$fileUrl,.$options,.$fileName,.
6ee00 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $progress);.}............public.
6ee20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c function.getContents($originUrl,
6ee40 20 24 66 69 6c 65 55 72 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 .$fileUrl,.$progress.=.true,.$op
6ee60 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tions.=.array()).{.return.$this-
6ee80 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 >get($originUrl,.$fileUrl,.$opti
6eea0 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ons,.null,.$progress);.}.......p
6eec0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 ublic.function.getOptions().{.re
6eee0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->options;.}..........
6ef00 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6f 72 ......protected.function.get($or
6ef20 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 iginUrl,.$fileUrl,.$additionalOp
6ef40 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c tions.=.array(),.$fileName.=.nul
6ef60 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 79 l,.$progress.=.true).{.$this->by
6ef80 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 tesMax.=.0;.$this->originUrl.=.$
6efa0 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 69 6c originUrl;.$this->fileUrl.=.$fil
6efc0 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e 61 6d eUrl;.$this->fileName.=.$fileNam
6efe0 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 3b 0a e;.$this->progress.=.$progress;.
6f000 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 $this->lastProgress.=.null;....i
6f020 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 f.(preg_match('{^https?://(.+):(
6f040 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 27 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6d 61 74 63 68 .+)@([^/]+)}i',.$fileUrl,.$match
6f060 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f )).{.$this->io->setAuthenticatio
6f080 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 n($originUrl,.urldecode($match[1
6f0a0 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f ]),.urldecode($match[2]));.}..$o
6f0c0 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c ptions.=.$this->getOptionsForUrl
6f0e0 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 ($originUrl,.$additionalOptions)
6f100 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 ;..if.($this->io->isDebug()).{.$
6f120 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 28 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c this->io->write((substr($fileUrl
6f140 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 20 3f 20 27 44 6f 77 6e 6c 6f 61 64 69 6e ,.0,.4).===.'http'.?.'Downloadin
6f160 67 20 27 20 3a 20 27 52 65 61 64 69 6e 67 20 27 29 20 2e 20 24 66 69 6c 65 55 72 6c 29 3b 0a 7d g.'.:.'Reading.')...$fileUrl);.}
6f180 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 .if.(isset($options['github-toke
6f1a0 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 55 72 6c 20 2e 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 n'])).{.$fileUrl..=.(false.===.s
6f1c0 74 72 70 6f 73 28 24 66 69 6c 65 55 72 6c 2c 20 27 3f 27 29 20 3f 20 27 3f 27 20 3a 20 27 26 27 trpos($fileUrl,.'?').?.'?'.:.'&'
6f1e0 29 20 2e 20 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 3d 27 2e 24 6f 70 74 69 6f 6e 73 5b 27 67 69 )...'access_token='.$options['gi
6f200 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 thub-token'];.unset($options['gi
6f220 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 3b 0a 7d 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f thub-token']);.}.$ctx.=.StreamCo
6f240 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 66 69 6c 65 55 72 ntextFactory::getContext($fileUr
6f260 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e l,.$options,.array('notification
6f280 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 '.=>.array($this,.'callbackGet')
6f2a0 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 ));..if.($this->progress).{.$thi
6f2c0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c s->io->write("....Downloading:.<
6f2e0 63 6f 6d 6d 65 6e 74 3e 63 6f 6e 6e 65 63 74 69 6f 6e 2e 2e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 comment>connection...</comment>"
6f300 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b ,.false);.}..$errorMessage.=.'';
6f320 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 30 3b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 .$errorCode.=.0;.$result.=.false
6f340 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 ;.set_error_handler(function.($c
6f360 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 ode,.$msg).use.(&$errorMessage).
6f380 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 {.if.($errorMessage).{.$errorMes
6f3a0 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d sage..=."\n";.}.$errorMessage..=
6f3c0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e .preg_replace('{^file_get_conten
6f3e0 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 74 72 ts\(.*?\):.}',.'',.$msg);.});.tr
6f400 79 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 y.{.$result.=.file_get_contents(
6f420 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 7d 20 63 61 74 63 68 20 $fileUrl,.false,.$ctx);.}.catch.
6f440 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 (\Exception.$e).{.if.($e.instanc
6f460 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 65 6d 70 74 79 eof.TransportException.&&.!empty
6f480 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 ($http_response_header[0])).{.$e
6f4a0 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 ->setHeaders($http_response_head
6f4c0 65 72 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 26 26 20 21 69 er);.}.}.if.($errorMessage.&&.!i
6f4e0 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 ni_get('allow_url_fopen')).{.$er
6f500 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 6d 75 rorMessage.=.'allow_url_fopen.mu
6f520 73 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 70 68 70 2e 69 6e 69 20 28 27 2e 24 65 72 72 st.be.enabled.in.php.ini.('.$err
6f540 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 orMessage.')';.}.restore_error_h
6f560 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 20 26 26 20 21 24 74 68 69 andler();.if.(isset($e).&&.!$thi
6f580 73 2d 3e 72 65 74 72 79 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 s->retry).{.throw.$e;.}....if.(!
6f5a0 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 empty($http_response_header[0]).
6f5c0 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 28 5b 34 35 5d 5c &&.preg_match('{^HTTP/\S+.([45]\
6f5e0 64 5c 64 29 7d 69 27 2c 20 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 d\d)}i',.$http_response_header[0
6f600 5d 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 24 ],.$match)).{.$result.=.false;.$
6f620 65 72 72 6f 72 43 6f 64 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 errorCode.=.$match[1];.}....if.(
6f640 24 72 65 73 75 6c 74 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 $result.&&.extension_loaded('zli
6f660 62 27 29 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d b').&&.substr($fileUrl,.0,.4).==
6f680 3d 20 27 68 74 74 70 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 =.'http').{.$decode.=.false;.for
6f6a0 65 61 63 68 20 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 20 24 each.($http_response_header.as.$
6f6c0 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 header).{.if.(preg_match('{^cont
6f6e0 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 61 64 ent-encoding:.*gzip.*$}i',.$head
6f700 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b er)).{.$decode.=.true;.continue;
6f720 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 7d 69 .}.elseif.(preg_match('{^HTTP/}i
6f740 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a ',.$header)).{.$decode.=.false;.
6f760 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f }.}..if.($decode).{.if.(version_
6f780 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 2e 30 27 2c 20 27 3e compare(PHP_VERSION,.'5.4.0',.'>
6f7a0 3d 27 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 24 72 65 =')).{.$result.=.zlib_decode($re
6f7c0 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 sult);.}.else.{...$result.=.file
6f7e0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a 2f 2f 64 _get_contents('compress.zlib://d
6f800 61 74 61 3a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b 62 61 73 ata:application/octet-stream;bas
6f820 65 36 34 2c 27 2e 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d e64,'.base64_encode($result));.}
6f840 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 .}.}..if.($this->progress).{.$th
6f860 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 is->io->overwrite("....Downloadi
6f880 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 31 30 30 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 29 3b 0a 7d ng:.<comment>100%</comment>");.}
6f8a0 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 6e 75 6c ....if.(false.!==.$result.&&.nul
6f8c0 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 72 l.!==.$fileName).{.if.(''.===.$r
6f8e0 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 esult).{.throw.new.TransportExce
6f900 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 61 70 70 65 ption('"'.$this->fileUrl.'".appe
6f920 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 6d 70 74 ars.broken,.and.returned.an.empt
6f940 79 20 32 30 30 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 y.200.response');.}..$errorMessa
6f960 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 ge.=.'';.set_error_handler(funct
6f980 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 ion.($code,.$msg).use.(&$errorMe
6f9a0 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 ssage).{.if.($errorMessage).{.$e
6f9c0 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 rrorMessage..=."\n";.}.$errorMes
6f9e0 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 70 75 74 sage..=.preg_replace('{^file_put
6fa00 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b _contents\(.*?\):.}',.'',.$msg);
6fa20 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 66 69 6c 65 5f 70 75 74 5f 63 .});.$result.=.(bool).file_put_c
6fa40 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a 72 65 73 ontents($fileName,.$result);.res
6fa60 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 tore_error_handler();.if.(false.
6fa80 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f ===.$result).{.throw.new.Transpo
6faa0 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 rtException('The."'.$this->fileU
6fac0 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 rl.'".file.could.not.be.written.
6fae0 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 to.'.$fileName.':.'.$errorMessag
6fb00 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 24 74 68 e);.}.}..if.($this->retry).{.$th
6fb20 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 is->retry.=.false;..return.$this
6fb40 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 ->get($this->originUrl,.$this->f
6fb60 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 ileUrl,.$additionalOptions,.$thi
6fb80 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d s->fileName,.$this->progress);.}
6fba0 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 65 20 3d 20 ..if.(false.===.$result).{.$e.=.
6fbc0 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 new.TransportException('The."'.$
6fbe0 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 this->fileUrl.'".file.could.not.
6fc00 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 be.downloaded:.'.$errorMessage,.
6fc20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 $errorCode);.if.(!empty($http_re
6fc40 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 sponse_header[0])).{.$e->setHead
6fc60 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 0a 74 ers($http_response_header);.}..t
6fc80 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a hrow.$e;.}..return.$result;.}...
6fca0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c ..........protected.function.cal
6fcc0 6c 62 61 63 6b 47 65 74 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 2c 20 24 73 65 76 lbackGet($notificationCode,.$sev
6fce0 65 72 69 74 79 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 2c 20 24 erity,.$message,.$messageCode,.$
6fd00 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 2c 20 24 62 79 74 65 73 4d 61 78 29 0a 7b 0a 73 bytesTransferred,.$bytesMax).{.s
6fd20 77 69 74 63 68 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 29 20 7b 0a 63 61 73 65 witch.($notificationCode).{.case
6fd40 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 45 3a 0a 63 61 73 65 20 53 54 52 .STREAM_NOTIFY_FAILURE:.case.STR
6fd60 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 3a 0a 69 66 20 28 34 30 EAM_NOTIFY_AUTH_REQUIRED:.if.(40
6fd80 31 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 1.===.$messageCode).{.if.(!$this
6fda0 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 ->io->isInteractive()).{.$messag
6fdc0 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 e.=."The.'"...$this->fileUrl..."
6fde0 27 20 55 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e '.URL.required.authentication.\n
6fe00 59 6f 75 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 You.must.be.using.the.interactiv
6fe20 65 20 63 6f 6e 73 6f 6c 65 22 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 e.console";..throw.new.Transport
6fe40 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 34 30 31 29 3b 0a 7d 0a 0a 24 74 68 Exception($message,.401);.}..$th
6fe60 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 is->io->overwrite('....Authentic
6fe80 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 ation.required.(<info>'.parse_ur
6fea0 6c 28 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e l($this->fileUrl,.PHP_URL_HOST).
6fec0 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d '</info>):');.$username.=.$this-
6fee0 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 >io->ask('......Username:.');.$p
6ff00 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 assword.=.$this->io->askAndHideA
6ff20 6e 73 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 nswer('......Password:.');.$this
6ff40 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f ->io->setAuthentication($this->o
6ff60 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b riginUrl,.$username,.$password);
6ff80 0a 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 74 68 72 6f 77 20 6e 65 77 ..$this->retry.=.true;.throw.new
6ffa0 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 52 45 54 52 59 27 29 3b 0a 62 72 .TransportException('RETRY');.br
6ffc0 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 20 3d 3d eak;.}..if.($notificationCode.==
6ffe0 3d 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 29 20 7b =.STREAM_NOTIFY_AUTH_REQUIRED).{
70000 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 .break;.}..throw.new.TransportEx
70020 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 ception('The."'.$this->fileUrl.'
70040 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 ".file.could.not.be.downloaded.(
70060 27 2e 74 72 69 6d 28 24 6d 65 73 73 61 67 65 29 2e 27 29 27 2c 20 24 6d 65 73 73 61 67 65 43 6f '.trim($message).')',.$messageCo
70080 64 65 29 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 de);..case.STREAM_NOTIFY_AUTH_RE
700a0 53 55 4c 54 3a 0a 69 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 SULT:.if.(403.===.$messageCode).
700c0 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 {.$message.=."The.'"...$this->fi
700e0 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 63 63 65 leUrl..."'.URL.could.not.be.acce
70100 73 73 65 64 3a 20 22 20 2e 20 24 6d 65 73 73 61 67 65 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 ssed:."...$message;..throw.new.T
70120 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 34 30 33 29 ransportException($message,.403)
70140 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 ;.}.break;..case.STREAM_NOTIFY_F
70160 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 ILE_SIZE_IS:.if.($this->bytesMax
70180 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 .<.$bytesMax).{.$this->bytesMax.
701a0 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 =.$bytesMax;.}.break;..case.STRE
701c0 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 AM_NOTIFY_PROGRESS:.if.($this->b
701e0 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 ytesMax.>.0.&&.$this->progress).
70200 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e {.$progression.=.0;..if.($this->
70220 62 79 74 65 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 72 bytesMax.>.0).{.$progression.=.r
70240 6f 75 6e 64 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 20 2f 20 24 74 68 69 73 2d 3e ound($bytesTransferred./.$this->
70260 62 79 74 65 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 28 30 20 3d 3d 3d 20 24 bytesMax.*.100);.}..if.((0.===.$
70280 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 70 72 6f 67 72 65 73 73 69 6f 6e progression.%.5).&&.$progression
702a0 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 .!==.$this->lastProgress).{.$thi
702c0 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 3b 0a s->lastProgress.=.$progression;.
702e0 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f $this->io->overwrite("....Downlo
70300 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 72 65 73 73 69 6f 6e 25 3c 2f 63 ading:.<comment>$progression%</c
70320 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 64 65 omment>",.false);.}.}.break;..de
70340 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e fault:.break;.}.}..protected.fun
70360 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 ction.getOptionsForUrl($originUr
70380 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 0a 7b 0a 24 68 65 61 64 65 72 l,.$additionalOptions).{.$header
703a0 73 20 3d 20 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d 41 67 65 6e 74 3a s.=.array(.sprintf(.'User-Agent:
703c0 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b 20 50 48 50 20 25 73 2e 25 73 2e .Composer/%s.(%s;.%s;.PHP.%s.%s.
703e0 25 73 29 27 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d 3d 20 27 34 36 65 %s)',.Composer::VERSION.===.'46e
70400 35 35 35 34 31 65 37 33 32 35 36 62 38 61 35 61 63 62 39 64 62 61 34 65 31 61 66 36 32 30 39 64 55541e73256b8a5acb9dba4e1af6209d
70420 66 64 66 35 33 27 20 3f 20 27 73 6f 75 72 63 65 27 20 3a 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 fdf53'.?.'source'.:.Composer::VE
70440 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f 75 6e 61 6d 65 RSION,.php_uname('s'),.php_uname
70460 28 27 72 27 29 2c 0a 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 4d 49 ('r'),.PHP_MAJOR_VERSION,.PHP_MI
70480 4e 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e NOR_VERSION,.PHP_RELEASE_VERSION
704a0 0a 29 0a 29 3b 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 .).);..if.(extension_loaded('zli
704c0 62 27 29 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 63 63 65 70 74 2d 45 6e 63 6f b')).{.$headers[].=.'Accept-Enco
704e0 64 69 6e 67 3a 20 67 7a 69 70 27 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 ding:.gzip';.}..$options.=.array
70500 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e _replace_recursive($this->option
70520 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 74 68 s,.$additionalOptions);..if.($th
70540 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 is->io->hasAuthentication($origi
70560 6e 55 72 6c 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 nUrl)).{.$auth.=.$this->io->getA
70580 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 69 66 20 28 27 uthentication($originUrl);.if.('
705a0 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 20 26 26 20 27 78 github.com'.===.$originUrl.&&.'x
705c0 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 20 3d 3d 3d 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 -oauth-basic'.===.$auth['passwor
705e0 64 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 20 d']).{.$options['github-token'].
70600 3d 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 =.$auth['username'];.}.else.{.$a
70620 75 74 68 53 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 uthStr.=.base64_encode($auth['us
70640 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 ername']...':'...$auth['password
70660 27 5d 29 3b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e ']);.$headers[].=.'Authorization
70680 3a 20 42 61 73 69 63 20 27 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 :.Basic.'.$authStr;.}.}..if.(iss
706a0 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 20 26 et($options['http']['header']).&
706c0 26 20 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 &.!is_array($options['http']['he
706e0 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 ader'])).{.$options['http']['hea
70700 64 65 72 27 5d 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 74 72 69 6d 28 24 6f 70 der'].=.explode("\r\n",.trim($op
70720 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 2c 20 22 5c 72 5c 6e 22 29 tions['http']['header'],."\r\n")
70740 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 );.}.foreach.($headers.as.$heade
70760 72 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 5b r).{.$options['http']['header'][
70780 5d 20 3d 20 24 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 73 3b ].=.$header;.}..return.$options;
707a0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
707c0 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 Composer\Util;........final.clas
707e0 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a s.StreamContextFactory.{........
70800 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 ..public.static.function.getCont
70820 65 78 74 28 24 75 72 6c 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 20 ext($url,.array.$defaultOptions.
70840 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 20 =.array(),.array.$defaultParams.
70860 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 68 =.array()).{.$options.=.array('h
70880 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 0a 20 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f ttp'.=>.array(...'follow_locatio
708a0 6e 27 20 3d 3e 20 31 2c 0a 27 6d 61 78 5f 72 65 64 69 72 65 63 74 73 27 20 3d 3e 20 32 30 2c 0a n'.=>.1,.'max_redirects'.=>.20,.
708c0 29 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 ));....if.(!empty($_SERVER['HTTP
708e0 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 _PROXY']).||.!empty($_SERVER['ht
70900 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f tp_proxy'])).{...$proxy.=.parse_
70920 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 url(!empty($_SERVER['http_proxy'
70940 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f ]).?.$_SERVER['http_proxy'].:.$_
70960 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 SERVER['HTTP_PROXY']);.}..if.(!e
70980 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 69 73 73 65 mpty($proxy)).{.$proxyURL.=.isse
709a0 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 73 63 t($proxy['scheme']).?.$proxy['sc
709c0 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 3a 20 27 27 3b 0a 24 70 72 6f 78 79 55 52 4c 20 2e heme']...'://'.:.'';.$proxyURL..
709e0 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 6f 78 79 =.isset($proxy['host']).?.$proxy
70a00 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 ['host'].:.'';..if.(isset($proxy
70a20 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 20 2e 20 ['port'])).{.$proxyURL..=.":"...
70a40 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 3a $proxy['port'];.}.elseif.('http:
70a60 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 29 29 20 //'.==.substr($proxyURL,.0,.7)).
70a80 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 {.$proxyURL..=.":80";.}.elseif.(
70aa0 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 'https://'.==.substr($proxyURL,.
70ac0 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b 0a 7d 0a 0,.8)).{.$proxyURL..=.":443";.}.
70ae0 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 ...$proxyURL.=.str_replace(array
70b00 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 79 28 27 ('http://',.'https://'),.array('
70b20 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c 29 3b 0a tcp://',.'ssl://'),.$proxyURL);.
70b40 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 27 73 73 .if.(0.===.strpos($proxyURL,.'ss
70b60 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 l:').&&.!extension_loaded('opens
70b80 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 sl')).{.throw.new.\RuntimeExcept
70ba0 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c ion('You.must.enable.the.openssl
70bc0 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 72 20 68 .extension.to.use.a.proxy.over.h
70be0 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f ttps');.}..$options['http']['pro
70c00 78 79 27 5d 20 3d 20 24 70 72 6f 78 79 55 52 4c 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 xy'].=.$proxyURL;....if.(!empty(
70c20 24 5f 53 45 52 56 45 52 5b 27 6e 6f 5f 70 72 6f 78 79 27 5d 29 20 26 26 20 70 61 72 73 65 5f 75 $_SERVER['no_proxy']).&&.parse_u
70c40 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 29 20 7b 0a 24 70 61 74 74 65 rl($url,.PHP_URL_HOST)).{.$patte
70c60 72 6e 20 3d 20 6e 65 77 20 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 28 24 5f 53 45 52 56 45 52 rn.=.new.NoProxyPattern($_SERVER
70c80 5b 27 6e 6f 5f 70 72 6f 78 79 27 5d 29 3b 0a 69 66 20 28 24 70 61 74 74 65 72 6e 2d 3e 74 65 73 ['no_proxy']);.if.($pattern->tes
70ca0 74 28 24 75 72 6c 29 29 20 7b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 t($url)).{.unset($options['http'
70cc0 5d 5b 27 70 72 6f 78 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 ]['proxy']);.}.}....if.(!empty($
70ce0 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 73 options['http']['proxy'])).{...s
70d00 77 69 74 63 68 20 28 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 witch.(parse_url($url,.PHP_URL_S
70d20 43 48 45 4d 45 29 29 20 7b 0a 63 61 73 65 20 27 68 74 74 70 27 3a 20 0a 20 24 72 65 71 46 75 6c CHEME)).{.case.'http':...$reqFul
70d40 6c 55 72 69 45 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 lUriEnv.=.getenv('HTTP_PROXY_REQ
70d60 55 45 53 54 5f 46 55 4c 4c 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 UEST_FULLURI');.if.($reqFullUriE
70d80 6e 76 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d nv.===.false.||.$reqFullUriEnv.=
70da0 3d 3d 20 27 27 20 7c 7c 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 ==.''.||.(strtolower($reqFullUri
70dc0 45 6e 76 29 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 Env).!==.'false'.&&.(bool).$reqF
70de0 75 6c 6c 55 72 69 45 6e 76 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 ullUriEnv)).{.$options['http']['
70e00 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 request_fulluri'].=.true;.}.brea
70e20 6b 3b 0a 63 61 73 65 20 27 68 74 74 70 73 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e k;.case.'https':...$reqFullUriEn
70e40 76 20 3d 20 67 65 74 65 6e 76 28 27 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f v.=.getenv('HTTPS_PROXY_REQUEST_
70e60 46 55 4c 4c 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d FULLURI');.if.($reqFullUriEnv.==
70e80 3d 20 66 61 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 27 27 =.false.||.$reqFullUriEnv.===.''
70ea0 20 7c 7c 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 20 .||.(strtolower($reqFullUriEnv).
70ec0 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 6c 6c 55 72 !==.'false'.&&.(bool).$reqFullUr
70ee0 69 45 6e 76 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 65 71 75 65 iEnv)).{.$options['http']['reque
70f00 73 74 5f 66 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a st_fulluri'].=.true;.}.break;.}.
70f20 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 .if.(isset($proxy['user'])).{.$a
70f40 75 74 68 20 3d 20 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 uth.=.$proxy['user'];.if.(isset(
70f60 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 $proxy['pass'])).{.$auth..=.':'.
70f80 2e 20 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 73 65 ..$proxy['pass'];.}.$auth.=.base
70fa0 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64_encode($auth);....if.(isset($
70fc0 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d defaultOptions['http']['header']
70fe0 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f )).{.if.(is_string($defaultOptio
71000 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c ns['http']['header'])).{.$defaul
71020 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 tOptions['http']['header'].=.arr
71040 61 79 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 ay($defaultOptions['http']['head
71060 65 72 27 5d 29 3b 0a 7d 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d er']);.}.$defaultOptions['http']
71080 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 ['header'][].=."Proxy-Authorizat
710a0 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f ion:.Basic.{$auth}";.}.else.{.$o
710c0 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 ptions['http']['header'].=.array
710e0 28 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 ("Proxy-Authorization:.Basic.{$a
71100 75 74 68 7d 22 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 uth}");.}.}.}.}..$options.=.arra
71120 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 y_replace_recursive($options,.$d
71140 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 efaultOptions);..if.(isset($opti
71160 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f ons['http']['header'])).{.$optio
71180 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 65 6c 66 3a 3a 66 69 78 ns['http']['header'].=.self::fix
711a0 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d HttpHeaderField($options['http']
711c0 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 63 6f ['header']);.}..return.stream_co
711e0 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 50 ntext_create($options,.$defaultP
71200 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 arams);.}............private.sta
71220 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 tic.function.fixHttpHeaderField(
71240 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 68 65 61 64 65 72 $header).{.if.(!is_array($header
71260 29 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 24 )).{.$header.=.explode("\r\n",.$
71280 68 65 61 64 65 72 29 3b 0a 7d 0a 75 61 73 6f 72 74 28 24 68 65 61 64 65 72 2c 20 66 75 6e 63 74 header);.}.uasort($header,.funct
712a0 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ion.($el).{.return.preg_match('{
712c0 5e 63 6f 6e 74 65 6e 74 2d 74 79 70 65 7d 69 27 2c 20 24 65 6c 29 20 3f 20 31 20 3a 20 2d 31 3b ^content-type}i',.$el).?.1.:.-1;
712e0 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a .});..return.$header;.}.}.<?php.
71300 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ...........namespace.Composer\Ut
71320 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 il;..use.Composer\Package\Loader
71340 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \ArrayLoader;.use.Composer\Packa
71360 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b ge\Loader\ValidatingArrayLoader;
71380 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 .use.Composer\Package\Loader\Inv
713a0 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 alidPackageException;.use.Compos
713c0 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b er\Json\JsonValidationException;
713e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 .use.Composer\IO\IOInterface;.us
71400 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a e.Composer\Json\JsonFile;.......
71420 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 .class.ConfigValidator.{.private
71440 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .$io;..public.function.__constru
71460 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 ct(IOInterface.$io).{.$this->io.
71480 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.$io;.}.........public.function
714a0 20 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 29 0a 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 .validate($file).{.$errors.=.arr
714c0 61 79 28 29 3b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ay();.$publishErrors.=.array();.
714e0 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 6c 61 78 56 61 6c 69 $warnings.=.array();....$laxVali
71500 64 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f d.=.false;.try.{.$json.=.new.Jso
71520 6e 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 nFile($file,.new.RemoteFilesyste
71540 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 6a 73 6f 6e m($this->io));.$manifest.=.$json
71560 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 ->read();..$json->validateSchema
71580 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 56 61 6c 69 (JsonFile::LAX_SCHEMA);.$laxVali
715a0 64 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 d.=.true;.$json->validateSchema(
715c0 29 3b 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 );.}.catch.(JsonValidationExcept
715e0 69 6f 6e 20 24 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 ion.$e).{.foreach.($e->getErrors
71600 28 29 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 6c 61 78 56 61 6c 69 64 29 ().as.$message).{.if.($laxValid)
71620 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a .{.$publishErrors[].=.$message;.
71640 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d }.else.{.$errors[].=.$message;.}
71660 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 .}.}.catch.(\Exception.$e).{.$er
71680 72 6f 72 73 5b 5d 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 0a 72 65 74 75 rors[].=.$e->getMessage();..retu
716a0 72 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 rn.array($errors,.$publishErrors
716c0 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 6d ,.$warnings);.}....if.(!empty($m
716e0 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 69 73 5f anifest['license'])).{...if.(is_
71700 61 72 72 61 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 66 array($manifest['license'])).{.f
71720 6f 72 65 61 63 68 20 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 61 73 20 oreach.($manifest['license'].as.
71740 24 6b 65 79 20 3d 3e 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 $key.=>.$license).{.if.('proprie
71760 74 61 72 79 27 20 3d 3d 3d 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 6e tary'.===.$license).{.unset($man
71780 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a ifest['license'][$key]);.}.}.}..
717a0 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 78 4c 69 63 65 $licenseValidator.=.new.SpdxLice
717c0 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 nseIdentifier();.if.('proprietar
717e0 79 27 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 61 y'.!==.$manifest['license'].&&.a
71800 72 72 61 79 28 29 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 rray().!==.$manifest['license'].
71820 26 26 20 21 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 &&.!$licenseValidator->validate(
71840 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e $manifest['license'])).{.$warnin
71860 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 69 73 20 6e gs[].=.sprintf(.'License.%s.is.n
71880 6f 74 20 61 20 76 61 6c 69 64 20 53 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e 74 69 66 69 ot.a.valid.SPDX.license.identifi
718a0 65 72 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 er,.see.http://www.spdx.org/lice
718c0 6e 73 65 73 2f 20 69 66 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 nses/.if.you.use.an.open.license
718e0 2e 27 0a 2e 22 5c 6e 49 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 6c 6f 73 65 64 .'.."\nIf.the.software.is.closed
71900 2d 73 6f 75 72 63 65 2c 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 72 69 65 74 61 -source,.you.may.use.\"proprieta
71920 72 79 5c 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 ry\".as.license.",.json_encode($
71940 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 manifest['license']).);.}.}.else
71960 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 20 73 70 65 .{.$warnings[].=.'No.license.spe
71980 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 64 6f 20 cified,.it.is.recommended.to.do.
719a0 73 6f 2e 20 46 6f 72 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 61 72 65 20 79 so..For.closed-source.software.y
719c0 6f 75 20 6d 61 79 20 75 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 20 6c 69 63 65 ou.may.use."proprietary".as.lice
719e0 6e 73 65 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 nse.';.}..if.(!empty($manifest['
71a00 6e 61 6d 65 27 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d 5a 5d 7d 27 2c name']).&&.preg_match('{[A-Z]}',
71a20 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 67 65 73 74 4e .$manifest['name'])).{.$suggestN
71a40 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 2d 7a 5d 29 28 ame.=.preg_replace('{(?:([a-z])(
71a60 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 7d 27 2c 20 27 [A-Z])|([A-Z])([A-Z][a-z]))}',.'
71a80 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 \\1\\3-\\2\\4',.$manifest['name'
71aa0 5d 29 3b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 ]);.$suggestName.=.strtolower($s
71ac0 75 67 67 65 73 74 4e 61 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 uggestName);..$warnings[].=.spri
71ae0 6e 74 66 28 0a 27 4e 61 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 ntf(.'Name."%s".does.not.match.t
71b00 68 65 20 62 65 73 74 20 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 72 2d 63 61 73 he.best.practice.(e.g..lower-cas
71b20 65 64 2f 77 69 74 68 2d 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 20 75 73 69 6e ed/with-dashes)..We.suggest.usin
71b40 67 20 22 25 73 22 20 69 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 20 77 69 6c 6c g."%s".instead..As.such.you.will
71b60 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 6f 20 50 61 63 .not.be.able.to.submit.it.to.Pac
71b80 6b 61 67 69 73 74 2e 27 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 2c 0a 24 73 75 kagist.',.$manifest['name'],.$su
71ba0 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 ggestName.);.}..if.(!empty($mani
71bc0 66 65 73 74 5b 27 74 79 70 65 27 5d 29 20 26 26 20 24 6d 61 6e 69 66 65 73 74 5b 27 74 79 70 65 fest['type']).&&.$manifest['type
71be0 27 5d 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 20 7b 0a 24 77 '].==.'composer-installer').{.$w
71c00 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 22 54 68 65 20 70 61 63 6b 61 67 65 20 74 79 70 65 20 27 63 arnings[].=."The.package.type.'c
71c20 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 69 73 20 64 65 70 72 65 63 61 74 65 64 omposer-installer'.is.deprecated
71c40 2e 20 50 6c 65 61 73 65 20 64 69 73 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 75 73 74 6f 6d 20 ..Please.distribute.your.custom.
71c60 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 70 6c 75 67 69 6e 73 20 66 72 6f 6d 20 6e 6f 77 20 6f installers.as.plugins.from.now.o
71c80 6e 2e 20 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f n..See.http://getcomposer.org/do
71ca0 63 2f 61 72 74 69 63 6c 65 73 2f 70 6c 75 67 69 6e 73 2e 6d 64 20 66 6f 72 20 70 6c 75 67 69 6e c/articles/plugins.md.for.plugin
71cc0 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 .documentation.";.}..try.{.$load
71ce0 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e er.=.new.ValidatingArrayLoader(n
71d00 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d ew.ArrayLoader());.if.(!isset($m
71d20 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 anifest['version'])).{.$manifest
71d40 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 69 66 20 28 21 69 73 ['version'].=.'1.0.0';.}.if.(!is
71d60 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 set($manifest['name'])).{.$manif
71d80 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f 64 75 6d 6d 79 27 3b 0a 7d 0a 24 est['name'].=.'dummy/dummy';.}.$
71da0 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 loader->load($manifest);.}.catch
71dc0 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a .(InvalidPackageException.$e).{.
71de0 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 $errors.=.array_merge($errors,.$
71e00 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 e->getErrors());.}..$warnings.=.
71e20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 61 72 6e 69 6e 67 73 2c 20 24 6c 6f 61 64 65 72 2d 3e array_merge($warnings,.$loader->
71e40 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 65 getWarnings());..return.array($e
71e60 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 rrors,.$publishErrors,.$warnings
71e80 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
71ea0 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 72 72 e.Composer\Util;.......class.Err
71ec0 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 orHandler.{............public.st
71ee0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 28 24 6c 65 76 65 6c 2c 20 24 6d 65 atic.function.handle($level,.$me
71f00 73 73 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 0a 7b 0a 0a 20 69 66 20 28 21 65 72 ssage,.$file,.$line).{...if.(!er
71f20 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 ror_reporting()).{.return;.}..if
71f40 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 29 29 20 7b 0a 24 6d .(ini_get('xdebug.scream')).{.$m
71f60 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 6e 67 3a 20 59 6f 75 20 68 61 76 65 essage..=."\n\nWarning:.You.have
71f80 20 78 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c 65 64 2c 20 74 68 65 20 77 61 72 6e .xdebug.scream.enabled,.the.warn
71fa0 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 5c 6e 61 20 6c 65 67 69 74 69 6d 61 ing.above.may.be".."\na.legitima
71fc0 74 65 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f 72 20 74 68 61 74 20 79 6f 75 20 77 tely.suppressed.error.that.you.w
71fe0 65 72 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 73 65 65 2e 22 3b 0a 7d 0a 0a 74 68 ere.not.supposed.to.see.";.}..th
72000 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 row.new.\ErrorException($message
72020 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a ,.0,.$level,.$file,.$line);.}...
72040 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 ....public.static.function.regis
72060 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 61 72 72 61 79 28 ter().{.set_error_handler(array(
72080 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 __CLASS__,.'handle'));.}.}.<?php
720a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 ............namespace.Composer\U
720c0 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 til;..use.Composer\Json\JsonFile
720e0 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 ;........class.SpdxLicenseIdenti
72100 66 69 65 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 64 65 6e 74 69 66 69 65 72 73 3b 0a fier.{....private.$identifiers;.
72120 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b .public.function.__construct().{
72140 0a 24 74 68 69 73 2d 3e 69 6e 69 74 49 64 65 6e 74 69 66 69 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a .$this->initIdentifiers();.}....
72160 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 6c 69 ....public.function.validate($li
72180 63 65 6e 73 65 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e 73 65 29 29 cense).{.if.(is_array($license))
721a0 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 69 66 20 .{.$count.=.count($license);.if.
721c0 28 24 63 6f 75 6e 74 20 21 3d 3d 20 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 ($count.!==.count(array_filter($
721e0 6c 69 63 65 6e 73 65 2c 20 27 69 73 5f 73 74 72 69 6e 67 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 license,.'is_string'))).{.throw.
72200 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 new.\InvalidArgumentException('A
72220 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 rray.of.strings.expected.');.}.$
72240 6c 69 63 65 6e 73 65 20 3d 20 24 63 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 2e 69 6d 70 6c 6f license.=.$count.>.1.?.'('.implo
72260 64 65 28 27 20 6f 72 20 27 2c 20 24 6c 69 63 65 6e 73 65 29 2e 27 29 27 20 3a 20 28 73 74 72 69 de('.or.',.$license).')'.:.(stri
72280 6e 67 29 20 72 65 73 65 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 ng).reset($license);.}.if.(!is_s
722a0 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e tring($license)).{.throw.new.\In
722c0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a validArgumentException(sprintf(.
722e0 27 41 72 72 61 79 20 6f 72 20 53 74 72 69 6e 67 20 65 78 70 65 63 74 65 64 2c 20 25 73 20 67 69 'Array.or.String.expected,.%s.gi
72300 76 65 6e 2e 27 2c 20 67 65 74 74 79 70 65 28 24 6c 69 63 65 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a ven.',.gettype($license).));.}..
72320 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 return.$this->isValidLicenseStri
72340 6e 67 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ng($license);.}.....private.func
72360 74 69 6f 6e 20 69 6e 69 74 49 64 65 6e 74 69 66 69 65 72 73 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 tion.initIdentifiers().{.$jsonFi
72380 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e le.=.new.JsonFile(__DIR__...'/..
723a0 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 27 /../../res/spdx-identifier.json'
723c0 29 3b 0a 24 74 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 20 3d 20 24 6a 73 6f 6e 46 69 6c );.$this->identifiers.=.$jsonFil
723e0 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 e->read();.}.......private.funct
72400 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 ion.isValidLicenseIdentifier($id
72420 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 69 64 65 entifier).{.return.in_array($ide
72440 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 29 3b 0a 7d 0a ntifier,.$this->identifiers);.}.
72460 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c .......private.function.isValidL
72480 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 icenseString($license).{.$tokens
724a0 20 3d 20 61 72 72 61 79 28 0a 27 70 6f 27 20 3d 3e 20 27 5c 28 27 2c 0a 27 70 63 27 20 3d 3e 20 .=.array(.'po'.=>.'\(',.'pc'.=>.
724c0 27 5c 29 27 2c 0a 27 6f 70 27 20 3d 3e 20 27 28 3f 3a 6f 72 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 '\)',.'op'.=>.'(?:or|and)',.'lix
724e0 27 20 3d 3e 20 27 28 3f 3a 4e 4f 4e 45 7c 4e 4f 41 53 53 45 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 '.=>.'(?:NONE|NOASSERTION)',.'li
72500 72 27 20 3d 3e 20 27 4c 69 63 65 6e 73 65 52 65 66 2d 5c 64 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e r'.=>.'LicenseRef-\d+',.'lic'.=>
72520 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 2d 5a 30 2d 39 5d 7b 33 2c 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 .'[-+_.a-zA-Z0-9]{3,}',.'ws'.=>.
72540 27 5c 73 2b 27 2c 0a 27 5f 27 20 3d 3e 20 27 2e 27 2c 0a 29 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 '\s+',.'_'.=>.'.',.);..$next.=.f
72560 75 6e 63 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6c 69 63 65 6e 73 65 2c 20 24 74 6f 6b 65 6e unction.().use.($license,.$token
72580 73 29 20 7b 0a 73 74 61 74 69 63 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6f s).{.static.$offset.=.0;..if.($o
725a0 66 66 73 65 74 20 3e 3d 20 73 74 72 6c 65 6e 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 72 65 74 ffset.>=.strlen($license)).{.ret
725c0 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 urn.null;.}..foreach.($tokens.as
725e0 20 24 6e 61 6d 65 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d .$name.=>.$token).{.if.(false.==
72600 3d 20 24 72 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 20 2e 20 24 74 6f 6b 65 6e 20 2e =.$r.=.preg_match('{'...$token..
72620 20 27 7d 27 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f .'}',.$license,.$matches,.PREG_O
72640 46 46 53 45 54 5f 43 41 50 54 55 52 45 2c 20 24 6f 66 66 73 65 74 29 29 20 7b 0a 74 68 72 6f 77 FFSET_CAPTURE,.$offset)).{.throw
72660 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 74 74 65 72 6e 20 .new.\RuntimeException('Pattern.
72680 66 6f 72 20 74 6f 6b 65 6e 20 25 73 20 66 61 69 6c 65 64 20 28 72 65 67 65 78 20 65 72 72 6f 72 for.token.%s.failed.(regex.error
726a0 29 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 69 66 20 28 24 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 ).',.$name);.}.if.($r.===.0).{.c
726c0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 31 5d 20 21 3d ontinue;.}.if.($matches[0][1].!=
726e0 3d 20 24 6f 66 66 73 65 74 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 =.$offset).{.continue;.}.$offset
72700 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 .+=.strlen($matches[0][0]);..ret
72720 75 72 6e 20 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 urn.array($name,.$matches[0][0])
72740 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ;.}..throw.new.\RuntimeException
72760 28 27 41 74 20 6c 65 61 73 74 20 74 68 65 20 6c 61 73 74 20 70 61 74 74 65 72 6e 20 6e 65 65 64 ('At.least.the.last.pattern.need
72780 73 20 74 6f 20 6d 61 74 63 68 2c 20 62 75 74 20 69 74 20 64 69 64 20 6e 6f 74 20 28 64 6f 74 2d s.to.match,.but.it.did.not.(dot-
727a0 6d 61 74 63 68 2d 61 6c 6c 20 69 73 20 6d 69 73 73 69 6e 67 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 match-all.is.missing?).');.};..$
727c0 6f 70 65 6e 20 3d 20 30 3b 0a 24 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 24 6c 61 73 74 6f 70 20 open.=.0;.$require.=.1;.$lastop.
727e0 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 6c 69 73 74 28 24 74 6f 6b 65 6e 2c 20 24 73 74 =.null;..while.(list($token,.$st
72800 72 69 6e 67 29 20 3d 20 24 6e 65 78 74 28 29 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 ring).=.$next()).{.switch.($toke
72820 6e 29 20 7b 0a 63 61 73 65 20 27 70 6f 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 7c 7c 20 21 24 72 n).{.case.'po':.if.($open.||.!$r
72840 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 equire).{.return.false;.}.$open.
72860 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 63 27 3a 0a 69 66 20 28 24 6f 70 65 6e =.1;.break;.case.'pc':.if.($open
72880 20 21 3d 3d 20 31 20 7c 7c 20 24 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6c 61 73 74 6f 70 29 20 .!==.1.||.$require.||.!$lastop).
728a0 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 32 3b 0a 62 72 65 {.return.false;.}.$open.=.2;.bre
728c0 61 6b 3b 0a 63 61 73 65 20 27 6f 70 27 3a 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 7c 7c 20 21 ak;.case.'op':.if.($require.||.!
728e0 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 $open).{.return.false;.}.$lastop
72900 20 7c 7c 20 24 6c 61 73 74 6f 70 20 3d 20 24 73 74 72 69 6e 67 3b 0a 69 66 20 28 24 6c 61 73 74 .||.$lastop.=.$string;.if.($last
72920 6f 70 20 21 3d 3d 20 24 73 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a op.!==.$string).{.return.false;.
72940 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6c 69 78 }.$require.=.1;.break;.case.'lix
72960 27 3a 0a 69 66 20 28 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a ':.if.($open).{.return.false;.}.
72980 67 6f 74 6f 20 6c 69 72 3b 0a 63 61 73 65 20 27 6c 69 63 27 3a 0a 69 66 20 28 21 24 74 68 69 73 goto.lir;.case.'lic':.if.(!$this
729a0 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 73 74 72 69 ->isValidLicenseIdentifier($stri
729c0 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 20 63 61 73 65 20 27 6c ng)).{.return.false;.}...case.'l
729e0 69 72 27 3a 0a 6c 69 72 3a 0a 69 66 20 28 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 ir':.lir:.if.(!$require).{.retur
72a00 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a n.false;.}.$require.=.0;.break;.
72a20 63 61 73 65 20 27 77 73 27 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 5f 27 3a 0a 72 65 74 75 case.'ws':.break;.case.'_':.retu
72a40 72 6e 20 66 61 6c 73 65 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 rn.false;.default:.throw.new.\Ru
72a60 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 70 61 72 73 65 64 ntimeException(sprintf('Unparsed
72a80 20 74 6f 6b 65 6e 3a 20 25 73 2e 27 2c 20 70 72 69 6e 74 5f 72 28 24 74 6f 6b 65 6e 2c 20 74 72 .token:.%s.',.print_r($token,.tr
72aa0 75 65 29 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 28 24 6f 70 65 6e 20 25 20 32 20 7c ue)));.}.}..return.!($open.%.2.|
72ac0 7c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a |.$require);.}.}.<?php..........
72ae0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 ..namespace.Composer\Util;.....c
72b00 6c 61 73 73 20 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 lass.NoProxyPattern.{....protect
72b20 65 64 20 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ed.$rules.=.array();.....public.
72b40 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b function.__construct($pattern).{
72b60 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 22 2f 5b 5c 73 .$this->rules.=.preg_split("/[\s
72b80 2c 5d 2b 2f 22 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ,]+/",.$pattern);.}.........publ
72ba0 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 28 24 75 72 6c 29 0a 7b 0a 24 68 6f 73 74 20 3d ic.function.test($url).{.$host.=
72bc0 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a .parse_url($url,.PHP_URL_HOST);.
72be0 24 70 6f 72 74 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f $port.=.parse_url($url,.PHP_URL_
72c00 50 4f 52 54 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 70 6f 72 74 29 29 20 7b 0a 73 77 69 74 PORT);..if.(empty($port)).{.swit
72c20 63 68 20 28 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 ch.(parse_url($url,.PHP_URL_SCHE
72c40 4d 45 29 29 20 7b 0a 63 61 73 65 20 27 68 74 74 70 27 3a 0a 24 70 6f 72 74 20 3d 20 38 30 3b 0a ME)).{.case.'http':.$port.=.80;.
72c60 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 68 74 74 70 73 27 3a 0a 24 70 6f 72 74 20 3d 20 34 34 33 break;.case.'https':.$port.=.443
72c80 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 ;.break;.}.}..foreach.($this->ru
72ca0 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 3d 3d 20 27 2a 27 les.as.$rule).{.if.($rule.==.'*'
72cc0 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c ).{.return.true;.}..$match.=.fal
72ce0 73 65 3b 0a 0a 6c 69 73 74 28 24 72 75 6c 65 48 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 se;..list($ruleHost).=.explode('
72d00 3a 27 2c 20 24 72 75 6c 65 29 3b 0a 6c 69 73 74 28 24 62 61 73 65 29 20 3d 20 65 78 70 6c 6f 64 :',.$rule);.list($base).=.explod
72d20 65 28 27 2f 27 2c 20 24 72 75 6c 65 48 6f 73 74 29 3b 0a 0a 69 66 20 28 66 69 6c 74 65 72 5f 76 e('/',.$ruleHost);..if.(filter_v
72d40 61 72 28 24 62 61 73 65 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 ar($base,.FILTER_VALIDATE_IP,.FI
72d60 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 34 29 29 20 7b 0a 0a 0a 69 66 20 28 21 69 73 73 65 74 28 LTER_FLAG_IPV4)).{...if.(!isset(
72d80 24 69 70 29 29 20 7b 0a 24 69 70 20 3d 20 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 28 24 68 6f 73 $ip)).{.$ip.=.gethostbyname($hos
72da0 74 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2f 27 t);.}..if.(strpos($ruleHost,.'/'
72dc0 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 24 69 70 20 3d 3d 3d 20 ).===.false).{.$match.=.$ip.===.
72de0 24 72 75 6c 65 48 6f 73 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 61 74 63 68 20 3d 20 73 65 6c $ruleHost;.}.else.{.$match.=.sel
72e00 66 3a 3a 69 6e 43 49 44 52 42 6c 6f 63 6b 28 24 72 75 6c 65 48 6f 73 74 2c 20 24 69 70 29 3b 0a f::inCIDRBlock($ruleHost,.$ip);.
72e20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 0a 24 68 61 79 73 74 61 63 6b 20 3d 20 27 2e 27 20 2e 20 74 }.}.else.{...$haystack.=.'.'...t
72e40 72 69 6d 28 24 68 6f 73 74 2c 20 27 2e 27 29 20 2e 20 27 2e 27 3b 0a 24 6e 65 65 64 6c 65 20 3d rim($host,.'.')...'.';.$needle.=
72e60 20 27 2e 27 2e 20 74 72 69 6d 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2e 27 29 20 2e 27 2e 27 3b .'.'..trim($ruleHost,.'.')..'.';
72e80 0a 24 6d 61 74 63 68 20 3d 20 73 74 72 69 70 6f 73 28 73 74 72 72 65 76 28 24 68 61 79 73 74 61 .$match.=.stripos(strrev($haysta
72ea0 63 6b 29 2c 20 73 74 72 72 65 76 28 24 6e 65 65 64 6c 65 29 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a ck),.strrev($needle)).===.0;.}..
72ec0 0a 20 69 66 20 28 24 6d 61 74 63 68 20 26 26 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 3a ..if.($match.&&.strpos($rule,.':
72ee0 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 6c 69 73 74 28 2c 20 24 72 75 6c 65 50 6f 72 74 ').!==.false).{.list(,.$rulePort
72f00 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b 0a 69 66 20 28 21 65 6d ).=.explode(':',.$rule);.if.(!em
72f20 70 74 79 28 24 72 75 6c 65 50 6f 72 74 29 20 26 26 20 24 70 6f 72 74 20 21 3d 20 24 72 75 6c 65 pty($rulePort).&&.$port.!=.$rule
72f40 50 6f 72 74 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 Port).{.$match.=.false;.}.}..if.
72f60 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 ($match).{.return.true;.}.}..ret
72f80 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 urn.false;.}............private.
72fa0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 43 49 44 52 42 6c 6f 63 6b 28 24 63 69 64 static.function.inCIDRBlock($cid
72fc0 72 2c 20 24 69 70 29 0a 7b 0a 0a 20 6c 69 73 74 28 24 62 61 73 65 2c 20 24 62 69 74 73 29 20 3d r,.$ip).{...list($base,.$bits).=
72fe0 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 63 69 64 72 29 3b 0a 0a 0a 20 6c 69 73 74 28 24 61 .explode('/',.$cidr);....list($a
73000 2c 20 24 62 2c 20 24 63 2c 20 24 64 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 61 ,.$b,.$c,.$d).=.explode('.',.$ba
73020 73 65 29 3b 0a 0a 0a 20 24 69 20 3d 20 28 24 61 20 3c 3c 20 32 34 29 20 2b 20 28 24 62 20 3c 3c se);....$i.=.($a.<<.24).+.($b.<<
73040 20 31 36 29 20 2b 20 28 24 63 20 3c 3c 20 38 29 20 2b 20 24 64 3b 0a 24 6d 61 73 6b 20 3d 20 24 .16).+.($c.<<.8).+.$d;.$mask.=.$
73060 62 69 74 73 20 3d 3d 20 30 20 3f 20 30 3a 20 28 7e 30 20 3c 3c 20 28 33 32 20 2d 20 24 62 69 74 bits.==.0.?.0:.(~0.<<.(32.-.$bit
73080 73 29 29 3b 0a 0a 0a 20 24 6c 6f 77 20 3d 20 24 69 20 26 20 24 6d 61 73 6b 3b 0a 0a 0a 20 24 68 s));....$low.=.$i.&.$mask;....$h
730a0 69 67 68 20 3d 20 24 69 20 7c 20 28 7e 24 6d 61 73 6b 20 26 20 30 78 46 46 46 46 46 46 46 46 29 igh.=.$i.|.(~$mask.&.0xFFFFFFFF)
730c0 3b 0a 0a 0a 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 2c 20 24 64 29 20 3d 20 65 78 70 6c ;....list($a,.$b,.$c,.$d).=.expl
730e0 6f 64 65 28 27 2e 27 2c 20 24 69 70 29 3b 0a 0a 0a 20 24 63 68 65 63 6b 20 3d 20 28 24 61 20 3c ode('.',.$ip);....$check.=.($a.<
73100 3c 20 32 34 29 20 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b 20 28 24 63 20 3c 3c 20 38 29 20 2b <.24).+.($b.<<.16).+.($c.<<.8).+
73120 20 24 64 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 24 63 68 65 63 6b 20 3e 3d 20 24 6c 6f 77 20 .$d;......return.$check.>=.$low.
73140 26 26 20 24 63 68 65 63 6b 20 3c 3d 20 24 68 69 67 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a &&.$check.<=.$high;.}.}.<?php...
73160 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c .........namespace.Composer\Util
73180 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a ;..use.Composer\IO\IOInterface;.
731a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 63 6f 6e 73 74 20 4d 41 58 5f 51 54 59 5f 41 .....class.Svn.{.const.MAX_QTY_A
731c0 55 54 48 5f 54 52 49 45 53 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 72 UTH_TRIES.=.5;.....protected.$cr
731e0 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 41 75 74 edentials;.....protected.$hasAut
73200 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 h;.....protected.$io;.....protec
73220 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 ted.$url;.....protected.$cacheCr
73240 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 edentials.=.true;.....protected.
73260 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 71 74 79 41 75 74 68 $process;.....protected.$qtyAuth
73280 54 72 69 65 73 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Tries.=.0;.......public.function
732a0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 .__construct($url,.IOInterface.$
732c0 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e io,.ProcessExecutor.$process.=.n
732e0 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d ull).{.$this->url.=.$url;.$this-
73300 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f >io.=.$io;.$this->process.=.$pro
73320 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 0a cess.?:.new.ProcessExecutor;.}..
73340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 ..............public.function.ex
73360 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c ecute($command,.$url,.$cwd.=.nul
73380 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 l,.$path.=.null,.$verbose.=.fals
733a0 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d e).{.$svnCommand.=.$this->getCom
733c0 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 mand($command,.$url,.$path);.$ou
733e0 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 tput.=.null;.$io.=.$this->io;.$h
73400 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 andler.=.function.($type,.$buffe
73420 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 24 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 r).use.(&$output,.$io,.$verbose)
73440 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e .{.if.($type.!==.'out').{.return
73460 3b 0a 7d 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 62 75 66 66 65 72 3b 0a 69 66 20 28 24 76 65 72 ;.}.$output..=.$buffer;.if.($ver
73480 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 bose).{.$io->write($buffer,.fals
734a0 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 74 61 74 75 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 e);.}.};.$status.=.$this->proces
734c0 73 2d 3e 65 78 65 63 75 74 65 28 24 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 s->execute($svnCommand,.$handler
734e0 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 ,.$cwd);.if.(0.===.$status).{.re
73500 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6f 75 74 70 turn.$output;.}..if.(empty($outp
73520 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d ut)).{.$output.=.$this->process-
73540 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 >getErrorOutput();.}....if.(fals
73560 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 20 6e 6f e.===.stripos($output,.'Could.no
73580 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 0a 26 26 20 66 t.authenticate.to.server:').&&.f
735a0 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 61 75 74 68 6f alse.===.stripos($output,.'autho
735c0 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 rization.failed').&&.false.===.s
735e0 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 45 31 37 30 30 30 31 3a 27 29 tripos($output,.'svn:.E170001:')
73600 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
73620 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 $output);.}....if.(!$this->io->i
73640 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e sInteractive()).{.throw.new.\Run
73660 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 timeException(.'can.not.ask.for.
73680 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 authentication.in.non.interactiv
736a0 65 20 6d 6f 64 65 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 e.mode.('.$output.')'.);.}....if
736c0 20 28 24 74 68 69 73 2d 3e 71 74 79 41 75 74 68 54 72 69 65 73 2b 2b 20 3c 20 73 65 6c 66 3a 3a .($this->qtyAuthTries++.<.self::
736e0 4d 41 58 5f 51 54 59 5f 41 55 54 48 5f 54 52 49 45 53 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 MAX_QTY_AUTH_TRIES.||.!$this->ha
73700 73 41 75 74 68 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 41 75 74 68 44 61 6e 63 65 28 29 3b sAuth()).{.$this->doAuthDance();
73720 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 ....return.$this->execute($comma
73740 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 nd,.$url,.$cwd,.$path,.$verbose)
73760 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ;.}..throw.new.\RuntimeException
73780 28 0a 27 77 72 6f 6e 67 20 63 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 28 27 (.'wrong.credentials.provided.('
737a0 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 .$output.')'.);.}.......protecte
737c0 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 68 44 61 6e 63 65 28 29 0a 7b 0a 24 74 68 69 73 d.function.doAuthDance().{.$this
737e0 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 54 68 65 20 53 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 ->io->write("The.Subversion.serv
73800 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d 29 20 72 65 71 75 65 73 74 65 64 20 63 72 65 64 er.({$this->url}).requested.cred
73820 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 entials:");..$this->hasAuth.=.tr
73840 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 ue;.$this->credentials['username
73860 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 '].=.$this->io->ask("Username:."
73880 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 );.$this->credentials['password'
738a0 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 ].=.$this->io->askAndHideAnswer(
738c0 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 "Password:.");..$this->cacheCred
738e0 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 entials.=.$this->io->askConfirma
73900 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 76 65 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 tion("Should.Subversion.cache.th
73920 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f 20 28 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 ese.credentials?.(yes/no).",.tru
73940 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 e);..return.$this;.}...........p
73960 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d rotected.function.getCommand($cm
73980 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 d,.$url,.$path.=.null).{.$cmd.=.
739a0 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 20 25 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e sprintf('%s.%s%s.%s',.$cmd,.'--n
739c0 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 on-interactive.',.$this->getCred
739e0 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 entialString(),.escapeshellarg($
73a00 75 72 6c 29 0a 29 3b 0a 0a 69 66 20 28 24 70 61 74 68 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 url).);..if.($path).{.$cmd..=.'.
73a20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 '...escapeshellarg($path);.}..re
73a40 74 75 72 6e 20 24 63 6d 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 turn.$cmd;.}.........protected.f
73a60 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 0a 7b 0a unction.getCredentialString().{.
73a80 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 if.(!$this->hasAuth()).{.return.
73aa0 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 0a 27 20 25 73 2d 2d 75 73 65 '';.}..return.sprintf(.'.%s--use
73ac0 72 6e 61 6d 65 20 25 73 20 2d 2d 70 61 73 73 77 6f 72 64 20 25 73 20 27 2c 0a 24 74 68 69 73 2d rname.%s.--password.%s.',.$this-
73ae0 3e 67 65 74 41 75 74 68 43 61 63 68 65 28 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 >getAuthCache(),.escapeshellarg(
73b00 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 6e 61 6d 65 28 29 29 2c 0a 65 73 63 61 70 65 73 68 65 $this->getUsername()),.escapeshe
73b20 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 67 65 74 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d llarg($this->getPassword()).);.}
73b40 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 ........protected.function.getPa
73b60 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c ssword().{.if.($this->credential
73b80 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 s.===.null).{.throw.new.\LogicEx
73ba0 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 ception("No.svn.auth.detected.")
73bc0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 ;.}..return.isset($this->credent
73be0 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 ials['password']).?.$this->crede
73c00 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a ntials['password'].:.'';.}......
73c20 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 ..protected.function.getUsername
73c40 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 ().{.if.($this->credentials.===.
73c60 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f null).{.throw.new.\LogicExceptio
73c80 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 n("No.svn.auth.detected.");.}..r
73ca0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 eturn.$this->credentials['userna
73cc0 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e me'];.}.......protected.function
73ce0 20 68 61 73 41 75 74 68 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d .hasAuth().{.if.(null.!==.$this-
73d00 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 >hasAuth).{.return.$this->hasAut
73d20 68 3b 0a 7d 0a 0a 24 75 72 69 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 h;.}..$uri.=.parse_url($this->ur
73d40 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 69 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 72 l);.if.(empty($uri['user'])).{.r
73d60 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a eturn.$this->hasAuth.=.false;.}.
73d80 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 .$this->credentials['username'].
73da0 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 75 72 69 5b =.$uri['user'];.if.(!empty($uri[
73dc0 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 'pass'])).{.$this->credentials['
73de0 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 0a 72 65 password'].=.$uri['pass'];.}..re
73e00 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a turn.$this->hasAuth.=.true;.}...
73e20 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 61 ....protected.function.getAuthCa
73e40 63 68 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 che().{.return.$this->cacheCrede
73e60 6e 74 69 61 6c 73 20 3f 20 27 27 20 3a 20 27 2d 2d 6e 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 27 ntials.?.''.:.'--no-auth-cache.'
73e80 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
73ea0 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 .Composer;..use.Composer\Package
73ec0 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f \RootPackageInterface;.use.Compo
73ee0 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\Package\Locker;.use.Composer
73f00 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 \Repository\RepositoryManager;.u
73f20 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 se.Composer\Installer\Installati
73f40 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 onManager;.use.Composer\Plugin\P
73f60 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c luginManager;.use.Composer\Downl
73f80 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f oader\DownloadManager;.use.Compo
73fa0 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 ser\EventDispatcher\EventDispatc
73fc0 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c her;.use.Composer\Autoload\Autol
73fe0 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 oadGenerator;.......class.Compos
74000 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 34 36 65 35 35 35 34 31 65 37 er.{.const.VERSION.=.'46e55541e7
74020 33 32 35 36 62 38 61 35 61 63 62 39 64 62 61 34 65 31 61 66 36 32 30 39 64 66 64 66 35 33 27 3b 3256b8a5acb9dba4e1af6209dfdf53';
74040 0a 63 6f 6e 73 74 20 52 45 4c 45 41 53 45 5f 44 41 54 45 20 3d 20 27 32 30 31 33 2d 30 39 2d 32 .const.RELEASE_DATE.=.'2013-09-2
74060 36 20 31 33 3a 35 31 3a 34 39 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 6.13:51:49';.....private.$packag
74080 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 e;.....private.$locker;.....priv
740a0 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 ate.$repositoryManager;.....priv
740c0 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 ate.$downloadManager;.....privat
740e0 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 e.$installationManager;.....priv
74100 61 74 65 20 24 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ate.$pluginManager;.....private.
74120 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 $config;.....private.$eventDispa
74140 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 tcher;.....private.$autoloadGene
74160 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 rator;......public.function.setP
74180 61 63 6b 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ackage(RootPackageInterface.$pac
741a0 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 kage).{.$this->package.=.$packag
741c0 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b e;.}.....public.function.getPack
741e0 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d age().{.return.$this->package;.}
74200 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 28 43 .....public.function.setConfig(C
74220 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d onfig.$config).{.$this->config.=
74240 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .$config;.}.....public.function.
74260 67 65 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 getConfig().{.return.$this->conf
74280 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 ig;.}.....public.function.setLoc
742a0 6b 65 72 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 ker(Locker.$locker).{.$this->loc
742c0 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ker.=.$locker;.}.....public.func
742e0 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.getLocker().{.return.$this-
74300 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 >locker;.}.....public.function.s
74320 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 etRepositoryManager(RepositoryMa
74340 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 nager.$manager).{.$this->reposit
74360 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 oryManager.=.$manager;.}.....pub
74380 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 lic.function.getRepositoryManage
743a0 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 r().{.return.$this->repositoryMa
743c0 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 nager;.}.....public.function.set
743e0 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 DownloadManager(DownloadManager.
74400 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 $manager).{.$this->downloadManag
74420 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 er.=.$manager;.}.....public.func
74440 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 tion.getDownloadManager().{.retu
74460 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a rn.$this->downloadManager;.}....
74480 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e .public.function.setInstallation
744a0 4d 61 6e 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 6d 61 6e Manager(InstallationManager.$man
744c0 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ager).{.$this->installationManag
744e0 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 er.=.$manager;.}.....public.func
74500 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a tion.getInstallationManager().{.
74520 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 return.$this->installationManage
74540 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 6c 75 67 r;.}.....public.function.setPlug
74560 69 6e 4d 61 6e 61 67 65 72 28 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 inManager(PluginManager.$manager
74580 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 ).{.$this->pluginManager.=.$mana
745a0 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c ger;.}.....public.function.getPl
745c0 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6c uginManager().{.return.$this->pl
745e0 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 uginManager;.}.....public.functi
74600 6f 6e 20 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 on.setEventDispatcher(EventDispa
74620 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d tcher.$eventDispatcher).{.$this-
74640 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 >eventDispatcher.=.$eventDispatc
74660 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 76 her;.}.....public.function.getEv
74680 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e entDispatcher().{.return.$this->
746a0 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eventDispatcher;.}.....public.fu
746c0 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 41 75 74 6f nction.setAutoloadGenerator(Auto
746e0 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 loadGenerator.$autoloadGenerator
74700 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 ).{.$this->autoloadGenerator.=.$
74720 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 autoloadGenerator;.}.....public.
74740 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a function.getAutoloadGenerator().
74760 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f {.return.$this->autoloadGenerato
74780 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 r;.}.}.<?php............namespac
747a0 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d e.Composer\Json;.....class.JsonM
747c0 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 52 45 43 anipulator.{.private.static.$REC
747e0 55 52 53 45 5f 42 4c 4f 43 4b 53 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f URSE_BLOCKS;.private.static.$JSO
74800 4e 5f 56 41 4c 55 45 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 53 54 N_VALUE;.private.static.$JSON_ST
74820 52 49 4e 47 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 RING;..private.$contents;.privat
74840 65 20 24 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 e.$newline;.private.$indent;..pu
74860 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 blic.function.__construct($conte
74880 6e 74 73 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b nts).{.if.(!self::$RECURSE_BLOCK
748a0 53 29 20 7b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 20 3d 20 27 28 3f S).{.self::$RECURSE_BLOCKS.=.'(?
748c0 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c :[^{}]*|\{(?:[^{}]*|\{(?:[^{}]*|
748e0 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a \{(?:[^{}]*|\{[^{}]*\})*\})*\})*
74900 5c 7d 29 2a 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 20 3d 20 27 22 28 3f \})*';.self::$JSON_STRING.=.'"(?
74920 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 :\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0
74940 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 29 -9]{4}|[^\0-\x09\x0a-\x1f\\\\"])
74960 2a 22 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 20 3d 20 27 28 3f 3a 5b 30 2d *"';.self::$JSON_VALUE.=.'(?:[0-
74980 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 27 2e 73 65 6c 66 3a 3a 24 4a 53 9.]+|null|true|false|'.self::$JS
749a0 4f 4e 5f 53 54 52 49 4e 47 2e 27 7c 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a ON_STRING.'|\[[^\]]*\]|\{'.self:
749c0 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 27 3b 0a 7d 0a 0a 24 63 6f 6e 74 :$RECURSE_BLOCKS.'\})';.}..$cont
749e0 65 6e 74 73 20 3d 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 69 66 20 28 21 70 72 65 ents.=.trim($contents);.if.(!pre
74a00 67 5f 6d 61 74 63 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c 7d 24 23 73 27 2c 20 24 63 6f 6e 74 65 6e g_match('#^\{(.*)\}$#s',.$conten
74a20 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e ts)).{.throw.new.\InvalidArgumen
74a40 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 6a 73 6f 6e 20 66 69 6c 65 20 6d 75 73 74 20 62 tException('The.json.file.must.b
74a60 65 20 61 6e 20 6f 62 6a 65 63 74 20 28 7b 7d 29 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6e 65 77 e.an.object.({})');.}.$this->new
74a80 6c 69 6e 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 line.=.false.!==.strpos($content
74aa0 73 2c 20 22 5c 72 5c 6e 22 29 20 3f 20 22 5c 72 5c 6e 22 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 s,."\r\n").?."\r\n":."\n";.$this
74ac0 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 ->contents.=.$contents.===.'{}'.
74ae0 3f 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 ?.'{'...$this->newline...'}'.:.$
74b00 63 6f 6e 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 contents;.$this->detectIndenting
74b20 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e ();.}..public.function.getConten
74b40 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 ts().{.return.$this->contents...
74b60 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $this->newline;.}..public.functi
74b80 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e on.addLink($type,.$package,.$con
74ba0 73 74 72 61 69 6e 74 29 0a 7b 0a 24 64 61 74 61 20 3d 20 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 straint).{.$data.=.@json_decode(
74bc0 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 20 28 6e $this->contents,.true);....if.(n
74be0 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d ull.===.$data).{.return.false;.}
74c00 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 24 74 79 70 65 5d 29 29 20 7b 0a ....if.(!isset($data[$type])).{.
74c20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 return.$this->addMainKey($type,.
74c40 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b array($package.=>.$constraint));
74c60 0a 7d 0a 0a 24 72 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 .}..$regex.=.'{^(\s*\{\s*(?:'.se
74c80 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a lf::$JSON_STRING.'\s*:\s*'.self:
74ca0 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e :$JSON_VALUE.'\s*,\s*)*?)'..'('.
74cc0 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 74 79 70 preg_quote(JsonFile::encode($typ
74ce0 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 e)).'\s*:\s*)('.self::$JSON_VALU
74d00 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 E.')(.*)}s';.if.(!preg_match($re
74d20 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 29 gex,.$this->contents,.$matches))
74d40 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 6d 61 .{.return.false;.}..$links.=.$ma
74d60 74 63 68 65 73 5b 33 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 24 74 79 70 65 tches[3];..if.(isset($data[$type
74d80 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 0a 20 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 ][$package])).{...$packageRegex.
74da0 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 =.str_replace('/',.'\\\\?/',.pre
74dc0 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 g_quote($package));...$links.=.p
74de0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 reg_replace('{"'.$packageRegex.'
74e00 22 28 5c 73 2a 3a 5c 73 2a 29 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 "(\s*:\s*)'.self::$JSON_STRING.'
74e20 7d 69 27 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 }i',.addcslashes(JsonFile::encod
74e40 65 28 24 70 61 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e e($package).'${1}"'.$constraint.
74e60 27 22 27 2c 20 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 '"',.'\\'),.$links);.}.else.{.if
74e80 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 5c 7b 5c 73 2a 5c 53 2b 2e 2a 3f 28 5c .(preg_match('#^\s*\{\s*\S+.*?(\
74ea0 73 2a 5c 7d 5c 73 2a 29 24 23 73 27 2c 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b s*\}\s*)$#s',.$links,.$match)).{
74ec0 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 7b 27 2e 70 72 ...$links.=.preg_replace(.'{'.pr
74ee0 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 68 5b 31 5d 29 2e 27 24 7d 27 2c 0a 61 64 64 63 73 6c eg_quote($match[1]).'$}',.addcsl
74f00 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 ashes(','...$this->newline...$th
74f20 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f is->indent...$this->indent...Jso
74f40 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f nFile::encode($package).':.'.Jso
74f60 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d 61 nFile::encode($constraint)...$ma
74f80 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 tch[1],.'\\'),.$links.);.}.else.
74fa0 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e {...$links.=.'{'...$this->newlin
74fc0 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e e...$this->indent...$this->inden
74fe0 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 t...JsonFile::encode($package).'
75000 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 :.'.JsonFile::encode($constraint
75020 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 )...$this->newline...$this->inde
75040 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d nt...'}';.}.}..$this->contents.=
75060 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 24 6c 69 .$matches[1]...$matches[2]...$li
75080 6e 6b 73 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b nks...$matches[4];..return.true;
750a0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 .}..public.function.addRepositor
750c0 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 y($name,.$config).{.return.$this
750e0 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e 61 ->addSubNode('repositories',.$na
75100 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e me,.$config);.}..public.function
75120 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 .removeRepository($name).{.retur
75140 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f n.$this->removeSubNode('reposito
75160 72 69 65 73 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ries',.$name);.}..public.functio
75180 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 n.addConfigSetting($name,.$value
751a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 63 6f ).{.return.$this->addSubNode('co
751c0 6e 66 69 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 nfig',.$name,.$value);.}..public
751e0 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e .function.removeConfigSetting($n
75200 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f ame).{.return.$this->removeSubNo
75220 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 de('config',.$name);.}..public.f
75240 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e unction.addSubNode($mainNode,.$n
75260 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 ame,.$value).{...if.(!preg_match
75280 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 ('#"'.$mainNode.'":\s*\{#',.$thi
752a0 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 s->contents)).{.$this->addMainKe
752c0 79 28 27 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 27 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 20 3d y(''.$mainNode.'',.array($name.=
752e0 3e 20 24 76 61 6c 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 73 75 >.$value));..return.true;.}..$su
75300 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 bName.=.null;.if.(false.!==.strp
75320 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 73 os($name,.'.')).{.list($name,.$s
75340 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d 65 2c 20 32 29 ubName).=.explode('.',.$name,.2)
75360 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e ;.}....$nodeRegex.=.'#("'.$mainN
75380 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 ode.'":\s*\{)('.self::$RECURSE_B
753a0 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 LOCKS.')(\})#s';.if.(!preg_match
753c0 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d ($nodeRegex,.$this->contents,.$m
753e0 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 atch)).{.return.false;.}..$child
75400 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 ren.=.$match[2];....if.(!@json_d
75420 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 ecode('{'.$children.'}')).{.retu
75440 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 0a 20 69 rn.false;.}..$that.=.$this;....i
75460 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 f.(preg_match('{("'.preg_quote($
75480 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 name).'"\s*:\s*)('.self::$JSON_V
754a0 41 4c 55 45 2e 27 29 28 2c 3f 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 ALUE.')(,?)}',.$children,.$match
754c0 65 73 29 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f es)).{.$children.=.preg_replace_
754e0 63 61 6c 6c 62 61 63 6b 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 callback('{("'.preg_quote($name)
75500 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e .'"\s*:\s*)('.self::$JSON_VALUE.
75520 27 29 28 2c 3f 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 ')(,?)}',.function.($matches).us
75540 65 20 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 24 74 68 61 e.($name,.$subName,.$value,.$tha
75560 74 29 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 t).{.if.($subName.!==.null).{.$c
75580 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c urVal.=.json_decode($matches[2],
755a0 20 74 72 75 65 29 3b 0a 24 63 75 72 56 61 6c 5b 24 73 75 62 4e 61 6d 65 5d 20 3d 20 24 76 61 6c .true);.$curVal[$subName].=.$val
755c0 75 65 3b 0a 24 76 61 6c 75 65 20 3d 20 24 63 75 72 56 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ue;.$value.=.$curVal;.}..return.
755e0 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c $matches[1]...$that->format($val
75600 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 24 63 68 69 6c 64 72 ue,.1)...$matches[3];.},.$childr
75620 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 en);.}.elseif.(preg_match('#[^\s
75640 5d 28 5c 73 2a 29 24 23 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b ](\s*)$#',.$children,.$match)).{
75660 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 .if.($subName.!==.null).{.$value
75680 20 3d 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a .=.array($subName.=>.$value);.}.
756a0 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 ...$children.=.preg_replace(.'#'
756c0 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 .$match[1].'$#',.addcslashes(','
756e0 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e ...$this->newline...$this->inden
75700 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e t...$this->indent...JsonFile::en
75720 63 6f 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 code($name).':.'.$this->format($
75740 76 61 6c 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 63 value,.1)...$match[1],.'\\'),.$c
75760 68 69 6c 64 72 65 6e 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 hildren.);.}.else.{.if.($subName
75780 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 75 62 .!==.null).{.$value.=.array($sub
757a0 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 Name.=>.$value);.}....$children.
757c0 3d 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 =.$this->newline...$this->indent
757e0 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 ...$this->indent...JsonFile::enc
75800 6f 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 ode($name).':.'.$this->format($v
75820 61 6c 75 65 2c 20 31 29 20 2e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e alue,.1)...$children;.}..$this->
75840 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 contents.=.preg_replace($nodeReg
75860 65 78 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 27 24 7b 31 7d 27 2e 24 63 68 69 6c 64 72 65 6e ex,.addcslashes('${1}'.$children
75880 2e 27 24 33 27 2c 20 27 5c 5c 27 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a .'$3',.'\\'),.$this->contents);.
758a0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .return.true;.}..public.function
758c0 20 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 .removeSubNode($mainNode,.$name)
758e0 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e .{...if.(!preg_match('#"'.$mainN
75900 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 ode.'":\s*\{#',.$this->contents)
75920 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d ).{.return.true;.}....if.(preg_m
75940 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 5c 73 2a 5c atch('#"'.$mainNode.'":\s*\{\s*\
75960 7d 23 73 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e }#s',.$this->contents)).{.return
75980 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 .true;.}....$nodeRegex.=.'#("'.$
759a0 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 mainNode.'":\s*\{)('.self::$RECU
759c0 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f RSE_BLOCKS.')(\})#s';.if.(!preg_
759e0 6d 61 74 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 match($nodeRegex,.$this->content
75a00 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 s,.$match)).{.return.false;.}..$
75a20 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a children.=.$match[2];....if.(!@j
75a40 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b son_decode('{'.$children.'}')).{
75a60 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c .return.false;.}..$subName.=.nul
75a80 6c 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 l;.if.(false.!==.strpos($name,.'
75aa0 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 .')).{.list($name,.$subName).=.e
75ac0 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 xplode('.',.$name,.2);.}....if.(
75ae0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 preg_match('{"'.preg_quote($name
75b00 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 0a 20 69 66 20 ).'"\s*:}i',.$children)).{...if.
75b20 28 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 (preg_match_all('{"'.preg_quote(
75b40 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e $name).'"\s*:\s*(?:'.self::$JSON
75b60 5f 56 41 4c 55 45 2e 27 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 _VALUE.')}',.$children,.$matches
75b80 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 )).{.$bestMatch.=.'';.foreach.($
75ba0 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 69 66 20 28 73 74 72 6c matches[0].as.$match).{.if.(strl
75bc0 65 6e 28 24 62 65 73 74 4d 61 74 63 68 29 20 3c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 29 29 en($bestMatch).<.strlen($match))
75be0 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 24 6d 61 74 63 68 3b 0a 7d 0a 7d 0a 24 63 68 69 .{.$bestMatch.=.$match;.}.}.$chi
75c00 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2c 5c 73 2a ldrenClean.=.preg_replace('{,\s*
75c20 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 7d 69 27 2c 20 27 '.preg_quote($bestMatch).'}i',.'
75c40 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 ',.$children,.-1,.$count);.if.(1
75c60 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 .!==.$count).{.$childrenClean.=.
75c80 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 preg_replace('{'.preg_quote($bes
75ca0 74 4d 61 74 63 68 29 2e 27 5c 73 2a 2c 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 tMatch).'\s*,?\s*}i',.'',.$child
75cc0 72 65 6e 43 6c 65 61 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d renClean,.-1,.$count);.if.(1.!==
75ce0 20 24 63 6f 75 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 7d .$count).{.return.false;.}.}.}.}
75d00 0a 0a 0a 20 69 66 20 28 21 74 72 69 6d 28 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 29 20 7b ....if.(!trim($childrenClean)).{
75d20 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 .$this->contents.=.preg_replace(
75d40 24 6e 6f 64 65 52 65 67 65 78 2c 20 27 24 31 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e $nodeRegex,.'$1'.$this->newline.
75d60 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2e 27 7d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e $this->indent.'}',.$this->conten
75d80 74 73 29 3b 0a 0a 0a 20 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b ts);....if.($subName.!==.null).{
75da0 0a 24 63 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c .$curVal.=.json_decode('{'.$chil
75dc0 64 72 65 6e 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 dren.'}',.true);.unset($curVal[$
75de0 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e name][$subName]);.$this->addSubN
75e00 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c 20 24 63 75 72 56 61 6c 5b 24 6e ode($mainNode,.$name,.$curVal[$n
75e20 61 6d 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 ame]);.}..return.true;.}..$that.
75e40 3d 20 24 74 68 69 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f =.$this;.$this->contents.=.preg_
75e60 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 66 75 6e replace_callback($nodeRegex,.fun
75e80 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 6e 61 ction.($matches).use.($that,.$na
75ea0 6d 65 2c 20 24 73 75 62 4e 61 6d 65 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 20 7b 0a me,.$subName,.$childrenClean).{.
75ec0 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c if.($subName.!==.null).{.$curVal
75ee0 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 .=.json_decode('{'.$matches[2].'
75f00 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b }',.true);.unset($curVal[$name][
75f20 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 73 75 62 $subName]);.$childrenClean.=.sub
75f40 73 74 72 28 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 63 75 72 56 61 6c 2c 20 30 29 2c 20 31 str($that->format($curVal,.0),.1
75f60 2c 20 2d 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 ,.-1);.}..return.$matches[1]...$
75f80 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 childrenClean...$matches[3];.},.
75fa0 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a $this->contents);..return.true;.
75fc0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b }..public.function.addMainKey($k
75fe0 65 79 2c 20 24 63 6f 6e 74 65 6e 74 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 ey,.$content).{.$content.=.$this
76000 2d 3e 66 6f 72 6d 61 74 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 0a 20 24 72 65 67 65 78 20 3d 20 ->format($content);....$regex.=.
76020 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 '{^(\s*\{\s*(?:'.self::$JSON_STR
76040 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e ING.'\s*:\s*'.self::$JSON_VALUE.
76060 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 '\s*,\s*)*?)'..'('.preg_quote(Js
76080 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 29 2e 27 5c 73 2a 3a 5c 73 2a 27 2e onFile::encode($key)).'\s*:\s*'.
760a0 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 self::$JSON_VALUE.')(.*)}s';.if.
760c0 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 (preg_match($regex,.$this->conte
760e0 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 nts,.$matches)).{...if.(!@json_d
76100 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 7d 27 29 29 20 7b 0a 72 65 ecode('{'.$matches[2].'}')).{.re
76120 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d turn.false;.}..$this->contents.=
76140 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 .$matches[1]...JsonFile::encode(
76160 24 6b 65 79 29 2e 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 $key).':.'.$content...$matches[3
76180 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d ];..return.true;.}....if.(preg_m
761a0 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e atch('#[^{\s](\s*)\}$#',.$this->
761c0 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 contents,.$match)).{.$this->cont
761e0 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b ents.=.preg_replace(.'#'.$match[
76200 31 5d 2e 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 1].'\}$#',.addcslashes(','...$th
76220 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 is->newline...$this->indent...Js
76240 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f 6e onFile::encode($key)..':.'..$con
76260 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c tent...$this->newline...'}',.'\\
76280 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 '),.$this->contents.);..return.t
762a0 72 75 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 rue;.}....$this->contents.=.preg
762c0 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 24 _replace(.'#\}$#',.addcslashes($
762e0 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 this->indent...JsonFile::encode(
76300 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 $key)..':.'.$content...$this->ne
76320 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 wline...'}',.'\\'),.$this->conte
76340 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 nts.);..return.true;.}..public.f
76360 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 64 61 74 61 2c 20 24 64 65 70 74 68 20 3d 20 30 unction.format($data,.$depth.=.0
76380 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 ).{.if.(is_array($data)).{.reset
763a0 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 ($data);..if.(is_numeric(key($da
763c0 74 61 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d ta))).{.foreach.($data.as.$key.=
763e0 3e 20 24 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 66 >.$val).{.$data[$key].=.$this->f
76400 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 ormat($val,.$depth.+.1);.}..retu
76420 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 64 61 74 61 29 2e 27 5d 27 3b rn.'['.implode(',.',.$data).']';
76440 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b .}..$out.=.'{'...$this->newline;
76460 0a 24 65 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 .$elems.=.array();.foreach.($dat
76480 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 65 6c 65 6d 73 5b 5d 20 3d 20 a.as.$key.=>.$val).{.$elems[].=.
764a0 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 str_repeat($this->indent,.$depth
764c0 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 .+.2)...JsonFile::encode($key)..
764e0 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 ':.'.$this->format($val,.$depth.
76500 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 +.1);.}..return.$out...implode('
76520 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2c 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 ,'.$this->newline,.$elems)...$th
76540 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e is->newline...str_repeat($this->
76560 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 31 29 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 indent,.$depth.+.1)...'}';.}..re
76580 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 7d 0a turn.JsonFile::encode($data);.}.
765a0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 63 74 49 6e 64 65 6e 74 .protected.function.detectIndent
765c0 69 6e 67 28 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 73 2b 29 22 ing().{.if.(preg_match('{^(\s+)"
765e0 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b }m',.$this->contents,.$match)).{
76600 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c .$this->indent.=.$match[1];.}.el
76620 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 27 20 20 20 20 27 3b 0a 7d 0a 7d se.{.$this->indent.=.'....';.}.}
76640 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
76660 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f mposer\Json;..use.Composer\Compo
76680 73 65 72 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 ser;.use.JsonSchema\Validator;.u
766a0 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 se.Seld\JsonLint\JsonParser;.use
766c0 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b .Seld\JsonLint\ParsingException;
766e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 .use.Composer\Util\RemoteFilesys
76700 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 tem;.use.Composer\Downloader\Tra
76720 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 nsportException;........class.Js
76740 6f 6e 46 69 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 onFile.{.const.LAX_SCHEMA.=.1;.c
76760 6f 6e 73 74 20 53 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a onst.STRICT_SCHEMA.=.2;..const.J
76780 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 SON_UNESCAPED_SLASHES.=.64;.cons
767a0 74 20 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 t.JSON_PRETTY_PRINT.=.128;.const
767c0 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a .JSON_UNESCAPED_UNICODE.=.256;..
767e0 70 72 69 76 61 74 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a private.$path;.private.$rfs;....
76800 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
76820 28 24 70 61 74 68 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 ($path,.RemoteFilesystem.$rfs.=.
76840 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 null).{.$this->path.=.$path;..if
76860 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b .(null.===.$rfs.&&.preg_match('{
76880 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e ^https?://}i',.$path)).{.throw.n
768a0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 68 74 ew.\InvalidArgumentException('ht
768c0 74 70 20 75 72 6c 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 tp.urls.require.a.RemoteFilesyst
768e0 65 6d 20 69 6e 73 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 em.instance.to.be.passed');.}.$t
76900 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->rfs.=.$rfs;.}.....public.fu
76920 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getPath().{.return.$this-
76940 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 >path;.}.......public.function.e
76960 78 69 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e xists().{.return.is_file($this->
76980 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 path);.}........public.function.
769a0 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b read().{.try.{.if.($this->rfs).{
769c0 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 .$json.=.$this->rfs->getContents
769e0 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 ($this->path,.$this->path,.false
76a00 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e );.}.else.{.$json.=.file_get_con
76a20 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 tents($this->path);.}.}.catch.(T
76a40 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ransportException.$e).{.throw.ne
76a60 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 w.\RuntimeException($e->getMessa
76a80 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f ge(),.0,.$e);.}.catch.(\Exceptio
76aa0 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 n.$e).{.throw.new.\RuntimeExcept
76ac0 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 69 73 2d 3e 70 61 74 ion('Could.not.read.'.$this->pat
76ae0 68 2e 22 5c 6e 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 72 h."\n\n".$e->getMessage());.}..r
76b00 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 eturn.static::parseJson($json,.$
76b20 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->path);.}.........public.fu
76b40 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 2c 20 24 6f 70 74 69 6f nction.write(array.$hash,.$optio
76b60 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 73 ns.=.448).{.$dir.=.dirname($this
76b80 2d 3e 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 69 66 ->path);.if.(!is_dir($dir)).{.if
76ba0 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 .(file_exists($dir)).{.throw.new
76bc0 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 .\UnexpectedValueException(.$dir
76be0 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 .'.exists.and.is.not.a.directory
76c00 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 .'.);.}.if.(!@mkdir($dir,.0777,.
76c20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 true)).{.throw.new.\UnexpectedVa
76c40 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 lueException(.$dir.'.does.not.ex
76c60 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 ist.and.could.not.be.created.'.)
76c80 3b 0a 7d 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 ;.}.}..$retries.=.3;.while.($ret
76ca0 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 ries--).{.try.{.file_put_content
76cc0 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 73 74 61 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 s($this->path,.static::encode($h
76ce0 61 73 68 2c 20 24 6f 70 74 69 6f 6e 73 29 2e 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 ash,.$options)..($options.&.self
76d00 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 ::JSON_PRETTY_PRINT.?."\n".:.'')
76d20 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 );.break;.}.catch.(\Exception.$e
76d40 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 ).{.if.($retries).{.usleep(50000
76d60 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0);.continue;.}..throw.$e;.}.}.}
76d80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 .........public.function.validat
76da0 65 53 63 68 65 6d 61 28 24 73 63 68 65 6d 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f 53 eSchema($schema.=.self::STRICT_S
76dc0 43 48 45 4d 41 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e CHEMA).{.$content.=.file_get_con
76de0 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e tents($this->path);.$data.=.json
76e00 5f 64 65 63 6f 64 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d _decode($content);..if.(null.===
76e20 20 24 64 61 74 61 20 26 26 20 27 6e 75 6c 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b .$data.&&.'null'.!==.$content).{
76e40 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 2c 20 .self::validateSyntax($content,.
76e60 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c 65 20 3d 20 5f $this->path);.}..$schemaFile.=._
76e80 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 63 6f 6d 70 6f 73 65 72 _DIR__...'/../../../res/composer
76ea0 2d 73 63 68 65 6d 61 2e 6a 73 6f 6e 27 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 20 3d 20 6a 73 6f -schema.json';.$schemaData.=.jso
76ec0 6e 5f 64 65 63 6f 64 65 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 73 63 68 65 n_decode(file_get_contents($sche
76ee0 6d 61 46 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 73 63 68 65 6d 61 20 3d 3d 3d 20 73 65 6c 66 3a maFile));..if.($schema.===.self:
76f00 3a 4c 41 58 5f 53 43 48 45 4d 41 29 20 7b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 61 64 64 69 :LAX_SCHEMA).{.$schemaData->addi
76f20 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3d 20 74 72 75 65 3b 0a 24 73 63 68 65 6d 61 tionalProperties.=.true;.$schema
76f40 44 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 2d 3e 6e 61 6d 65 2d 3e 72 65 71 75 69 72 65 64 Data->properties->name->required
76f60 20 3d 20 66 61 6c 73 65 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 65 .=.false;.$schemaData->propertie
76f80 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 72 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 65 s->description->required.=.false
76fa0 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 6f 72 28 ;.}..$validator.=.new.Validator(
76fc0 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 64 61 74 61 2c 20 24 73 63 68 );.$validator->check($data,.$sch
76fe0 65 6d 61 44 61 74 61 29 3b 0a 0a 0a 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 6f 72 2d 3e 69 73 emaData);....if.(!$validator->is
77000 56 61 6c 69 64 28 29 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f Valid()).{.$errors.=.array();.fo
77020 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 reach.((array).$validator->getEr
77040 72 6f 72 73 28 29 20 61 73 20 24 65 72 72 6f 72 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 rors().as.$error).{.$errors[].=.
77060 28 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 74 79 27 5d 20 3f 20 24 65 72 72 6f 72 5b 27 70 72 ($error['property'].?.$error['pr
77080 6f 70 65 72 74 79 27 5d 2e 27 20 3a 20 27 20 3a 20 27 27 29 2e 24 65 72 72 6f 72 5b 27 6d 65 73 operty'].'.:.'.:.'').$error['mes
770a0 73 61 67 65 27 5d 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 sage'];.}.throw.new.JsonValidati
770c0 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 22 20 64 onException('"'.$this->path.'".d
770e0 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 65 78 70 65 63 74 65 64 20 4a 53 4f 4e 20 oes.not.match.the.expected.JSON.
77100 73 63 68 65 6d 61 27 2c 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 schema',.$errors);.}..return.tru
77120 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 e;.}..............public.static.
77140 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 20 function.encode($data,.$options.
77160 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 =.448).{.if.(version_compare(PHP
77180 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e _VERSION,.'5.4',.'>=')).{.return
771a0 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d .json_encode($data,.$options);.}
771c0 0a 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 0a 24 ..$json.=.json_encode($data);..$
771e0 70 72 65 74 74 79 50 72 69 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 prettyPrint.=.(bool).($options.&
77200 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 73 .self::JSON_PRETTY_PRINT);.$unes
77220 63 61 70 65 55 6e 69 63 6f 64 65 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 capeUnicode.=.(bool).($options.&
77240 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a .self::JSON_UNESCAPED_UNICODE);.
77260 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 $unescapeSlashes.=.(bool).($opti
77280 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 ons.&.self::JSON_UNESCAPED_SLASH
772a0 45 53 29 3b 0a 0a 69 66 20 28 21 24 70 72 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 ES);..if.(!$prettyPrint.&&.!$une
772c0 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 scapeUnicode.&&.!$unescapeSlashe
772e0 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 s).{.return.$json;.}..$result.=.
77300 27 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 73 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 '';.$pos.=.0;.$strLen.=.strlen($
77320 6a 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 74 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 77 json);.$indentStr.=.'....';.$new
77340 4c 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 65 Line.=."\n";.$outOfQuotes.=.true
77360 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 65 ;.$buffer.=.'';.$noescape.=.true
77380 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 74 72 4c 65 6e 3b 20 24 69 ;..for.($i.=.0;.$i.<.$strLen;.$i
773a0 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 ++).{...$char.=.substr($json,.$i
773c0 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 22 27 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 24 6e ,.1);....if.('"'.===.$char.&&.$n
773e0 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 74 4f oescape).{.$outOfQuotes.=.!$outO
77400 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 20 7b fQuotes;.}..if.(!$outOfQuotes).{
77420 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 68 61 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 27 .$buffer..=.$char;.$noescape.=.'
77440 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 3f 20 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 72 75 \\'.===.$char.?.!$noescape.:.tru
77460 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 24 62 e;.continue;.}.elseif.(''.!==.$b
77480 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b uffer).{.if.($unescapeSlashes).{
774a0 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 27 2f .$buffer.=.str_replace('\\/',.'/
774c0 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 6e 69 ',.$buffer);.}..if.($unescapeUni
774e0 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 63 6f 6e 76 code.&&.function_exists('mb_conv
77500 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 20 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 70 72 ert_encoding')).{...$buffer.=.pr
77520 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 2f 5c 5c 5c 5c 75 28 5b 30 2d 39 eg_replace_callback('/\\\\u([0-9
77540 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c 20 66 75 6e 63 74 69 6f 6e 28 24 6d 61 74 63 68 29 20 7b 0a a-f]{4})/i',.function($match).{.
77560 72 65 74 75 72 6e 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 70 61 63 6b 28 return.mb_convert_encoding(pack(
77580 27 48 2a 27 2c 20 24 6d 61 74 63 68 5b 31 5d 29 2c 20 27 55 54 46 2d 38 27 2c 20 27 55 43 53 2d 'H*',.$match[1]),.'UTF-8',.'UCS-
775a0 32 42 45 27 29 3b 0a 7d 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 2BE');.},.$buffer);.}..$result..
775c0 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 72 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 63 =.$buffer.$char;.$buffer.=.'';.c
775e0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 3a 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b ontinue;.}..if.(':'.===.$char).{
77600 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 27 7d 27 20 ...$char..=.'.';.}.elseif.(('}'.
77620 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5d 27 20 3d 3d 3d 20 24 63 68 61 72 29 29 20 7b 0a 24 ===.$char.||.']'.===.$char)).{.$
77640 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c pos--;.$prevChar.=.substr($json,
77660 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a 69 66 20 28 27 7b 27 20 21 3d 3d 20 24 70 72 65 76 43 .$i.-.1,.1);..if.('{'.!==.$prevC
77680 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 29 20 7b 0a 0a 20 0a 20 har.&&.'['.!==.$prevChar).{.....
776a0 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 66 6f 72 20 28 24 6a 20 3d 20 30 $result..=.$newLine;.for.($j.=.0
776c0 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 ;.$j.<.$pos;.$j++).{.$result..=.
776e0 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 $indentStr;.}.}.else.{...$result
77700 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 6c 74 29 2e 22 5c 6e 5c 6e 22 2e 24 69 6e 64 65 6e 74 .=.rtrim($result)."\n\n".$indent
77720 53 74 72 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a 20 0a Str;.}.}..$result..=.$char;.....
77740 20 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 24 63 .if.(','.===.$char.||.'{'.===.$c
77760 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c 74 20 har.||.'['.===.$char).{.$result.
77780 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 .=.$newLine;..if.('{'.===.$char.
777a0 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a 0a 66 ||.'['.===.$char).{.$pos++;.}..f
777c0 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 or.($j.=.0;.$j.<.$pos;.$j++).{.$
777e0 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 result..=.$indentStr;.}.}.}..ret
77800 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 urn.$result;.}..........public.s
77820 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 tatic.function.parseJson($json,.
77840 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 $file.=.null).{.$data.=.json_dec
77860 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ode($json,.true);.if.(null.===.$
77880 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 20 21 3d 3d 20 6a 73 6f 6e data.&&.JSON_ERROR_NONE.!==.json
778a0 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 _last_error()).{.self::validateS
778c0 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 yntax($json,.$file);.}..return.$
778e0 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 data;.}............protected.sta
77900 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 6f tic.function.validateSyntax($jso
77920 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 n,.$file.=.null).{.$parser.=.new
77940 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 70 61 72 73 65 72 .JsonParser();.$result.=.$parser
77960 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 73 ->lint($json);.if.(null.===.$res
77980 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 ult).{.if.(defined('JSON_ERROR_U
779a0 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 20 3d 3d 3d 20 6a 73 6f TF8').&&.JSON_ERROR_UTF8.===.jso
779c0 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 n_last_error()).{.throw.new.\Une
779e0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e xpectedValueException('"'.$file.
77a00 27 22 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 '".is.not.UTF-8,.could.not.parse
77a20 20 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 .as.JSON');.}..return.true;.}..t
77a40 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 hrow.new.ParsingException('"'.$f
77a60 69 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 76 61 6c 69 64 20 4a 53 ile.'".does.not.contain.valid.JS
77a80 4f 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 ON'."\n".$result->getMessage(),.
77aa0 24 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 74 61 69 6c 73 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 $result->getDetails());.}.}.<?ph
77ac0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
77ae0 4a 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 Json;..use.Exception;.....class.
77b00 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 JsonValidationException.extends.
77b20 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 3b 0a 0a Exception.{.protected.$errors;..
77b40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 public.function.__construct($mes
77b60 73 61 67 65 2c 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 sage,.$errors.=.array()).{.$this
77b80 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ->errors.=.$errors;.parent::__co
77ba0 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e nstruct($message);.}..public.fun
77bc0 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ction.getErrors().{.return.$this
77be0 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ->errors;.}.}.<?php............n
77c00 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 amespace.Composer;..use.Composer
77c20 5c 43 6f 6e 66 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a \Config\ConfigSourceInterface;..
77c40 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 ...class.Config.{.public.static.
77c60 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 $defaultConfig.=.array(.'process
77c80 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 30 30 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 -timeout'.=>.300,.'use-include-p
77ca0 61 74 68 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c ath'.=>.false,.'preferred-instal
77cc0 6c 27 20 3d 3e 20 27 61 75 74 6f 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c l'.=>.'auto',.'notify-on-install
77ce0 27 20 3d 3e 20 74 72 75 65 2c 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e '.=>.true,.'github-protocols'.=>
77d00 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 29 2c 0a 27 76 65 6e 64 6f 72 2d .array('git',.'https'),.'vendor-
77d20 64 69 72 27 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 dir'.=>.'vendor',.'bin-dir'.=>.'
77d40 7b 24 76 65 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 {$vendor-dir}/bin',.'cache-dir'.
77d60 3d 3e 20 27 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 =>.'{$home}/cache',.'cache-files
77d80 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 27 2c 0a 27 -dir'.=>.'{$cache-dir}/files',.'
77da0 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d cache-repo-dir'.=>.'{$cache-dir}
77dc0 2f 72 65 70 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 /repo',.'cache-vcs-dir'.=>.'{$ca
77de0 63 68 65 2d 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 31 35 che-dir}/vcs',.'cache-ttl'.=>.15
77e00 35 35 32 30 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 6e 552000,...'cache-files-ttl'.=>.n
77e20 75 6c 6c 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 3d 3e 20 ull,...'cache-files-maxsize'.=>.
77e40 27 33 30 30 4d 69 42 27 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 20 3d 3e 20 66 '300MiB',.'discard-changes'.=>.f
77e60 61 6c 73 65 2c 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 alse,.);..public.static.$default
77e80 52 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 69 73 74 Repositories.=.array(.'packagist
77ea0 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 63 6f 6d 70 6f 73 65 72 27 '.=>.array(.'type'.=>.'composer'
77ec0 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3f 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f ,.'url'.=>.'https?://packagist.o
77ee0 72 67 27 2c 0a 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 20 3d 3e 20 74 72 rg',.'allow_ssl_downgrade'.=>.tr
77f00 75 65 2c 0a 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 ue,.).);..private.$config;.priva
77f20 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 te.$repositories;.private.$confi
77f40 67 53 6f 75 72 63 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 gSource;..public.function.__cons
77f60 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 truct().{...$this->config.=.stat
77f80 69 63 3a 3a 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 ic::$defaultConfig;.$this->repos
77fa0 69 74 6f 72 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 itories.=.static::$defaultReposi
77fc0 74 6f 72 69 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f tories;.}..public.function.setCo
77fe0 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 nfigSource(ConfigSourceInterface
78000 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 .$source).{.$this->configSource.
78020 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 =.$source;.}..public.function.ge
78040 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tConfigSource().{.return.$this->
78060 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e configSource;.}.......public.fun
78080 63 74 69 6f 6e 20 6d 65 72 67 65 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 ction.merge(array.$config).{...i
780a0 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 20 f.(!empty($config['config']).&&.
780c0 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a 66 is_array($config['config'])).{.f
780e0 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 20 61 73 20 24 6b 65 oreach.($config['config'].as.$ke
78100 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 y.=>.$val).{.if.(in_array($key,.
78120 61 72 72 61 79 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 26 26 20 69 73 73 65 74 28 array('github-oauth')).&&.isset(
78140 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 $this->config[$key])).{.$this->c
78160 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d onfig[$key].=.array_merge($this-
78180 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 76 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 >config[$key],.$val);.}.else.{.$
781a0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 0a 7d this->config[$key].=.$val;.}.}.}
781c0 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 ..if.(!empty($config['repositori
781e0 65 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 es']).&&.is_array($config['repos
78200 69 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 itories'])).{.$this->repositorie
78220 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 s.=.array_reverse($this->reposit
78240 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 24 6e 65 77 52 65 70 6f 73 20 3d 20 61 72 72 61 79 5f ories,.true);.$newRepos.=.array_
78260 72 65 76 65 72 73 65 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 2c reverse($config['repositories'],
78280 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 52 65 70 6f 73 20 61 73 20 24 6e .true);.foreach.($newRepos.as.$n
782a0 61 6d 65 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 20 69 66 20 28 66 61 6c 73 ame.=>.$repository).{...if.(fals
782c0 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 e.===.$repository).{.unset($this
782e0 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 ->repositories[$name]);.continue
78300 3b 0a 7d 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 72 65 70 6f 73 69 74 6f ;.}....if.(1.===.count($reposito
78320 72 79 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 63 75 72 72 65 6e 74 28 24 72 65 70 6f 73 69 ry).&&.false.===.current($reposi
78340 74 6f 72 79 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 tory)).{.unset($this->repositori
78360 65 73 5b 6b 65 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b es[key($repository)]);.continue;
78380 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 .}....if.(is_int($name)).{.$this
783a0 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a ->repositories[].=.$repository;.
783c0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 }.else.{.$this->repositories[$na
783e0 6d 65 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 me].=.$repository;.}.}.$this->re
78400 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 positories.=.array_reverse($this
78420 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 ->repositories,.true);.}.}.....p
78440 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 ublic.function.getRepositories()
78460 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d .{.return.$this->repositories;.}
78480 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6b 65 .........public.function.get($ke
784a0 79 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0a 63 61 73 65 20 27 76 65 6e 64 6f y).{.switch.($key).{.case.'vendo
784c0 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 70 72 r-dir':.case.'bin-dir':.case.'pr
784e0 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 64 69 72 27 ocess-timeout':.case.'cache-dir'
78500 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 :.case.'cache-files-dir':.case.'
78520 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 76 63 73 cache-repo-dir':.case.'cache-vcs
78540 2d 64 69 72 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 43 4f 4d 50 4f 53 45 52 5f 27 20 2e 20 73 74 -dir':...$env.=.'COMPOSER_'...st
78560 72 74 6f 75 70 70 65 72 28 73 74 72 74 72 28 24 6b 65 79 2c 20 27 2d 27 2c 20 27 5f 27 29 29 3b rtoupper(strtr($key,.'-',.'_'));
78580 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 67 65 ..return.rtrim($this->process(ge
785a0 74 65 6e 76 28 24 65 6e 76 29 20 3f 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 tenv($env).?:.$this->config[$key
785c0 5d 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 74 74 6c 27 3a 0a 72 ]),.'/\\');..case.'cache-ttl':.r
785e0 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b eturn.(int).$this->config[$key];
78600 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 0a 69 66 ..case.'cache-files-maxsize':.if
78620 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d 39 2e 5d 2b 29 5c 73 2a .(!preg_match('/^\s*([0-9.]+)\s*
78640 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f 69 27 2c 20 24 74 68 (?:([kmg])(?:i?b)?)?\s*$/i',.$th
78660 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 is->config[$key],.$matches)).{.t
78680 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 43 6f 75 hrow.new.\RuntimeException(."Cou
786a0 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 27 63 61 63 68 65 ld.not.parse.the.value.of.'cache
786c0 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b -files-maxsize':.{$this->config[
786e0 24 6b 65 79 5d 7d 22 0a 29 3b 0a 7d 0a 24 73 69 7a 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d $key]}".);.}.$size.=.$matches[1]
78700 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 73 77 69 74 ;.if.(isset($matches[2])).{.swit
78720 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 63 ch.(strtolower($matches[2])).{.c
78740 61 73 65 20 27 67 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 61 73 65 20 27 ase.'g':.$size.*=.1024;...case.'
78760 6d 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 61 73 65 20 27 6b 27 3a 0a 24 m':.$size.*=.1024;...case.'k':.$
78780 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e size.*=.1024;.break;.}.}..return
787a0 20 24 73 69 7a 65 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 3a .$size;..case.'cache-files-ttl':
787c0 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 .if.(isset($this->config[$key]))
787e0 20 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b .{.return.(int).$this->config[$k
78800 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e 66 ey];.}..return.(int).$this->conf
78820 69 67 5b 27 63 61 63 68 65 2d 74 74 6c 27 5d 3b 0a 0a 63 61 73 65 20 27 68 6f 6d 65 27 3a 0a 72 ig['cache-ttl'];..case.'home':.r
78840 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 24 74 68 69 73 eturn.rtrim($this->process($this
78860 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 ->config[$key]),.'/\\');..case.'
78880 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 0a 69 66 20 28 24 65 6e 76 20 3d 20 67 65 74 discard-changes':.if.($env.=.get
788a0 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 27 29 29 env('COMPOSER_DISCARD_CHANGES'))
788c0 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c 20 61 72 72 61 79 28 27 73 74 .{.if.(!in_array($env,.array('st
788e0 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 29 ash',.'true',.'false',.'1',.'0')
78900 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ,.true)).{.throw.new.\RuntimeExc
78920 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 43 4f 4d 50 4f eption(."Invalid.value.for.COMPO
78940 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b 24 65 6e 76 7d 2e 20 45 78 70 SER_DISCARD_CHANGES:.{$env}..Exp
78960 65 63 74 65 64 20 31 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 68 ected.1,.0,.true,.false.or.stash
78980 22 0a 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 65 6e 76 29 20 7b 0a 72 ".);.}.if.('stash'.===.$env).{.r
789a0 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 65 6e 76 20 eturn.'stash';.}....return.$env.
789c0 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 65 6e 76 3b 0a 7d 0a 0a 69 !==.'false'.&&.(bool).$env;.}..i
789e0 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d f.(!in_array($this->config[$key]
78a00 2c 20 61 72 72 61 79 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 73 74 61 73 68 27 29 2c 20 74 ,.array(true,.false,.'stash'),.t
78a20 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 rue)).{.throw.new.\RuntimeExcept
78a40 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 27 64 69 73 63 61 72 64 ion(."Invalid.value.for.'discard
78a60 2d 63 68 61 6e 67 65 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 7d -changes':.{$this->config[$key]}
78a80 2e 20 45 78 70 65 63 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 68 22 ..Expected.true,.false.or.stash"
78aa0 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 .);.}..return.$this->config[$key
78ac0 5d 3b 0a 0a 63 61 73 65 20 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 3a 0a 69 66 20 ];..case.'github-protocols':.if.
78ae0 28 72 65 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 67 69 74 68 75 62 2d 70 72 6f (reset($this->config['github-pro
78b00 74 6f 63 6f 6c 73 27 5d 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 74 68 72 6f 77 20 6e 65 tocols']).===.'http').{.throw.ne
78b20 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 68 74 74 70 20 70 72 w.\RuntimeException('The.http.pr
78b40 6f 74 6f 63 6f 6c 20 66 6f 72 20 67 69 74 68 75 62 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 otocol.for.github.is.not.availab
78b60 6c 65 20 61 6e 79 6d 6f 72 65 2c 20 75 70 64 61 74 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 5c 27 le.anymore,.update.your.config\'
78b80 73 20 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 22 68 74 74 70 73 s.github-protocols.to.use."https
78ba0 22 20 6f 72 20 22 67 69 74 22 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 ".or."git"');.}..return.$this->c
78bc0 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 69 66 20 28 21 69 73 73 65 onfig[$key];..default:.if.(!isse
78be0 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e t($this->config[$key])).{.return
78c00 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 .null;.}..return.$this->process(
78c20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 $this->config[$key]);.}.}..publi
78c40 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 29 0a 7b 0a 24 61 6c 6c 20 3d 20 61 72 72 61 79 28 c.function.all().{.$all.=.array(
78c60 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 .'repositories'.=>.$this->getRep
78c80 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b ositories(),.);.foreach.(array_k
78ca0 65 79 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 61 eys($this->config).as.$key).{.$a
78cc0 6c 6c 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 ll['config'][$key].=.$this->get(
78ce0 24 6b 65 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $key);.}..return.$all;.}..public
78d00 20 66 75 6e 63 74 69 6f 6e 20 72 61 77 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a .function.raw().{.return.array(.
78d20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 'repositories'.=>.$this->getRepo
78d40 73 69 74 6f 72 69 65 73 28 29 2c 0a 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e 63 sitories(),.'config'.=>.$this->c
78d60 6f 6e 66 69 67 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 onfig,.);.}........public.functi
78d80 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f on.has($key).{.return.array_key_
78da0 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a exists($key,.$this->config);.}..
78dc0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 28 24 ......private.function.process($
78de0 76 61 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 3b 0a 0a 69 66 20 28 21 value).{.$config.=.$this;..if.(!
78e00 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c is_string($value)).{.return.$val
78e20 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 ue;.}..return.preg_replace_callb
78e40 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d ack('#\{\$(.+)\}#',.function.($m
78e60 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f atch).use.($config).{.return.$co
78e80 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 nfig->get($match[1]);.},.$value)
78ea0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
78ec0 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a .Composer\EventDispatcher;......
78ee0 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 ........interface.EventSubscribe
78f00 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rInterface.{...................p
78f20 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 73 63 72 69 ublic.static.function.getSubscri
78f40 62 65 64 45 76 65 6e 74 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a bedEvents();.}.<?php............
78f60 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 namespace.Composer\EventDispatch
78f80 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 er;.......class.Event.{....prote
78fa0 63 74 65 64 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 70 61 67 61 cted.$name;.....private.$propaga
78fc0 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tionStopped.=.false;.......publi
78fe0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b 0a c.function.__construct($name).{.
79000 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 $this->name.=.$name;.}.......pub
79020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
79040 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $this->name;.}.......public.func
79060 74 69 6f 6e 20 69 73 50 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 72 65 tion.isPropagationStopped().{.re
79080 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 3b 0a turn.$this->propagationStopped;.
790a0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 50 72 6f 70 61 67 }.....public.function.stopPropag
790c0 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 ation().{.$this->propagationStop
790e0 70 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ped.=.true;.}.}.<?php...........
79100 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 .namespace.Composer\EventDispatc
79120 68 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 her;..use.Composer\IO\IOInterfac
79140 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f e;.use.Composer\Composer;.use.Co
79160 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 mposer\DependencyResolver\Operat
79180 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ion\OperationInterface;.use.Comp
791a0 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 oser\Script;.use.Composer\Script
791c0 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 \CommandEvent;.use.Composer\Scri
791e0 70 74 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 pt\PackageEvent;.use.Composer\Ut
79200 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a il\ProcessExecutor;.............
79220 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 0a 7b 0a 70 72 6f 74 65 63 ..class.EventDispatcher.{.protec
79240 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 ted.$composer;.protected.$io;.pr
79260 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 otected.$loader;.protected.$proc
79280 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ess;.........public.function.__c
792a0 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 onstruct(Composer.$composer,.IOI
792c0 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 nterface.$io,.ProcessExecutor.$p
792e0 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 rocess.=.null).{.$this->composer
79300 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 .=.$composer;.$this->io.=.$io;.$
79320 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 this->process.=.$process.?:.new.
79340 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ProcessExecutor($io);.}........p
79360 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 4e 61 ublic.function.dispatch($eventNa
79380 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e me,.Event.$event.=.null).{.if.(n
793a0 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 45 76 ull.==.$event).{.$event.=.new.Ev
793c0 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 ent($eventName);.}..$this->doDis
793e0 70 61 74 63 68 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 patch($event);.}........public.f
79400 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d unction.dispatchScript($eventNam
79420 65 2c 20 53 63 72 69 70 74 5c 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b e,.Script\Event.$event.=.null).{
79440 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 .if.(null.==.$event).{.$event.=.
79460 6e 65 77 20 53 63 72 69 70 74 5c 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 new.Script\Event($eventName,.$th
79480 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 24 74 68 is->composer,.$this->io);.}..$th
794a0 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a is->doDispatch($event);.}.......
794c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 ..public.function.dispatchPackag
794e0 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 4f 70 65 eEvent($eventName,.$devMode,.Ope
79500 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 74 rationInterface.$operation).{.$t
79520 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 50 61 63 6b 61 67 65 45 76 65 6e 74 his->doDispatch(new.PackageEvent
79540 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 ($eventName,.$this->composer,.$t
79560 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 29 3b his->io,.$devMode,.$operation));
79580 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 .}........public.function.dispat
795a0 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d chCommandEvent($eventName,.$devM
795c0 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 43 6f 6d ode).{.$this->doDispatch(new.Com
795e0 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d mandEvent($eventName,.$this->com
79600 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 29 29 3b 0a 7d 0a poser,.$this->io,.$devMode));.}.
79620 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 69 73 ........protected.function.doDis
79640 70 61 74 63 68 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 patch(Event.$event).{.$listeners
79660 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a .=.$this->getListeners($event);.
79680 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c .foreach.($listeners.as.$callabl
796a0 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 63 61 6c 6c 61 62 6c 65 29 20 26 e).{.if.(!is_string($callable).&
796c0 26 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 63 61 6c 6c &.is_callable($callable)).{.call
796e0 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 29 3b 0a 7d _user_func($callable,.$event);.}
79700 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c .elseif.($this->isPhpScript($cal
79720 6c 61 62 6c 65 29 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 lable)).{.$className.=.substr($c
79740 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a allable,.0,.strpos($callable,.':
79760 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c :'));.$methodName.=.substr($call
79780 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 2b 20 able,.strpos($callable,.'::').+.
797a0 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e 61 6d 2);..if.(!class_exists($classNam
797c0 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 e)).{.$this->io->write('<warning
797e0 3e 43 6c 61 73 73 20 27 2e 24 63 6c 61 73 73 4e 61 6d 65 2e 27 20 69 73 20 6e 6f 74 20 61 75 74 >Class.'.$className.'.is.not.aut
79800 6f 6c 6f 61 64 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 oloadable,.can.not.call.'.$event
79820 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 ->getName().'.script</warning>')
79840 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 ;.continue;.}.if.(!is_callable($
79860 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c callable)).{.$this->io->write('<
79880 77 61 72 6e 69 6e 67 3e 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 warning>Method.'.$callable.'.is.
798a0 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 not.callable,.can.not.call.'.$ev
798c0 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 ent->getName().'.script</warning
798e0 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 >');.continue;.}..try.{.$this->e
79900 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c xecuteEventPhpScript($className,
79920 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 65 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 .$methodName,.$event);.}.catch.(
79940 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 \Exception.$e).{.$message.=."Scr
79960 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 ipt.%s.handling.the.%s.event.ter
79980 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 minated.with.an.exception";.$thi
799a0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 s->io->write('<error>'.sprintf($
799c0 6d 65 73 73 61 67 65 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e message,.$callable,.$event->getN
799e0 61 6d 65 28 29 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a ame()).'</error>');.throw.$e;.}.
79a00 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 28 24 65 78 69 74 43 6f 64 65 20 3d 20 }.else.{.if.(0.!==.($exitCode.=.
79a20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 61 6c 6c 61 62 6c $this->process->execute($callabl
79a40 65 29 29 29 20 7b 0a 24 65 76 65 6e 74 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 e))).{.$event->getIO()->write(sp
79a60 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 rintf('<error>Script.%s.handling
79a80 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 6e 20 65 .the.%s.event.returned.with.an.e
79aa0 72 72 6f 72 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 rror</error>',.$callable,.$event
79ac0 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ->getName()));..throw.new.\Runti
79ae0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 4f 75 74 70 75 74 3a 20 27 2e 24 74 68 meException('Error.Output:.'.$th
79b00 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 is->process->getErrorOutput(),.$
79b20 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 76 65 6e 74 2d 3e 69 73 50 72 exitCode);.}.}..if.($event->isPr
79b40 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d opagationStopped()).{.break;.}.}
79b60 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 .}.......protected.function.exec
79b80 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d uteEventPhpScript($className,.$m
79ba0 65 74 68 6f 64 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 63 6c 61 73 ethodName,.Event.$event).{.$clas
79bc0 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 6f 64 4e 61 6d 65 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a sName::$methodName($event);.}...
79be0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 73 74 ......protected.function.addList
79c00 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 6c 69 73 74 65 6e 65 72 2c 20 24 70 72 69 ener($eventName,.$listener,.$pri
79c20 6f 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 ority.=.0).{.$this->listeners[$e
79c40 76 65 6e 74 4e 61 6d 65 5d 5b 24 70 72 69 6f 72 69 74 79 5d 5b 5d 20 3d 20 24 6c 69 73 74 65 6e ventName][$priority][].=.$listen
79c60 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 er;.}.........public.function.ad
79c80 64 53 75 62 73 63 72 69 62 65 72 28 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 dSubscriber(EventSubscriberInter
79ca0 66 61 63 65 20 24 73 75 62 73 63 72 69 62 65 72 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 face.$subscriber).{.foreach.($su
79cc0 62 73 63 72 69 62 65 72 2d 3e 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 73 28 29 20 bscriber->getSubscribedEvents().
79ce0 61 73 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 3e 20 24 70 61 72 61 6d 73 29 20 7b 0a 69 66 20 28 as.$eventName.=>.$params).{.if.(
79d00 69 73 5f 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 is_string($params)).{.$this->add
79d20 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 Listener($eventName,.array($subs
79d40 63 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f criber,.$params));.}.elseif.(is_
79d60 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 string($params[0])).{.$this->add
79d80 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 Listener($eventName,.array($subs
79da0 63 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 5b 30 5d 29 2c 20 69 73 73 65 74 28 24 70 61 72 61 criber,.$params[0]),.isset($para
79dc0 6d 73 5b 31 5d 29 20 3f 20 24 70 61 72 61 6d 73 5b 31 5d 20 3a 20 30 29 3b 0a 7d 20 65 6c 73 65 ms[1]).?.$params[1].:.0);.}.else
79de0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 72 61 6d 73 20 61 73 20 24 6c 69 73 74 65 6e 65 72 .{.foreach.($params.as.$listener
79e00 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d ).{.$this->addListener($eventNam
79e20 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 24 6c 69 73 74 65 6e 65 72 5b e,.array($subscriber,.$listener[
79e40 30 5d 29 2c 20 69 73 73 65 74 28 24 6c 69 73 74 65 6e 65 72 5b 31 5d 29 20 3f 20 24 6c 69 73 74 0]),.isset($listener[1]).?.$list
79e60 65 6e 65 72 5b 31 5d 20 3a 20 30 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f ener[1].:.0);.}.}.}.}........pro
79e80 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 tected.function.getListeners(Eve
79ea0 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 20 3d 20 nt.$event).{.$scriptListeners.=.
79ec0 24 74 68 69 73 2d 3e 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 $this->getScriptListeners($event
79ee0 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b );..if.(!isset($this->listeners[
79f00 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d $event->getName()][0])).{.$this-
79f20 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d >listeners[$event->getName()][0]
79f40 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 6b 72 73 6f 72 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 .=.array();.}.krsort($this->list
79f60 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 0a 24 6c 69 73 eners[$event->getName()]);..$lis
79f80 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 3b 0a 24 6c 69 73 74 teners.=.$this->listeners;.$list
79fa0 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 20 3d 20 61 72 eners[$event->getName()][0].=.ar
79fc0 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 ray_merge($listeners[$event->get
79fe0 4e 61 6d 65 28 29 5d 5b 30 5d 2c 20 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 29 3b 0a 0a Name()][0],.$scriptListeners);..
7a000 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 return.call_user_func_array('arr
7a020 61 79 5f 6d 65 72 67 65 27 2c 20 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 ay_merge',.$listeners[$event->ge
7a040 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 tName()]);.}........protected.fu
7a060 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 nction.getScriptListeners(Event.
7a080 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 $event).{.$package.=.$this->comp
7a0a0 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 oser->getPackage();.$scripts.=.$
7a0c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d 70 74 package->getScripts();..if.(empt
7a0e0 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 y($scripts[$event->getName()])).
7a100 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e {.return.array();.}..if.($this->
7a120 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 69 73 loader).{.$this->loader->unregis
7a140 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f ter();.}..$generator.=.$this->co
7a160 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a mposer->getAutoloadGenerator();.
7a180 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 $packages.=.$this->composer->get
7a1a0 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 RepositoryManager()->getLocalRep
7a1c0 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 ository()->getCanonicalPackages(
7a1e0 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 62 75 69 );.$packageMap.=.$generator->bui
7a200 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 ldPackageMap($this->composer->ge
7a220 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 20 24 70 61 63 6b 61 67 65 tInstallationManager(),.$package
7a240 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d ,.$packages);.$map.=.$generator-
7a260 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 70 61 >parseAutoloads($packageMap,.$pa
7a280 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 ckage);.$this->loader.=.$generat
7a2a0 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c or->createLoader($map);.$this->l
7a2c0 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 72 69 oader->register();..return.$scri
7a2e0 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a pts[$event->getName()];.}.......
7a300 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 68 70 53 63 72 69 70 74 28 .protected.function.isPhpScript(
7a320 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 $callable).{.return.false.===.st
7a340 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 20 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d rpos($callable,.'.').&&.false.!=
7a360 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 3b 0a 7d 0a 7d 0a 3c =.strpos($callable,.'::');.}.}.<
7a380 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
7a3a0 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 er\Script;..use.Composer\Compose
7a3c0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a r;.use.Composer\IO\IOInterface;.
7a3e0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 5c 43 6f 6d 70 .......class.Event.extends.\Comp
7a400 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 0a 7b 0a 0a 0a 0a oser\EventDispatcher\Event.{....
7a420 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 private.$composer;.....private.$
7a440 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a io;.....private.$devMode;.......
7a460 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
7a480 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 name,.Composer.$composer,.IOInte
7a4a0 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 70 rface.$io,.$devMode.=.false).{.p
7a4c0 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 arent::__construct($name);.$this
7a4e0 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 ->composer.=.$composer;.$this->i
7a500 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 24 64 65 76 4d 6f o.=.$io;.$this->devMode.=.$devMo
7a520 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 de;.}.......public.function.getC
7a540 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 omposer().{.return.$this->compos
7a560 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 er;.}.......public.function.getI
7a580 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a O().{.return.$this->io;.}.......
7a5a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 4d 6f 64 65 28 29 0a 7b 0a 72 65 public.function.isDevMode().{.re
7a5c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a turn.$this->devMode;.}.}.<?php..
7a5e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 ..........namespace.Composer\Scr
7a600 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 6e 74 73 0a 7b ipt;........class.ScriptEvents.{
7a620 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 ........const.PRE_INSTALL_CMD.=.
7a640 27 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 'pre-install-cmd';.........const
7a660 20 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 6e 73 74 61 6c .POST_INSTALL_CMD.=.'post-instal
7a680 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 50 44 41 54 45 l-cmd';.........const.PRE_UPDATE
7a6a0 5f 43 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a _CMD.=.'pre-update-cmd';........
7a6c0 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 75 .const.POST_UPDATE_CMD.=.'post-u
7a6e0 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 53 54 pdate-cmd';.........const.PRE_ST
7a700 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a ATUS_CMD.=.'pre-status-cmd';....
7a720 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 6f .....const.POST_STATUS_CMD.=.'po
7a740 73 74 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 st-status-cmd';.........const.PR
7a760 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 E_PACKAGE_INSTALL.=.'pre-package
7a780 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 -install';.........const.POST_PA
7a7a0 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e CKAGE_INSTALL.=.'post-package-in
7a7c0 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 stall';.........const.PRE_PACKAG
7a7e0 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b E_UPDATE.=.'pre-package-update';
7a800 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 .........const.POST_PACKAGE_UPDA
7a820 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a TE.=.'post-package-update';.....
7a840 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 ....const.PRE_PACKAGE_UNINSTALL.
7a860 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a =.'pre-package-uninstall';......
7a880 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 ...const.POST_PACKAGE_UNINSTALL.
7a8a0 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a =.'post-package-uninstall';.....
7a8c0 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 70 ....const.PRE_AUTOLOAD_DUMP.=.'p
7a8e0 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 re-autoload-dump';.........const
7a900 20 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 70 6f 73 74 2d 61 75 74 6f .POST_AUTOLOAD_DUMP.=.'post-auto
7a920 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 52 load-dump';.........const.POST_R
7a940 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 72 6f 6f 74 OOT_PACKAGE_INSTALL.=.'post-root
7a960 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 -package-install';..........cons
7a980 74 20 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 20 3d 20 27 70 6f 73 t.POST_CREATE_PROJECT_CMD.=.'pos
7a9a0 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 27 3b 0a 0a 7d 0a 3c 3f 70 68 70 0a t-create-project-cmd';..}.<?php.
7a9c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 ...........namespace.Composer\Sc
7a9e0 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 0a 0a ript;..use.Composer\Composer;...
7aa00 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 ....class.CommandEvent.extends.E
7aa20 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 vent.{.}.<?php............namesp
7aa40 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 ace.Composer\Script;..use.Compos
7aa60 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 er\Composer;.use.Composer\IO\IOI
7aa80 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 nterface;.use.Composer\Dependenc
7aaa0 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 yResolver\Operation\OperationInt
7aac0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 erface;.......class.PackageEvent
7aae0 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 65 .extends.Event.{....private.$ope
7ab00 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ration;...........public.functio
7ab20 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 n.__construct($name,.Composer.$c
7ab40 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f omposer,.IOInterface.$io,.$devMo
7ab60 64 65 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f de,.OperationInterface.$operatio
7ab80 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 n).{.parent::__construct($name,.
7aba0 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 29 3b 0a 24 74 68 69 73 $composer,.$io,.$devMode);.$this
7abc0 2d 3e 6f 70 65 72 61 74 69 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a ->operation.=.$operation;.}.....
7abe0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 ..public.function.getOperation()
7ac00 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a .{.return.$this->operation;.}.}.
7ac20 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
7ac40 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ser\Installer;..use.Composer\Rep
7ac60 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 ository\InstalledRepositoryInter
7ac80 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 face;.use.Composer\Package\Packa
7aca0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 geInterface;.........class.NoopI
7acc0 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 nstaller.implements.InstallerInt
7ace0 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 erface.{....public.function.supp
7ad00 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 orts($packageType).{.return.true
7ad20 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c ;.}.....public.function.isInstal
7ad40 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 led(InstalledRepositoryInterface
7ad60 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 .$repo,.PackageInterface.$packag
7ad80 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 e).{.return.$repo->hasPackage($p
7ada0 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 ackage);.}.....public.function.i
7adc0 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 nstall(InstalledRepositoryInterf
7ade0 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ace.$repo,.PackageInterface.$pac
7ae00 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 kage).{.if.(!$repo->hasPackage($
7ae20 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c package)).{.$repo->addPackage(cl
7ae40 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 one.$package);.}.}.....public.fu
7ae60 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 nction.update(InstalledRepositor
7ae80 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
7aea0 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 ce.$initial,.PackageInterface.$t
7aec0 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 arget).{.if.(!$repo->hasPackage(
7aee0 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 $initial)).{.throw.new.\InvalidA
7af00 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 rgumentException('Package.is.not
7af20 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 .installed:.'.$initial);.}..$rep
7af40 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 o->removePackage($initial);.if.(
7af60 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 !$repo->hasPackage($target)).{.$
7af80 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b repo->addPackage(clone.$target);
7afa0 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 .}.}.....public.function.uninsta
7afc0 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 ll(InstalledRepositoryInterface.
7afe0 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 $repo,.PackageInterface.$package
7b000 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b ).{.if.(!$repo->hasPackage($pack
7b020 61 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 age)).{.throw.new.\InvalidArgume
7b040 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 ntException('Package.is.not.inst
7b060 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 72 65 70 6f 2d 3e 72 65 6d alled:.'.$package);.}.$repo->rem
7b080 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ovePackage($package);.}.....publ
7b0a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
7b0c0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 geInterface.$package).{.$targetD
7b0e0 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a ir.=.$package->getTargetDir();..
7b100 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 return.$package->getPrettyName()
7b120 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 ...($targetDir.?.'/'.$targetDir.
7b140 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 :.'');.}.}.<?php............name
7b160 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 space.Composer\Installer;..use.C
7b180 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f omposer\Repository\InstalledRepo
7b1a0 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 sitoryInterface;.use.Composer\Pa
7b1c0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ckage\PackageInterface;.......cl
7b1e0 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 ass.MetapackageInstaller.impleme
7b200 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c nts.InstallerInterface.{....publ
7b220 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 ic.function.supports($packageTyp
7b240 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 e).{.return.$packageType.===.'me
7b260 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tapackage';.}.....public.functio
7b280 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 n.isInstalled(InstalledRepositor
7b2a0 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
7b2c0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 ce.$package).{.return.$repo->has
7b2e0 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 Package($package);.}.....public.
7b300 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 function.install(InstalledReposi
7b320 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
7b340 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b rface.$package).{.$repo->addPack
7b360 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 age(clone.$package);.}.....publi
7b380 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 c.function.update(InstalledRepos
7b3a0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 itoryInterface.$repo,.PackageInt
7b3c0 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 erface.$initial,.PackageInterfac
7b3e0 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b e.$target).{.if.(!$repo->hasPack
7b400 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 age($initial)).{.throw.new.\Inva
7b420 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 lidArgumentException('Package.is
7b440 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a .not.installed:.'.$initial);.}..
7b460 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a $repo->removePackage($initial);.
7b480 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 $repo->addPackage(clone.$target)
7b4a0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c ;.}.....public.function.uninstal
7b4c0 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 l(InstalledRepositoryInterface.$
7b4e0 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 repo,.PackageInterface.$package)
7b500 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 .{.if.(!$repo->hasPackage($packa
7b520 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e ge)).{.throw.new.\InvalidArgumen
7b540 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 tException('Package.is.not.insta
7b560 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d lled:.'.$package);.}..$repo->rem
7b580 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ovePackage($package);.}.....publ
7b5a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 ic.function.getInstallPath(Packa
7b5c0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 geInterface.$package).{.return.'
7b5e0 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ';.}.}.<?php............namespac
7b600 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f e.Composer\Installer;..use.Compo
7b620 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\IO\IOInterface;.use.Composer
7b640 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 \Composer;.use.Composer\Download
7b660 65 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d er\PearPackageExtractor;.use.Com
7b680 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 poser\Repository\InstalledReposi
7b6a0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b toryInterface;.use.Composer\Pack
7b6c0 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 age\PackageInterface;........cla
7b6e0 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 61 72 79 ss.PearInstaller.extends.Library
7b700 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Installer.{........public.functi
7b720 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
7b740 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 70 65 61 Composer.$composer,.$type.=.'pea
7b760 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 r-library').{.parent::__construc
7b780 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a t($io,.$composer,.$type);.}.....
7b7a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 public.function.update(Installed
7b7c0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
7b7e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
7b800 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 erface.$target).{.$this->uninsta
7b820 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 ll($repo,.$initial);.$this->inst
7b840 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 all($repo,.$target);.}..protecte
7b860 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e d.function.installCode(PackageIn
7b880 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 terface.$package).{.parent::inst
7b8a0 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 allCode($package);.parent::initi
7b8c0 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 64 65 66 alizeBinDir();..$isWindows.=.def
7b8e0 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 ined('PHP_WINDOWS_VERSION_BUILD'
7b900 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 2e 20 28 24 );.$php_bin.=.$this->binDir...($
7b920 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 20 isWindows.?.'/composer-php.bat'.
7b940 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 69 73 57 69 6e :.'/composer-php');..if.(!$isWin
7b960 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 dows).{.$php_bin.=.'/usr/bin/env
7b980 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d .'...$php_bin;.}..$installPath.=
7b9a0 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 .$this->getInstallPath($package)
7b9c0 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 57 69 6e 64 ;.$vars.=.array(.'os'.=>.$isWind
7b9e0 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 70 68 70 5f ows.?.'windows'.:.'linux',.'php_
7ba00 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 20 3d 3e 20 bin'.=>.$php_bin,.'pear_php'.=>.
7ba20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 $installPath,.'php_dir'.=>.$inst
7ba40 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 allPath,.'bin_dir'.=>.$installPa
7ba60 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 th...'/bin',.'data_dir'.=>.$inst
7ba80 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 allPath...'/data',.'version'.=>.
7baa0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b $package->getPrettyVersion(),.);
7bac0 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e ..$packageArchive.=.$this->getIn
7bae0 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f stallPath($package).'/'.pathinfo
7bb00 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 ($package->getDistUrl(),.PATHINF
7bb20 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 3d 20 6e 65 O_BASENAME);.$pearExtractor.=.ne
7bb40 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b 61 67 65 41 w.PearPackageExtractor($packageA
7bb60 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 72 61 63 74 rchive);.$pearExtractor->extract
7bb80 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 To($this->getInstallPath($packag
7bba0 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 e),.array('php'.=>.'/',.'script'
7bbc0 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 27 29 2c 20 .=>.'/bin',.'data'.=>.'/data'),.
7bbe0 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 $vars);..if.($this->io->isVerbos
7bc00 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 65 e()).{.$this->io->write('....Cle
7bc20 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 65 41 72 63 aning.up');.}.unlink($packageArc
7bc40 68 69 76 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 hive);.}..protected.function.get
7bc60 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 Binaries(PackageInterface.$packa
7bc80 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ge).{.$binariesPath.=.$this->get
7bca0 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 6e 2f 27 3b InstallPath($package)...'/bin/';
7bcc0 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 .$binaries.=.array();.if.(file_e
7bce0 78 69 73 74 73 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 xists($binariesPath)).{.foreach.
7bd00 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 6e 61 72 69 (new.\FilesystemIterator($binari
7bd20 65 73 50 61 74 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 4b 45 59 esPath,.\FilesystemIterator::KEY
7bd40 5f 41 53 5f 46 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 _AS_FILENAME.|.\FilesystemIterat
7bd60 6f 72 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 24 66 69 6c or::CURRENT_AS_FILEINFO).as.$fil
7bd80 65 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 2d 3e eName.=>.$value).{.if.(!$value->
7bda0 69 73 44 69 72 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 6e 2f 27 2e isDir()).{.$binaries[].=.'bin/'.
7bdc0 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 6e 61 72 69 $fileName;.}.}.}..return.$binari
7bde0 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 es;.}..protected.function.initia
7be00 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a lizeBinDir().{.parent::initializ
7be20 65 42 69 6e 44 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 eBinDir();.file_put_contents($th
7be40 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 24 74 68 69 is->binDir.'/composer-php',.$thi
7be60 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b s->generateUnixyPhpProxyCode());
7be80 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 .@chmod($this->binDir.'/composer
7bea0 2d 70 68 70 27 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 -php',.0777);.file_put_contents(
7bec0 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 $this->binDir.'/composer-php.bat
7bee0 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 ',.$this->generateWindowsPhpProx
7bf00 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 yCode());.@chmod($this->binDir.'
7bf20 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a 70 72 /composer-php.bat',.0777);.}..pr
7bf40 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 otected.function.generateWindows
7bf60 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 ProxyCode($bin,.$link).{.$binPat
7bf80 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 h.=.$this->filesystem->findShort
7bfa0 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 estPath($link,.$bin);.if.('.bat'
7bfc0 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 .===.substr($bin,.-4)).{.$caller
7bfe0 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f .=.'call';.}.else.{.$handle.=.fo
7c000 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 pen($bin,.'r');.$line.=.fgets($h
7c020 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 andle);.fclose($handle);.if.(pre
7c040 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 g_match('{^#!/(?:usr/bin/env.)?(
7c060 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 ?:[^/]+/)*(.+)$}m',.$line,.$matc
7c080 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b h)).{.$caller.=.trim($match[1]);
7c0a0 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 0a 69 66 .}.else.{.$caller.=.'php';.}..if
7c0c0 20 28 24 63 61 6c 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e 20 22 40 .($caller.===.'php').{.return."@
7c0e0 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 echo.off\r\n".."pushd..\r\n".."c
7c100 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d 25 43 44 d.%~dp0\r\n".."set.PHP_PROXY=%CD
7c120 25 5c 5c 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e %\\composer-php.bat\r\n".."cd.".
7c140 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 escapeshellarg(dirname($binPath)
7c160 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c )."\r\n".."set.BIN_TARGET=%CD%\\
7c180 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f ".basename($binPath)."\r\n".."po
7c1a0 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e 5f 54 41 52 pd\r\n".."%PHP_PROXY%.\"%BIN_TAR
7c1c0 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 65 63 GET%\".%*\r\n";.}.}..return."@ec
7c1e0 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 ho.off\r\n".."pushd..\r\n".."cd.
7c200 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 %~dp0\r\n".."cd.".escapeshellarg
7c220 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 (dirname($binPath))."\r\n".."set
7c240 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 .BIN_TARGET=%CD%\\".basename($bi
7c260 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 24 63 61 6c 6c nPath)."\r\n".."popd\r\n"..$call
7c280 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d er.".\"%BIN_TARGET%\".%*\r\n";.}
7c2a0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f ..private.function.generateWindo
7c2c0 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 wsPhpProxyCode().{.$binToVendor.
7c2e0 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 =.$this->filesystem->findShortes
7c300 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 tPath($this->binDir,.$this->vend
7c320 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 6f 66 66 orDir,.true);..return."@echo.off
7c340 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 6c 6f 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 65 64 65 \r\n"..."setlocal.enabledelayede
7c360 78 70 61 6e 73 69 6f 6e 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d 25 7e 64 xpansion\r\n"..."set.BIN_DIR=%~d
7c380 70 30 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 4e 5f 44 p0\r\n"..."set.VENDOR_DIR=%BIN_D
7c3a0 49 52 25 5c 5c 22 2e 24 62 69 6e 54 6f 56 65 6e 64 6f 72 2e 22 5c 72 5c 6e 22 20 2e 0a 22 73 65 IR%\\".$binToVendor."\r\n"..."se
7c3c0 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 2e 0a 22 46 4f 52 20 2f 44 20 25 25 56 20 49 4e 20 28 t.DIRS=.\r\n"..."FOR./D.%%V.IN.(
7c3e0 25 56 45 4e 44 4f 52 5f 44 49 52 25 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 %VENDOR_DIR%\\*).DO.(\r\n"..."..
7c400 20 20 46 4f 52 20 2f 44 20 25 25 50 20 49 4e 20 28 25 25 56 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c ..FOR./D.%%P.IN.(%%V\\*).DO.(\r\
7c420 6e 22 20 2e 0a 22 20 20 20 20 20 20 20 20 73 65 74 20 44 49 52 53 3d 21 44 49 52 53 21 3b 25 25 n"..."........set.DIRS=!DIRS!;%%
7c440 7e 66 50 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 29 5c 72 5c 6e 22 20 2e 0a 22 29 5c 72 5c 6e 22 ~fP\r\n"..."....)\r\n"...")\r\n"
7c460 20 2e 0a 22 70 68 70 2e 65 78 65 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 21 44 49 52 ..."php.exe.-d.include_path=!DIR
7c480 53 21 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 S!.%*\r\n";.}..private.function.
7c4a0 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 generateUnixyPhpProxyCode().{.$b
7c4c0 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e inToVendor.=.$this->filesystem->
7c4e0 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 findShortestPath($this->binDir,.
7c500 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e $this->vendorDir,.true);..return
7c520 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f 44 49 52 ."#!/usr/bin/env.sh\n".."SRC_DIR
7c540 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 24 30 60 =`pwd`\n".."BIN_DIR=`dirname.$0`
7c560 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 5c 24 42 49 4e 5f 44 49 52 2f 22 2e 65 73 63 \n".."VENDOR_DIR=\$BIN_DIR/".esc
7c580 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 69 6e 54 6f 56 65 6e 64 6f 72 29 2e 22 5c 6e 22 2e 0a apeshellarg($binToVendor)."\n"..
7c5a0 22 44 49 52 53 3d 5c 22 5c 22 5c 6e 22 2e 0a 22 66 6f 72 20 76 65 6e 64 6f 72 20 69 6e 20 5c 24 "DIRS=\"\"\n".."for.vendor.in.\$
7c5c0 56 45 4e 44 4f 52 5f 44 49 52 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 69 66 20 5b 20 2d VENDOR_DIR/*;.do\n".."....if.[.-
7c5e0 64 20 5c 22 5c 24 76 65 6e 64 6f 72 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 d.\"\$vendor\".];.then\n".."....
7c600 20 20 20 20 66 6f 72 20 70 61 63 6b 61 67 65 20 69 6e 20 5c 24 76 65 6e 64 6f 72 2f 2a 3b 20 64 ....for.package.in.\$vendor/*;.d
7c620 6f 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 70 o\n".."............if.[.-d.\"\$p
7c640 61 63 6b 61 67 65 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 ackage\".];.then\n".."..........
7c660 20 20 20 20 20 20 44 49 52 53 3d 5c 22 5c 24 7b 44 49 52 53 7d 3a 5c 24 7b 70 61 63 6b 61 67 65 ......DIRS=\"\${DIRS}:\${package
7c680 7d 5c 22 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 66 69 5c 6e 22 2e 0a 22 20 20 20 }\"\n".."............fi\n".."...
7c6a0 20 20 20 20 20 64 6f 6e 65 5c 6e 22 2e 0a 22 20 20 20 20 66 69 5c 6e 22 2e 0a 22 64 6f 6e 65 5c .....done\n".."....fi\n".."done\
7c6c0 6e 22 2e 0a 22 70 68 70 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 44 49 n".."php.-d.include_path=\".\$DI
7c6e0 52 53 5c 22 20 24 40 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a RS\".$@\n";.}.}.<?php...........
7c700 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a .namespace.Composer\Installer;..
7c720 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
7c740 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 rface;.use.Composer\Downloader\D
7c760 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ownloadManager;.use.Composer\Rep
7c780 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 ository\InstalledRepositoryInter
7c7a0 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 face;.use.Composer\Util\Filesyst
7c7c0 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 em;........class.ProjectInstalle
7c7e0 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a r.implements.InstallerInterface.
7c800 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 {.private.$installPath;.private.
7c820 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 $downloadManager;.private.$files
7c840 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ystem;..public.function.__constr
7c860 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 uct($installPath,.DownloadManage
7c880 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 72 74 r.$dm).{.$this->installPath.=.rt
7c8a0 72 69 6d 28 73 74 72 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f rim(strtr($installPath,.'\\',.'/
7c8c0 27 29 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e '),.'/').'/';.$this->downloadMan
7c8e0 61 67 65 72 20 3d 20 24 64 6d 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 ager.=.$dm;.$this->filesystem.=.
7c900 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 new.Filesystem;.}........public.
7c920 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a function.supports($packageType).
7c940 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 {.return.true;.}.....public.func
7c960 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 tion.isInstalled(InstalledReposi
7c980 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
7c9a0 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a rface.$package).{.return.false;.
7c9c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e }.....public.function.install(In
7c9e0 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f stalledRepositoryInterface.$repo
7ca00 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 ,.PackageInterface.$package).{.$
7ca20 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 installPath.=.$this->installPath
7ca40 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 ;.if.(file_exists($installPath).
7ca60 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 &&.!$this->filesystem->isDirEmpt
7ca80 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e y($installPath)).{.throw.new.\In
7caa0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 validArgumentException("Project.
7cac0 64 69 72 65 63 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 69 73 20 6e 6f 74 20 65 6d directory.$installPath.is.not.em
7cae0 70 74 79 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 pty.");.}.if.(!is_dir($installPa
7cb00 74 68 29 29 20 7b 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 37 37 37 2c th)).{.mkdir($installPath,.0777,
7cb20 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 .true);.}.$this->downloadManager
7cb40 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 ->download($package,.$installPat
7cb60 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 h);.}.....public.function.update
7cb80 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 (InstalledRepositoryInterface.$r
7cba0 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 epo,.PackageInterface.$initial,.
7cbc0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 74 68 72 6f PackageInterface.$target).{.thro
7cbe0 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
7cc00 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 "not.supported");.}.....public.f
7cc20 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 unction.uninstall(InstalledRepos
7cc40 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 itoryInterface.$repo,.PackageInt
7cc60 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e erface.$package).{.throw.new.\In
7cc80 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 validArgumentException("not.supp
7cca0 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f orted");.}........public.functio
7ccc0 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.getInstallPath(PackageInterfac
7cce0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 e.$package).{.return.$this->inst
7cd00 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 allPath;.}.}.<?php............na
7cd20 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 mespace.Composer\Installer;..use
7cd40 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 .Composer\Composer;.use.Composer
7cd60 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f \IO\IOInterface;.use.Composer\Do
7cd80 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f wnloader\DownloadManager;.use.Co
7cda0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 mposer\Repository\InstalledRepos
7cdc0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 itoryInterface;.use.Composer\Pac
7cde0 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f kage\PackageInterface;.use.Compo
7ce00 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 ser\Util\Filesystem;........clas
7ce20 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e s.LibraryInstaller.implements.In
7ce40 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f stallerInterface.{.protected.$co
7ce60 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 69 72 3b 0a 70 72 mposer;.protected.$vendorDir;.pr
7ce80 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e otected.$binDir;.protected.$down
7cea0 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 loadManager;.protected.$io;.prot
7cec0 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 ected.$type;.protected.$filesyst
7cee0 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 em;..........public.function.__c
7cf00 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 onstruct(IOInterface.$io,.Compos
7cf20 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 2c er.$composer,.$type.=.'library',
7cf40 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a .Filesystem.$filesystem.=.null).
7cf60 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 {.$this->composer.=.$composer;.$
7cf80 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 this->downloadManager.=.$compose
7cfa0 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e r->getDownloadManager();.$this->
7cfc0 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 0a io.=.$io;.$this->type.=.$type;..
7cfe0 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 $this->filesystem.=.$filesystem.
7d000 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 ?:.new.Filesystem();.$this->vend
7d020 6f 72 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 orDir.=.rtrim($composer->getConf
7d040 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 24 ig()->get('vendor-dir'),.'/');.$
7d060 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e this->binDir.=.rtrim($composer->
7d080 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 2c 20 27 2f 27 getConfig()->get('bin-dir'),.'/'
7d0a0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 );.}.....public.function.support
7d0c0 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 s($packageType).{.return.$packag
7d0e0 65 54 79 70 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c 7c 20 6e 75 6c 6c 20 3d 3d eType.===.$this->type.||.null.==
7d100 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 =.$this->type;.}.....public.func
7d120 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 tion.isInstalled(InstalledReposi
7d140 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
7d160 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e rface.$package).{.return.$repo->
7d180 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 hasPackage($package).&&.is_reada
7d1a0 62 6c 65 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 ble($this->getInstallPath($packa
7d1c0 67 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 ge));.}.....public.function.inst
7d1e0 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 all(InstalledRepositoryInterface
7d200 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 .$repo,.PackageInterface.$packag
7d220 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 e).{.$this->initializeVendorDir(
7d240 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 );.$downloadPath.=.$this->getIns
7d260 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 72 tallPath($package);....if.(!is_r
7d280 65 61 64 61 62 6c 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 26 26 20 24 72 65 70 6f 2d eadable($downloadPath).&&.$repo-
7d2a0 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e >hasPackage($package)).{.$this->
7d2c0 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 removeBinaries($package);.}..$th
7d2e0 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 is->installCode($package);.$this
7d300 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 ->installBinaries($package);.if.
7d320 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b (!$repo->hasPackage($package)).{
7d340 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 .$repo->addPackage(clone.$packag
7d360 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 e);.}.}.....public.function.upda
7d380 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 te(InstalledRepositoryInterface.
7d3a0 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c $repo,.PackageInterface.$initial
7d3c0 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 ,.PackageInterface.$target).{.if
7d3e0 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 .(!$repo->hasPackage($initial)).
7d400 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
7d420 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a ption('Package.is.not.installed:
7d440 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 .'.$initial);.}..$this->initiali
7d460 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e zeVendorDir();..$this->removeBin
7d480 61 72 69 65 73 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 43 6f aries($initial);.$this->updateCo
7d4a0 64 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e de($initial,.$target);.$this->in
7d4c0 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 74 61 72 67 65 74 29 3b 0a 24 72 65 70 6f 2d 3e 72 stallBinaries($target);.$repo->r
7d4e0 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 emovePackage($initial);.if.(!$re
7d500 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f po->hasPackage($target)).{.$repo
7d520 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d ->addPackage(clone.$target);.}.}
7d540 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 .....public.function.uninstall(I
7d560 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 nstalledRepositoryInterface.$rep
7d580 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a o,.PackageInterface.$package).{.
7d5a0 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 if.(!$repo->hasPackage($package)
7d5c0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
7d5e0 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 ception('Package.is.not.installe
7d600 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 d:.'.$package);.}..$this->remove
7d620 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e Code($package);.$this->removeBin
7d640 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 aries($package);.$repo->removePa
7d660 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 ckage($package);..$downloadPath.
7d680 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 =.$this->getPackageBasePath($pac
7d6a0 6b 61 67 65 29 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e kage);.if.(strpos($package->getN
7d6c0 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 ame(),.'/')).{.$packageVendorDir
7d6e0 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 28 69 .=.dirname($downloadPath);.if.(i
7d700 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 20 26 26 20 21 67 6c 6f s_dir($packageVendorDir).&&.!glo
7d720 62 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 2e 27 2f 2a 27 29 29 20 7b 0a 40 72 6d b($packageVendorDir.'/*')).{.@rm
7d740 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a dir($packageVendorDir);.}.}.}...
7d760 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 ..public.function.getInstallPath
7d780 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 (PackageInterface.$package).{.$t
7d7a0 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 argetDir.=.$package->getTargetDi
7d7c0 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 r();..return.$this->getPackageBa
7d7e0 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f sePath($package)...($targetDir.?
7d800 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 .'/'.$targetDir.:.'');.}..protec
7d820 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 ted.function.getPackageBasePath(
7d840 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 PackageInterface.$package).{.$th
7d860 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 72 65 74 75 is->initializeVendorDir();..retu
7d880 72 6e 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 74 68 69 73 2d 3e 76 65 rn.($this->vendorDir.?.$this->ve
7d8a0 6e 64 6f 72 44 69 72 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ndorDir.'/'.:.'')...$package->ge
7d8c0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 tPrettyName();.}..protected.func
7d8e0 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 tion.installCode(PackageInterfac
7d900 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 e.$package).{.$downloadPath.=.$t
7d920 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 his->getInstallPath($package);.$
7d940 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 this->downloadManager->download(
7d960 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f $package,.$downloadPath);.}..pro
7d980 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 6f 64 65 28 50 61 63 6b 61 tected.function.updateCode(Packa
7d9a0 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 geInterface.$initial,.PackageInt
7d9c0 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f erface.$target).{.$initialDownlo
7d9e0 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 adPath.=.$this->getInstallPath($
7da00 69 6e 69 74 69 61 6c 29 3b 0a 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 initial);.$targetDownloadPath.=.
7da20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 74 61 72 67 65 74 29 3b 0a $this->getInstallPath($target);.
7da40 69 66 20 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 21 3d 3d 20 24 69 6e 69 if.($targetDownloadPath.!==.$ini
7da60 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 7b 0a 0a 20 0a 20 69 66 20 28 73 74 72 70 tialDownloadPath).{.....if.(strp
7da80 6f 73 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 24 74 61 72 67 65 74 os($initialDownloadPath,.$target
7daa0 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 DownloadPath).===.0).{.$this->re
7dac0 6d 6f 76 65 43 6f 64 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 moveCode($initial);.$this->insta
7dae0 6c 6c 43 6f 64 65 28 24 74 61 72 67 65 74 29 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 llCode($target);.return;.}..$thi
7db00 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 69 6e 69 74 69 61 6c 44 6f s->filesystem->rename($initialDo
7db20 77 6e 6c 6f 61 64 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 wnloadPath,.$targetDownloadPath)
7db40 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 75 70 64 61 ;.}.$this->downloadManager->upda
7db60 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 6f 77 te($initial,.$target,.$targetDow
7db80 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f nloadPath);.}..protected.functio
7dba0 6e 20 72 65 6d 6f 76 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 n.removeCode(PackageInterface.$p
7dbc0 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d ackage).{.$downloadPath.=.$this-
7dbe0 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 >getPackageBasePath($package);.$
7dc00 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 this->downloadManager->remove($p
7dc20 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 ackage,.$downloadPath);.}..prote
7dc40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 cted.function.getBinaries(Packag
7dc60 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 eInterface.$package).{.return.$p
7dc80 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ackage->getBinaries();.}..protec
7dca0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 ted.function.installBinaries(Pac
7dcc0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 kageInterface.$package).{.$binar
7dce0 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 ies.=.$this->getBinaries($packag
7dd00 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a e);.if.(!$binaries).{.return;.}.
7dd20 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 foreach.($binaries.as.$bin).{.$b
7dd40 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 inPath.=.$this->getInstallPath($
7dd60 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 package).'/'.$bin;.if.(!file_exi
7dd80 73 74 73 28 24 62 69 6e 50 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 sts($binPath)).{.$this->io->writ
7dda0 65 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 e('....<warning>Skipped.installa
7ddc0 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 tion.of.'.$bin.'.for.package.'.$
7dde0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 66 package->getName().':.file.not.f
7de00 6f 75 6e 64 20 69 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e ound.in.package</warning>');.con
7de20 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 tinue;.}..$this->initializeBinDi
7de40 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 r();.$link.=.$this->binDir.'/'.b
7de60 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 asename($bin);.if.(file_exists($
7de80 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 29 20 7b 0a 0a link)).{.if.(is_link($link)).{..
7dea0 20 0a 20 0a 20 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b .....@chmod($link,.0777.&.~umask
7dec0 28 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 53 6b 69 ());.}.$this->io->write('....Ski
7dee0 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f pped.installation.of.'.$bin.'.fo
7df00 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e r.package.'.$package->getName().
7df20 27 3a 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 61 6e 20 65 78 69 73 74 69 ':.name.conflicts.with.an.existi
7df40 6e 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 64 65 66 69 6e ng.file');.continue;.}.if.(defin
7df60 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 ed('PHP_WINDOWS_VERSION_BUILD'))
7df80 20 7b 0a 0a 20 69 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 50 .{...if.('.bat'.!==.substr($binP
7dfa0 61 74 68 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c ath,.-4)).{.file_put_contents($l
7dfc0 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f ink,.$this->generateUnixyProxyCo
7dfe0 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 40 63 68 6d 6f 64 28 24 6c 69 de($binPath,.$link));.@chmod($li
7e000 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 24 6c 69 6e 6b 20 2e 3d 20 27 nk,.0777.&.~umask());.$link..=.'
7e020 2e 62 61 74 27 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b .bat';.if.(file_exists($link)).{
7e040 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 53 6b 69 70 70 65 64 20 69 .$this->io->write('....Skipped.i
7e060 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 2e 62 61 74 20 70 72 6f 78 nstallation.of.'.$bin.'.bat.prox
7e080 79 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d y.for.package.'.$package->getNam
7e0a0 65 28 29 2e 27 3a 20 61 20 2e 62 61 74 20 70 72 6f 78 79 20 77 61 73 20 61 6c 72 65 61 64 79 20 e().':.a..bat.proxy.was.already.
7e0c0 69 6e 73 74 61 6c 6c 65 64 27 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 installed');.}.}.if.(!file_exist
7e0e0 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c s($link)).{.file_put_contents($l
7e100 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 ink,.$this->generateWindowsProxy
7e120 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 Code($binPath,.$link));.}.}.else
7e140 20 7b 0a 24 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 24 72 .{.$cwd.=.getcwd();.try.{.....$r
7e160 65 6c 61 74 69 76 65 42 69 6e 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e elativeBin.=.$this->filesystem->
7e180 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 50 61 74 68 findShortestPath($link,.$binPath
7e1a0 29 3b 0a 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 69 66 20 28 66 61 );.chdir(dirname($link));.if.(fa
7e1c0 6c 73 65 20 3d 3d 3d 20 73 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c lse.===.symlink($relativeBin,.$l
7e1e0 69 6e 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f ink)).{.throw.new.\ErrorExceptio
7e200 6e 28 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 n();.}.}.catch.(\ErrorException.
7e220 24 65 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 $e).{.file_put_contents($link,.$
7e240 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 this->generateUnixyProxyCode($bi
7e260 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 63 68 64 69 72 28 24 63 77 64 29 3b 0a 7d nPath,.$link));.}.chdir($cwd);.}
7e280 0a 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b .@chmod($link,.0777.&.~umask());
7e2a0 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 42 .}.}..protected.function.removeB
7e2c0 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 inaries(PackageInterface.$packag
7e2e0 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 e).{.$binaries.=.$this->getBinar
7e300 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b ies($package);.if.(!$binaries).{
7e320 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 .return;.}.foreach.($binaries.as
7e340 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 .$bin).{.$link.=.$this->binDir.'
7e360 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 /'.basename($bin);.if.(is_link($
7e380 6c 69 6e 6b 29 20 7c 7c 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 75 link).||.file_exists($link)).{.u
7e3a0 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 nlink($link);.}.if.(file_exists(
7e3c0 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 2e 27 2e $link.'.bat')).{.unlink($link.'.
7e3e0 62 61 74 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e bat');.}.}.}..protected.function
7e400 20 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e .initializeVendorDir().{.$this->
7e420 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 filesystem->ensureDirectoryExist
7e440 73 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 s($this->vendorDir);.$this->vend
7e460 6f 72 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 orDir.=.realpath($this->vendorDi
7e480 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 r);.}..protected.function.initia
7e4a0 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d lizeBinDir().{.$this->filesystem
7e4c0 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 ->ensureDirectoryExists($this->b
7e4e0 69 6e 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 inDir);.$this->binDir.=.realpath
7e500 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ($this->binDir);.}..protected.fu
7e520 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 nction.generateWindowsProxyCode(
7e540 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d $bin,.$link).{.$binPath.=.$this-
7e560 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c >filesystem->findShortestPath($l
7e580 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 ink,.$bin);.if.('.bat'.===.subst
7e5a0 72 28 24 62 69 6e 2c 20 2d 34 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 r($bin,.-4).||.'.exe'.===.substr
7e5c0 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a ($bin,.-4)).{.$caller.=.'call';.
7e5e0 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 }.else.{.$handle.=.fopen($bin,.'
7e600 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c r');.$line.=.fgets($handle);.fcl
7e620 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ose($handle);.if.(preg_match('{^
7e640 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 #!/(?:usr/bin/env.)?(?:[^/]+/)*(
7e660 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c .+)$}m',.$line,.$match)).{.$call
7e680 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 er.=.trim($match[1]);.}.else.{.$
7e6a0 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 caller.=.'php';.}.}..return."@EC
7e6c0 48 4f 20 4f 46 46 5c 72 5c 6e 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 7e 64 HO.OFF\r\n".."SET.BIN_TARGET=%~d
7e6e0 70 30 2f 22 2e 74 72 69 6d 28 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 69 6e 50 61 74 p0/".trim(escapeshellarg($binPat
7e700 68 29 2c 20 27 22 27 29 2e 22 5c 72 5c 6e 22 2e 0a 22 7b 24 63 61 6c 6c 65 72 7d 20 5c 22 25 42 h),.'"')."\r\n".."{$caller}.\"%B
7e720 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 IN_TARGET%\".%*\r\n";.}..protect
7e740 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f ed.function.generateUnixyProxyCo
7e760 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 de($bin,.$link).{.$binPath.=.$th
7e780 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 is->filesystem->findShortestPath
7e7a0 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 22 23 21 2f 75 73 72 2f 62 ($link,.$bin);..return."#!/usr/b
7e7c0 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 27 53 52 43 5f 44 49 52 3d 22 60 70 77 64 60 22 27 2e in/env.sh\n"..'SRC_DIR="`pwd`"'.
7e7e0 22 5c 6e 22 2e 0a 27 63 64 20 22 60 64 69 72 6e 61 6d 65 20 22 24 30 22 60 22 27 2e 22 5c 6e 22 "\n"..'cd."`dirname."$0"`"'."\n"
7e800 2e 0a 27 63 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 ..'cd.'.escapeshellarg(dirname($
7e820 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 49 4e 5f 54 41 52 47 45 54 3d 22 60 70 77 binPath))."\n"..'BIN_TARGET="`pw
7e840 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 22 5c 6e 22 2e 0a d`/'.basename($binPath)."\"\n"..
7e860 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c 6e 22 2e 0a 27 22 24 42 49 4e 5f 54 41 52 'cd."$SRC_DIR"'."\n"..'"$BIN_TAR
7e880 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a GET"."$@"'."\n";.}.}.<?php......
7e8a0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c ......namespace.Composer\Install
7e8c0 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 er;..use.Composer\Package\Packag
7e8e0 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
7e900 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 \AliasPackage;.use.Composer\Plug
7e920 69 6e 5c 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 in\PluginInstaller;.use.Composer
7e940 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b \Repository\RepositoryInterface;
7e960 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c .use.Composer\Repository\Install
7e980 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f edRepositoryInterface;.use.Compo
7e9a0 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e ser\DependencyResolver\Operation
7e9c0 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \OperationInterface;.use.Compose
7e9e0 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 r\DependencyResolver\Operation\I
7ea00 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 nstallOperation;.use.Composer\De
7ea20 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 pendencyResolver\Operation\Updat
7ea40 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 eOperation;.use.Composer\Depende
7ea60 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f ncyResolver\Operation\UninstallO
7ea80 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 peration;.use.Composer\Dependenc
7eaa0 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 yResolver\Operation\MarkAliasIns
7eac0 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 talledOperation;.use.Composer\De
7eae0 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 pendencyResolver\Operation\MarkA
7eb00 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f liasUninstalledOperation;.use.Co
7eb20 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 mposer\Util\StreamContextFactory
7eb40 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 ;.........class.InstallationMana
7eb60 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 65 72 73 20 3d 20 61 72 72 61 ger.{.private.$installers.=.arra
7eb80 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 y();.private.$cache.=.array();.p
7eba0 72 69 76 61 74 65 20 24 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 rivate.$notifiablePackages.=.arr
7ebc0 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b ay();..public.function.reset().{
7ebe0 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 .$this->notifiablePackages.=.arr
7ec00 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 ay();.}.......public.function.ad
7ec20 64 49 6e 73 74 61 6c 6c 65 72 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 dInstaller(InstallerInterface.$i
7ec40 6e 73 74 61 6c 6c 65 72 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d nstaller).{.array_unshift($this-
7ec60 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d >installers,.$installer);.$this-
7ec80 3e 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 >cache.=.array();.}.......public
7eca0 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 49 6e 73 74 61 6c 6c 65 72 28 49 6e 73 74 61 6c .function.removeInstaller(Instal
7ecc0 6c 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a 7b 0a 69 66 20 28 66 lerInterface.$installer).{.if.(f
7ece0 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 alse.!==.($key.=.array_search($i
7ed00 6e 73 74 61 6c 6c 65 72 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 74 72 75 nstaller,.$this->installers,.tru
7ed20 65 29 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 e))).{.array_splice($this->insta
7ed40 6c 6c 65 72 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 llers,.$key,.1);.$this->cache.=.
7ed60 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 array();.}.}.........public.func
7ed80 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 tion.disablePlugins().{.foreach.
7eda0 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 20 3d 3e 20 24 69 6e 73 ($this->installers.as.$i.=>.$ins
7edc0 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 72 20 69 6e 73 74 61 6e taller).{.if.(!$installer.instan
7ede0 63 65 6f 66 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 ceof.PluginInstaller).{.continue
7ee00 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 5b 24 69 5d ;.}..unset($this->installers[$i]
7ee20 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e );.}.}...........public.function
7ee40 20 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 .getInstaller($type).{.$type.=.s
7ee60 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 trtolower($type);..if.(isset($th
7ee80 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 is->cache[$type])).{.return.$thi
7eea0 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 s->cache[$type];.}..foreach.($th
7eec0 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a is->installers.as.$installer).{.
7eee0 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 24 74 79 70 65 29 29 if.($installer->supports($type))
7ef00 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 20 3d 20 .{.return.$this->cache[$type].=.
7ef20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 $installer;.}.}..throw.new.\Inva
7ef40 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 69 6e lidArgumentException('Unknown.in
7ef60 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a staller.type:.'.$type);.}.......
7ef80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 49 6e 73 74 ...public.function.isPackageInst
7efa0 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 alled(InstalledRepositoryInterfa
7efc0 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ce.$repo,.PackageInterface.$pack
7efe0 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 age).{.if.($package.instanceof.A
7f000 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 liasPackage).{.return.$repo->has
7f020 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 50 61 Package($package).&&.$this->isPa
7f040 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2d 3e ckageInstalled($repo,.$package->
7f060 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e getAliasOf());.}..return.$this->
7f080 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 getInstaller($package->getType()
7f0a0 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b )->isInstalled($repo,.$package);
7f0c0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 .}........public.function.execut
7f0e0 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4f 70 65 e(RepositoryInterface.$repo,.Ope
7f100 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 6d rationInterface.$operation).{.$m
7f120 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 ethod.=.$operation->getJobType()
7f140 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 68 6f 64 28 24 72 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 ;.$this->$method($repo,.$operati
7f160 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e on);.}........public.function.in
7f180 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c stall(RepositoryInterface.$repo,
7f1a0 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a .InstallOperation.$operation).{.
7f1c0 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 $package.=.$operation->getPackag
7f1e0 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 e();.$installer.=.$this->getInst
7f200 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 aller($package->getType());.$ins
7f220 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 taller->install($repo,.$package)
7f240 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 24 70 61 ;.$this->markForNotification($pa
7f260 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ckage);.}........public.function
7f280 20 75 70 64 61 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 .update(RepositoryInterface.$rep
7f2a0 6f 2c 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b o,.UpdateOperation.$operation).{
7f2c0 0a 24 69 6e 69 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 .$initial.=.$operation->getIniti
7f2e0 61 6c 50 61 63 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 6f 70 65 72 61 74 69 6f alPackage();.$target.=.$operatio
7f300 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 69 6e 69 74 69 61 6c n->getTargetPackage();..$initial
7f320 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 24 74 61 72 Type.=.$initial->getType();.$tar
7f340 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 0a 69 getType.=.$target->getType();..i
7f360 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 f.($initialType.===.$targetType)
7f380 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c .{.$installer.=.$this->getInstal
7f3a0 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 ler($initialType);.$installer->u
7f3c0 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b pdate($repo,.$initial,.$target);
7f3e0 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 24 74 61 72 .$this->markForNotification($tar
7f400 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c get);.}.else.{.$this->getInstall
7f420 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 er($initialType)->uninstall($rep
7f440 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 o,.$initial);.$this->getInstalle
7f460 72 28 24 74 61 72 67 65 74 54 79 70 65 29 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 r($targetType)->install($repo,.$
7f480 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 target);.}.}........public.funct
7f4a0 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 ion.uninstall(RepositoryInterfac
7f4c0 65 20 24 72 65 70 6f 2c 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 e.$repo,.UninstallOperation.$ope
7f4e0 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d ration).{.$package.=.$operation-
7f500 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 >getPackage();.$installer.=.$thi
7f520 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 s->getInstaller($package->getTyp
7f540 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 e());.$installer->uninstall($rep
7f560 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 o,.$package);.}........public.fu
7f580 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f 73 69 nction.markAliasInstalled(Reposi
7f5a0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 49 6e toryInterface.$repo,.MarkAliasIn
7f5c0 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 stalledOperation.$operation).{.$
7f5e0 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 package.=.$operation->getPackage
7f600 28 29 3b 0a 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 ();..if.(!$repo->hasPackage($pac
7f620 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 kage)).{.$repo->addPackage(clone
7f640 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$package);.}.}........public.fu
7f660 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f nction.markAliasUninstalled(Repo
7f680 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 sitoryInterface.$repo,.MarkAlias
7f6a0 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 UninstalledOperation.$operation)
7f6c0 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 .{.$package.=.$operation->getPac
7f6e0 6b 61 67 65 28 29 3b 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 kage();..$repo->removePackage($p
7f700 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ackage);.}........public.functio
7f720 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.getInstallPath(PackageInterfac
7f740 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 e.$package).{.$installer.=.$this
7f760 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 ->getInstaller($package->getType
7f780 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 67 65 74 49 6e 73 74 ());..return.$installer->getInst
7f7a0 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e allPath($package);.}..public.fun
7f7c0 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 ction.notifyInstalls().{.foreach
7f7e0 20 28 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 .($this->notifiablePackages.as.$
7f800 72 65 70 6f 55 72 6c 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 0a 20 69 66 20 28 73 74 repoUrl.=>.$packages).{...if.(st
7f820 72 70 6f 73 28 24 72 65 70 6f 55 72 6c 2c 20 27 25 70 61 63 6b 61 67 65 25 27 29 29 20 7b 0a 66 rpos($repoUrl,.'%package%')).{.f
7f840 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
7f860 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c .$url.=.str_replace('%package%',
7f880 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 72 65 70 .$package->getPrettyName(),.$rep
7f8a0 6f 55 72 6c 29 3b 0a 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 73 69 6f oUrl);..$params.=.array(.'versio
7f8c0 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e n'.=>.$package->getPrettyVersion
7f8e0 28 29 2c 0a 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 70 61 63 (),.'version_normalized'.=>.$pac
7f900 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 24 6f 70 74 73 20 3d 20 61 kage->getVersion(),.);.$opts.=.a
7f920 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d rray('http'.=>.array(.'method'.=
7f940 3e 20 27 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f 6e >.'POST',.'header'.=>.array('Con
7f960 74 65 6e 74 2d 74 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 tent-type:.application/x-www-for
7f980 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 27 29 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 68 74 74 m-urlencoded'),.'content'.=>.htt
7f9a0 70 5f 62 75 69 6c 64 5f 71 75 65 72 79 28 24 70 61 72 61 6d 73 2c 20 27 27 2c 20 27 26 27 29 2c p_build_query($params,.'',.'&'),
7f9c0 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 .'timeout'.=>.3,.).);..$context.
7f9e0 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 =.StreamContextFactory::getConte
7fa00 78 74 28 24 75 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 xt($url,.$opts);.@file_get_conte
7fa20 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 3b 0a 7d 0a 0a 63 nts($url,.false,.$context);.}..c
7fa40 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 74 44 61 74 61 20 3d 20 61 72 72 61 79 28 27 64 ontinue;.}..$postData.=.array('d
7fa60 6f 77 6e 6c 6f 61 64 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 ownloads'.=>.array());.foreach.(
7fa80 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 6f 73 74 44 61 $packages.as.$package).{.$postDa
7faa0 74 61 5b 27 64 6f 77 6e 6c 6f 61 64 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 ta['downloads'][].=.array(.'name
7fac0 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a '.=>.$package->getPrettyName(),.
7fae0 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 'version'.=>.$package->getVersio
7fb00 6e 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 70 74 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 n(),.);.}..$opts.=.array('http'.
7fb20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 68 =>.array(.'method'.=>.'POST',.'h
7fb40 65 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 eader'.=>.array('Content-Type:.a
7fb60 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 27 29 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 pplication/json'),.'content'.=>.
7fb80 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 6f 73 74 44 61 74 61 29 2c 0a 27 74 69 6d 65 6f 75 74 json_encode($postData),.'timeout
7fba0 27 20 3d 3e 20 36 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 3d 20 53 74 72 65 61 6d 43 '.=>.6,.).);..$context.=.StreamC
7fbc0 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 72 65 70 6f 55 ontextFactory::getContext($repoU
7fbe0 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 rl,.$opts);.@file_get_contents($
7fc00 72 65 70 6f 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 3b 0a 7d 0a 0a 24 74 repoUrl,.false,.$context);.}..$t
7fc20 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f his->reset();.}..private.functio
7fc40 6e 20 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 n.markForNotification(PackageInt
7fc60 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d erface.$package).{.if.($package-
7fc80 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e >getNotificationUrl()).{.$this->
7fca0 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 notifiablePackages[$package->get
7fcc0 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 NotificationUrl()][$package->get
7fce0 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a Name()].=.$package;.}.}.}.<?php.
7fd00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e ...........namespace.Composer\In
7fd20 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b staller;..use.Composer\Composer;
7fd40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 3b 0a 75 .use.Composer\Package\Package;.u
7fd60 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
7fd80 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 Composer\Repository\InstalledRep
7fda0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ositoryInterface;.use.Composer\P
7fdc0 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a ackage\PackageInterface;........
7fde0 63 6c 61 73 73 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 class.PluginInstaller.extends.Li
7fe00 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c braryInstaller.{.private.$instal
7fe20 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 lationManager;.private.static.$c
7fe40 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 lassCounter.=.0;.........public.
7fe60 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 function.__construct(IOInterface
7fe80 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 .$io,.Composer.$composer,.$type.
7fea0 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 =.'library').{.parent::__constru
7fec0 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 ct($io,.$composer,.'composer-plu
7fee0 67 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 gin');.$this->installationManage
7ff00 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 r.=.$composer->getInstallationMa
7ff20 6e 61 67 65 72 28 29 3b 0a 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nager();..}.....public.function.
7ff40 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 supports($packageType).{.return.
7ff60 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 $packageType.===.'composer-plugi
7ff80 6e 27 20 7c 7c 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 n'.||.$packageType.===.'composer
7ffa0 2d 69 6e 73 74 61 6c 6c 65 72 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 -installer';.}.....public.functi
7ffc0 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e on.install(InstalledRepositoryIn
7ffe0 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 terface.$repo,.PackageInterface.
80000 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 $package).{.$extra.=.$package->g
80020 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 etExtra();.if.(empty($extra['cla
80040 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 ss'])).{.throw.new.\UnexpectedVa
80060 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c lueException('Error.while.instal
80080 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 ling.'.$package->getPrettyName()
800a0 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 65 73 20 73 68 6f .',.composer-plugin.packages.sho
800c0 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 uld.have.a.class.defined.in.thei
800e0 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a r.extra.key.to.be.usable.');.}..
80100 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 parent::install($repo,.$package)
80120 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 ;.$this->composer->getPluginMana
80140 67 65 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 ger()->registerPackage($package)
80160 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 ;.}.....public.function.update(I
80180 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 nstalledRepositoryInterface.$rep
801a0 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 o,.PackageInterface.$initial,.Pa
801c0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 65 78 74 72 61 ckageInterface.$target).{.$extra
801e0 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 .=.$target->getExtra();.if.(empt
80200 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 y($extra['class'])).{.throw.new.
80220 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 \UnexpectedValueException('Error
80240 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 .while.installing.'.$target->get
80260 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 PrettyName().',.composer-plugin.
80280 70 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 packages.should.have.a.class.def
802a0 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 ined.in.their.extra.key.to.be.us
802c0 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 70 64 61 74 65 28 24 72 65 70 6f able.');.}..parent::update($repo
802e0 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d ,.$initial,.$target);.$this->com
80300 70 6f 73 65 72 2d 3e 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 72 65 67 69 73 poser->getPluginManager()->regis
80320 74 65 72 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a terPackage($target);.}.}.<?php..
80340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 ..........namespace.Composer\Ins
80360 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 taller;..use.Composer\Package\Pa
80380 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ckageInterface;.use.Composer\Rep
803a0 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 ository\InstalledRepositoryInter
803c0 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 72 face;........interface.Installer
803e0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Interface.{.......public.functio
80400 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a n.supports($packageType);.......
80420 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 ...public.function.isInstalled(I
80440 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 nstalledRepositoryInterface.$rep
80460 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a o,.PackageInterface.$package);..
80480 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e ......public.function.install(In
804a0 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f stalledRepositoryInterface.$repo
804c0 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a ,.PackageInterface.$package);...
804e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 ........public.function.update(I
80500 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 nstalledRepositoryInterface.$rep
80520 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 o,.PackageInterface.$initial,.Pa
80540 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a 0a 0a 0a ckageInterface.$target);........
80560 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c public.function.uninstall(Instal
80580 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 ledRepositoryInterface.$repo,.Pa
805a0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a ckageInterface.$package);.......
805c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 .public.function.getInstallPath(
805e0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f PackageInterface.$package);.}.<?
80600 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
80620 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e r\Console;..use.Symfony\Componen
80640 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 73 65 41 70 70 t\Console\Application.as.BaseApp
80660 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c lication;.use.Symfony\Component\
80680 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 Console\Input\InputInterface;.us
806a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
806c0 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f t\InputOption;.use.Symfony\Compo
806e0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 nent\Console\Output\OutputInterf
80700 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
80720 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d le\Output\ConsoleOutput;.use.Sym
80740 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 fony\Component\Console\Formatter
80760 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 \OutputFormatter;.use.Composer\C
80780 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c ommand;.use.Composer\Command\Hel
807a0 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 per\DialogHelper;.use.Composer\C
807c0 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 omposer;.use.Composer\Factory;.u
807e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
80800 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f Composer\IO\ConsoleIO;.use.Compo
80820 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e ser\Json\JsonValidationException
80840 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 6e 64 6c 65 72 ;.use.Composer\Util\ErrorHandler
80860 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 65 78 74 65 ;.........class.Application.exte
80880 6e 64 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 nds.BaseApplication.{....protect
808a0 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b ed.$composer;.....protected.$io;
808c0 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 3d 20 27 20 20 20 5f 5f 5f ..private.static.$logo.=.'...___
808e0 5f 5f 5f 0a 20 20 2f 20 5f 5f 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 5f 5f 5f 20 20 5f 5f 5f 5f ___.../.____/___..____.___..____
80900 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 0a 20 2f 20 2f 20 20 20 2f ..____..________.._____.././.../
80920 20 5f 5f 20 5c 2f 20 5f 5f 20 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 5f .__.\/.__.`__.\/.__.\/.__.\/.___
80940 2f 20 5f 20 5c 2f 20 5f 5f 5f 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f 20 2f 20 2f 20 2f 20 2f 20 /._.\/.___/././___/./_/././././.
80960 2f 20 2f 20 2f 5f 2f 20 2f 20 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f 5f 2f 20 2f 0a 5c 5f 5f 5f /././_/././_/.(__..)..__/./.\___
80980 5f 2f 5c 5f 5f 5f 5f 2f 5f 2f 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 5f _/\____/_/./_/./_/..___/\____/__
809a0 5f 5f 2f 5c 5f 5f 5f 2f 5f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f __/\___/_/...................../
809c0 5f 2f 0a 27 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 _/.';..public.function.__constru
809e0 63 74 28 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f ct().{.if.(function_exists('ini_
80a00 73 65 74 27 29 29 20 7b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 68 6f 77 5f 65 78 set')).{.ini_set('xdebug.show_ex
80a20 63 65 70 74 69 6f 6e 5f 74 72 61 63 65 27 2c 20 66 61 6c 73 65 29 3b 0a 69 6e 69 5f 73 65 74 28 ception_trace',.false);.ini_set(
80a40 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 2c 20 66 61 6c 73 65 29 3b 0a 0a 7d 0a 69 66 20 28 'xdebug.scream',.false);..}.if.(
80a60 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 function_exists('date_default_ti
80a80 6d 65 7a 6f 6e 65 5f 73 65 74 27 29 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 mezone_set').&&.function_exists(
80aa0 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 27 29 29 20 7b 0a 'date_default_timezone_get')).{.
80ac0 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 28 40 64 61 74 65 5f date_default_timezone_set(@date_
80ae0 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 28 29 29 3b 0a 7d 0a 0a 45 72 72 6f default_timezone_get());.}..Erro
80b00 72 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f rHandler::register();.parent::__
80b20 63 6f 6e 73 74 72 75 63 74 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a construct('Composer',.Composer::
80b40 56 45 52 53 49 4f 4e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 VERSION);.}.....public.function.
80b60 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c run(InputInterface.$input.=.null
80b80 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c ,.OutputInterface.$output.=.null
80ba0 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 ).{.if.(null.===.$output).{.$sty
80bc0 6c 65 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 les.=.Factory::createAdditionalS
80be0 74 79 6c 65 73 28 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 tyles();.$formatter.=.new.Output
80c00 46 6f 72 6d 61 74 74 65 72 28 6e 75 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f 75 74 70 75 Formatter(null,.$styles);.$outpu
80c20 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 t.=.new.ConsoleOutput(ConsoleOut
80c40 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f put::VERBOSITY_NORMAL,.null,.$fo
80c60 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 rmatter);.}..return.parent::run(
80c80 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $input,.$output);.}.....public.f
80ca0 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e unction.doRun(InputInterface.$in
80cc0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
80ce0 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 6e 70 75 74 $this->io.=.new.ConsoleIO($input
80d00 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 ,.$output,.$this->getHelperSet()
80d20 29 3b 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 );..if.(version_compare(PHP_VERS
80d40 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 ION,.'5.3.2',.'<')).{.$output->w
80d60 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e 6c 79 20 6f riteln('<warning>Composer.only.o
80d80 66 66 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 20 61 6e 64 fficially.supports.PHP.5.3.2.and
80da0 20 61 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 65 6e 63 .above,.you.will.most.likely.enc
80dc0 6f 75 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 50 20 27 2e ounter.problems.with.your.PHP.'.
80de0 50 48 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 73 74 72 6f PHP_VERSION.',.upgrading.is.stro
80e00 6e 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d ngly.recommended.</warning>');.}
80e20 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e ..if.(defined('COMPOSER_DEV_WARN
80e40 49 4e 47 5f 54 49 4d 45 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e ING_TIME').&&.$this->getCommandN
80e60 61 6d 65 28 24 69 6e 70 75 74 29 20 21 3d 3d 20 27 73 65 6c 66 2d 75 70 64 61 74 65 27 20 26 26 ame($input).!==.'self-update'.&&
80e80 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 20 21 .$this->getCommandName($input).!
80ea0 3d 3d 20 27 73 65 6c 66 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 20 3e 20 ==.'selfupdate').{.if.(time().>.
80ec0 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 6f 75 COMPOSER_DEV_WARNING_TIME).{.$ou
80ee0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 77 61 72 6e 69 6e 67 3e tput->writeln(sprintf('<warning>
80f00 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 62 75 69 6c 64 20 Warning:.This.development.build.
80f20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 76 65 72 20 33 30 20 64 61 79 73 20 6f 6c 64 2e of.composer.is.over.30.days.old.
80f40 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 70 64 61 74 65 20 69 74 20 .It.is.recommended.to.update.it.
80f60 62 79 20 72 75 6e 6e 69 6e 67 20 22 25 73 20 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f 20 67 by.running."%s.self-update".to.g
80f80 65 74 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e et.the.latest.version.</warning>
80fa0 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 29 29 3b 0a 7d 0a 7d 0a 0a ',.$_SERVER['PHP_SELF']));.}.}..
80fc0 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 4e 4f 5f 49 4e 54 45 52 41 43 54 if.(getenv('COMPOSER_NO_INTERACT
80fe0 49 4f 4e 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 ION')).{.$input->setInteractive(
81000 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 false);.}..if.($input->hasParame
81020 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 72 74 terOption('--profile')).{.$start
81040 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 69 Time.=.microtime(true);.$this->i
81060 6f 2d 3e 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 3b 0a o->enableDebugging($startTime);.
81080 7d 0a 0a 69 66 20 28 24 6e 65 77 57 6f 72 6b 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e }..if.($newWorkDir.=.$this->getN
810a0 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 6c 64 57 6f 72 6b ewWorkingDir($input)).{.$oldWork
810c0 69 6e 67 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 6e 65 77 57 6f 72 ingDir.=.getcwd();.chdir($newWor
810e0 6b 44 69 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 kDir);.}..$result.=.parent::doRu
81100 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 n($input,.$output);..if.(isset($
81120 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b oldWorkingDir)).{.chdir($oldWork
81140 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 ingDir);.}..if.(isset($startTime
81160 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4d 65 6d )).{.$output->writeln('<info>Mem
81180 6f 72 79 20 75 73 61 67 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 ory.usage:.'.round(memory_get_us
811a0 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 20 28 70 65 61 age()./.1024./.1024,.2).'MB.(pea
811c0 6b 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 70 65 61 6b 5f 75 73 61 67 65 k:.'.round(memory_get_peak_usage
811e0 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 29 2c 20 74 69 6d 65 3a ()./.1024./.1024,.2).'MB),.time:
81200 20 27 2e 72 6f 75 6e 64 28 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 73 74 61 72 .'.round(microtime(true).-.$star
81220 74 54 69 6d 65 2c 20 32 29 2e 27 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c tTime,.2).'s');.}..return.$resul
81240 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 t;.}......private.function.getNe
81260 77 57 6f 72 6b 69 6e 67 44 69 72 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 wWorkingDir(InputInterface.$inpu
81280 74 29 0a 7b 0a 24 77 6f 72 6b 69 6e 67 44 69 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 t).{.$workingDir.=.$input->getPa
812a0 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 rameterOption(array('--working-d
812c0 69 72 27 2c 20 27 2d 64 27 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 6f 72 6b ir',.'-d'));.if.(false.!==.$work
812e0 69 6e 67 44 69 72 20 26 26 20 21 69 73 5f 64 69 72 28 24 77 6f 72 6b 69 6e 67 44 69 72 29 29 20 ingDir.&&.!is_dir($workingDir)).
81300 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 {.throw.new.\RuntimeException('I
81320 6e 76 61 6c 69 64 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 73 70 65 63 69 66 69 nvalid.working.directory.specifi
81340 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 6f 72 6b 69 6e 67 44 69 72 3b 0a 7d 0a ed.');.}..return.$workingDir;.}.
81360 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 ....public.function.renderExcept
81380 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 72 79 20 7b ion($exception,.$output).{.try.{
813a0 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 .$composer.=.$this->getComposer(
813c0 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 false);.if.($composer).{.$config
813e0 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 6d 69 6e .=.$composer->getConfig();..$min
81400 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 69 66 20 28 28 28 24 64 66 SpaceFree.=.1024*1024;.if.((($df
81420 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e 66 .=.@disk_free_space($dir.=.$conf
81440 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 ig->get('home'))).!==.false.&&.$
81460 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 28 28 24 64 66 20 3d 20 40 df.<.$minSpaceFree).||.(($df.=.@
81480 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e disk_free_space($dir.=.$config->
814a0 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 get('vendor-dir'))).!==.false.&&
814c0 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 24 6f 75 74 70 75 .$df.<.$minSpaceFree).).{.$outpu
814e0 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b 20 68 6f 73 74 t->writeln('<error>The.disk.host
81500 69 6e 67 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 2c 20 74 68 69 73 20 6d 61 79 20 62 ing.'.$dir.'.is.full,.this.may.b
81520 65 20 74 68 65 20 63 61 75 73 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 e.the.cause.of.the.following.exc
81540 65 70 74 69 6f 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c eption</error>');.}.}.}.catch.(\
81560 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a Exception.$e).{}..return.parent:
81580 3a 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 :renderException($exception,.$ou
815a0 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tput);.}........public.function.
815c0 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 2c 20 24 64 getComposer($required.=.true,.$d
815e0 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c isablePlugins.=.false).{.if.(nul
81600 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 72 79 20 7b 0a 24 l.===.$this->composer).{.try.{.$
81620 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 this->composer.=.Factory::create
81640 28 24 74 68 69 73 2d 3e 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e ($this->io,.null,.$disablePlugin
81660 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 s);.}.catch.(\InvalidArgumentExc
81680 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 eption.$e).{.if.($required).{.$t
816a0 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 his->io->write($e->getMessage())
816c0 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 ;.exit(1);.}.}.catch.(JsonValida
816e0 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 27 20 tionException.$e).{.$errors.=.'.
81700 2d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 20 2e 20 27 20 2d 20 27 2c 20 24 -.'...implode(PHP_EOL...'.-.',.$
81720 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 65 2d 3e e->getErrors());.$message.=.$e->
81740 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 27 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 24 getMessage()...':'...PHP_EOL...$
81760 65 72 72 6f 72 73 3b 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e errors;.throw.new.JsonValidation
81780 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 7d 0a 0a 72 65 74 75 72 Exception($message);.}..}..retur
817a0 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$this->composer;.}.....public.
817c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d function.getIO().{.return.$this-
817e0 3e 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 >io;.}..public.function.getHelp(
81800 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 67 6f 20 2e 20 70 61 72 65 6e 74 3a ).{.return.self::$logo...parent:
81820 3a 67 65 74 48 65 6c 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 :getHelp();.}.....protected.func
81840 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 24 63 6f 6d tion.getDefaultCommands().{.$com
81860 6d 61 6e 64 73 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e mands.=.parent::getDefaultComman
81880 64 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c ds();.$commands[].=.new.Command\
818a0 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 AboutCommand();.$commands[].=.ne
818c0 77 20 43 6f 6d 6d 61 6e 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d w.Command\ConfigCommand();.$comm
818e0 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 65 70 65 6e 64 73 43 6f 6d 6d ands[].=.new.Command\DependsComm
81900 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 and();.$commands[].=.new.Command
81920 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 \InitCommand();.$commands[].=.ne
81940 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d w.Command\InstallCommand();.$com
81960 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 72 65 61 74 65 50 72 6f 6a mands[].=.new.Command\CreateProj
81980 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 ectCommand();.$commands[].=.new.
819a0 43 6f 6d 6d 61 6e 64 5c 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e Command\UpdateCommand();.$comman
819c0 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 ds[].=.new.Command\SearchCommand
819e0 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 56 61 ();.$commands[].=.new.Command\Va
81a00 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e lidateCommand();.$commands[].=.n
81a20 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 ew.Command\ShowCommand();.$comma
81a40 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 71 75 69 72 65 43 6f 6d 6d 61 nds[].=.new.Command\RequireComma
81a60 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c nd();.$commands[].=.new.Command\
81a80 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 DumpAutoloadCommand();.$commands
81aa0 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 28 29 [].=.new.Command\StatusCommand()
81ac0 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 41 72 63 68 ;.$commands[].=.new.Command\Arch
81ae0 69 76 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 iveCommand();.$commands[].=.new.
81b00 43 6f 6d 6d 61 6e 64 5c 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d Command\DiagnoseCommand();.$comm
81b20 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 75 6e 53 63 72 69 70 74 43 6f ands[].=.new.Command\RunScriptCo
81b40 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 mmand();.$commands[].=.new.Comma
81b60 6e 64 5c 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b nd\LicensesCommand();.$commands[
81b80 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 28 29 3b ].=.new.Command\GlobalCommand();
81ba0 0a 0a 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f ..if.('phar:'.===.substr(__FILE_
81bc0 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f _,.0,.5)).{.$commands[].=.new.Co
81be0 6d 6d 61 6e 64 5c 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 7d 0a 0a 72 65 mmand\SelfUpdateCommand();.}..re
81c00 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e turn.$commands;.}.....public.fun
81c20 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.getLongVersion().{.return.
81c40 70 61 72 65 6e 74 3a 3a 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e parent::getLongVersion()...'.'..
81c60 20 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 3b 0a 7d 0a 0a 0a 0a 0a 70 .Composer::RELEASE_DATE;.}.....p
81c80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 rotected.function.getDefaultInpu
81ca0 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 70 61 tDefinition().{.$definition.=.pa
81cc0 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 rent::getDefaultInputDefinition(
81ce0 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e );.$definition->addOption(new.In
81d00 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 putOption('--profile',.null,.Inp
81d20 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 utOption::VALUE_NONE,.'Display.t
81d40 69 6d 69 6e 67 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 iming.and.memory.usage.informati
81d60 6f 6e 27 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 on'));.$definition->addOption(ne
81d80 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 w.InputOption('--working-dir',.'
81da0 2d 64 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 -d',.InputOption::VALUE_REQUIRED
81dc0 2c 20 27 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 65 20 67 69 76 65 6e 20 64 ,.'If.specified,.use.the.given.d
81de0 69 72 65 63 74 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 2e 27 29 irectory.as.working.directory.')
81e00 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 );..return.$definition;.}.....pr
81e20 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 otected.function.getDefaultHelpe
81e40 72 53 65 74 28 29 0a 7b 0a 24 68 65 6c 70 65 72 53 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 rSet().{.$helperSet.=.parent::ge
81e60 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 24 68 65 6c 70 65 72 53 65 74 tDefaultHelperSet();..$helperSet
81e80 2d 3e 73 65 74 28 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 ->set(new.DialogHelper());..retu
81ea0 72 6e 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a rn.$helperSet;.}.}.<?php........
81ec0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a ....namespace.Composer\Console;.
81ee0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 .use.Symfony\Component\Console\F
81f00 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c ormatter\OutputFormatter;.....cl
81f20 61 73 73 20 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 65 78 74 65 6e 64 73 20 ass.HtmlOutputFormatter.extends.
81f40 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 OutputFormatter.{.private.static
81f60 20 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 .$availableForegroundColors.=.ar
81f80 72 61 79 28 0a 33 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 33 31 20 3d 3e 20 27 72 65 64 27 2c ray(.30.=>.'black',.31.=>.'red',
81fa0 0a 33 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a .32.=>.'green',.33.=>.'yellow',.
81fc0 33 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 33 34.=>.'blue',.35.=>.'magenta',.3
81fe0 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 33 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b 0a 70 72 6.=>.'cyan',.37.=>.'white'.);.pr
82000 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e ivate.static.$availableBackgroun
82020 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 34 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a dColors.=.array(.40.=>.'black',.
82040 34 31 20 3d 3e 20 27 72 65 64 27 2c 0a 34 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 34 33 20 3d 41.=>.'red',.42.=>.'green',.43.=
82060 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 34 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 34 35 20 3d 3e 20 >.'yellow',.44.=>.'blue',.45.=>.
82080 27 6d 61 67 65 6e 74 61 27 2c 0a 34 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 34 37 20 3d 3e 20 27 'magenta',.46.=>.'cyan',.47.=>.'
820a0 77 68 69 74 65 27 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 white'.);.private.static.$availa
820c0 62 6c 65 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 20 3d 3e 20 27 62 6f 6c 64 27 2c bleOptions.=.array(.1.=>.'bold',
820e0 0a 34 20 3d 3e 20 27 75 6e 64 65 72 73 63 6f 72 65 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 0a 0a .4.=>.'underscore',.......);....
82100 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 .public.function.__construct(arr
82120 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a ay.$styles.=.array()).{.parent::
82140 5f 5f 63 6f 6e 73 74 72 75 63 74 28 74 72 75 65 2c 20 24 73 74 79 6c 65 73 29 3b 0a 7d 0a 0a 70 __construct(true,.$styles);.}..p
82160 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a ublic.function.format($message).
82180 7b 0a 24 66 6f 72 6d 61 74 74 65 64 20 3d 20 70 61 72 65 6e 74 3a 3a 66 6f 72 6d 61 74 28 24 6d {.$formatted.=.parent::format($m
821a0 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 essage);..return.preg_replace_ca
821c0 6c 6c 62 61 63 6b 28 22 7b 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d 2b 29 6d 28 2e 2a 3f 29 5c 30 llback("{\033\[([0-9;]+)m(.*?)\0
821e0 33 33 5c 5b 30 6d 7d 73 22 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 66 6f 72 6d 61 74 48 33\[0m}s",.array($this,.'formatH
82200 74 6d 6c 27 29 2c 20 24 66 6f 72 6d 61 74 74 65 64 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 tml'),.$formatted);.}..private.f
82220 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 48 74 6d 6c 28 24 6d 61 74 63 68 65 73 29 0a 7b 0a 24 unction.formatHtml($matches).{.$
82240 6f 75 74 20 3d 20 27 3c 73 70 61 6e 20 73 74 79 6c 65 3d 22 27 3b 0a 66 6f 72 65 61 63 68 20 28 out.=.'<span.style="';.foreach.(
82260 65 78 70 6c 6f 64 65 28 27 3b 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 61 73 20 24 63 6f explode(';',.$matches[1]).as.$co
82280 64 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 de).{.if.(isset(self::$available
822a0 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 ForegroundColors[$code])).{.$out
822c0 20 2e 3d 20 27 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 ..=.'color:'.self::$availableFor
822e0 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 egroundColors[$code].';';.}.else
82300 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 if.(isset(self::$availableBackgr
82320 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 62 oundColors[$code])).{.$out..=.'b
82340 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 ackground-color:'.self::$availab
82360 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d leBackgroundColors[$code].';';.}
82380 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f .elseif.(isset(self::$availableO
823a0 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 65 6c 66 3a 3a ptions[$code])).{.switch.(self::
823c0 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 20 7b 0a 63 61 73 65 $availableOptions[$code]).{.case
823e0 20 27 62 6f 6c 64 27 3a 0a 24 6f 75 74 20 2e 3d 20 27 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f .'bold':.$out..=.'font-weight:bo
82400 6c 64 3b 27 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 64 65 72 73 63 6f 72 65 27 3a ld;';.break;..case.'underscore':
82420 0a 24 6f 75 74 20 2e 3d 20 27 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 75 6e 64 65 72 6c .$out..=.'text-decoration:underl
82440 69 6e 65 3b 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 ine;';.break;.}.}.}..return.$out
82460 20 2e 20 27 22 3e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 3c 2f 73 70 61 6e 3e 27 3b 0a 7d ...'">'.$matches[2].'</span>';.}
82480 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
824a0 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 mposer\Autoload;..use.Composer\C
824c0 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 onfig;.use.Composer\EventDispatc
824e0 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 her\EventDispatcher;.use.Compose
82500 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b r\Installer\InstallationManager;
82520 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 .use.Composer\Package\AliasPacka
82540 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 ge;.use.Composer\Package\Package
82560 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f Interface;.use.Composer\Reposito
82580 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b ry\InstalledRepositoryInterface;
825a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 .use.Composer\Util\Filesystem;.u
825c0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b se.Composer\Script\ScriptEvents;
825e0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 0a 7b 0a ......class.AutoloadGenerator.{.
82600 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 70 75 ...private.$eventDispatcher;..pu
82620 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 45 76 65 6e 74 44 blic.function.__construct(EventD
82640 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 ispatcher.$eventDispatcher).{.$t
82660 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 his->eventDispatcher.=.$eventDis
82680 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 patcher;.}..public.function.dump
826a0 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 (Config.$config,.InstalledReposi
826c0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 50 61 63 6b 61 67 toryInterface.$localRepo,.Packag
826e0 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 49 6e 73 74 61 6c 6c eInterface.$mainPackage,.Install
82700 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 ationManager.$installationManage
82720 72 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 r,.$targetDir,.$scanPsr0Packages
82740 20 3d 20 66 61 6c 73 65 2c 20 24 73 75 66 66 69 78 20 3d 20 27 27 29 0a 7b 0a 24 74 68 69 73 2d .=.false,.$suffix.=.'').{.$this-
82760 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 >eventDispatcher->dispatchScript
82780 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 (ScriptEvents::PRE_AUTOLOAD_DUMP
827a0 29 3b 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d );..$filesystem.=.new.Filesystem
827c0 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 ();.$filesystem->ensureDirectory
827e0 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 Exists($config->get('vendor-dir'
82800 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 ));.$basePath.=.$filesystem->nor
82820 6d 61 6c 69 7a 65 50 61 74 68 28 67 65 74 63 77 64 28 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 malizePath(getcwd());.$vendorPat
82840 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 h.=.$filesystem->normalizePath(r
82860 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 ealpath($config->get('vendor-dir
82880 27 29 29 29 3b 0a 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 28 62 ')));.$useGlobalIncludePath.=.(b
828a0 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 ool).$config->get('use-include-p
828c0 61 74 68 27 29 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 2e ath');.$targetDir.=.$vendorPath.
828e0 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 '/'.$targetDir;.$filesystem->ens
82900 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a ureDirectoryExists($targetDir);.
82920 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e .$vendorPathCode.=.$filesystem->
82940 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 61 6c 70 61 74 68 28 24 74 findShortestPathCode(realpath($t
82960 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 argetDir),.$vendorPath,.true);.$
82980 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 vendorPathCode52.=.str_replace('
829a0 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 27 2c 20 24 __DIR__',.'dirname(__FILE__)',.$
829c0 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 vendorPathCode);.$vendorPathToTa
829e0 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 rgetDirCode.=.$filesystem->findS
82a00 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 hortestPathCode($vendorPath,.rea
82a20 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 lpath($targetDir),.true);..$appB
82a40 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 aseDirCode.=.$filesystem->findSh
82a60 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 62 61 73 ortestPathCode($vendorPath,.$bas
82a80 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 ePath,.true);.$appBaseDirCode.=.
82aa0 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 str_replace('__DIR__',.'$vendorD
82ac0 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 ir',.$appBaseDirCode);..$namespa
82ae0 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c cesFile.=.<<<EOF.<?php..//.autol
82b00 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 oad_namespaces.php.@generated.by
82b20 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 .Composer..\$vendorDir.=.$vendor
82b40 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 PathCode52;.\$baseDir.=.$appBase
82b60 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 24 DirCode;..return.array(..EOF;..$
82b80 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 packageMap.=.$this->buildPackage
82ba0 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 6d 61 69 6e 50 Map($installationManager,.$mainP
82bc0 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c ackage,.$localRepo->getCanonical
82be0 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 24 74 68 69 73 2d Packages());.$autoloads.=.$this-
82c00 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 >parseAutoloads($packageMap,.$ma
82c20 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 inPackage);..foreach.($autoloads
82c40 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 ['psr-0'].as.$namespace.=>.$path
82c60 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 s).{.$exportedPaths.=.array();.f
82c80 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f oreach.($paths.as.$path).{.$expo
82ca0 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 rtedPaths[].=.$this->getPathCode
82cc0 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 ($filesystem,.$basePath,.$vendor
82ce0 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 Path,.$path);.}.$exportedPrefix.
82d00 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a =.var_export($namespace,.true);.
82d20 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 24 65 78 70 6f 72 74 65 $namespacesFile..=."....$exporte
82d40 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d dPrefix.=>.";.$namespacesFile..=
82d60 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 ."array(".implode(',.',.$exporte
82d80 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c dPaths)."),\n";.}.$namespacesFil
82da0 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c e..=.");\n";..$classmapFile.=.<<
82dc0 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 <EOF.<?php..//.autoload_classmap
82de0 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 .php.@generated.by.Composer..\$v
82e00 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 endorDir.=.$vendorPathCode52;.\$
82e20 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 baseDir.=.$appBaseDirCode;..retu
82e40 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 rn.array(..EOF;....$targetDirLoa
82e60 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 der.=.null;.$mainAutoload.=.$mai
82e80 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 nPackage->getAutoload();.if.($ma
82ea0 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d inPackage->getTargetDir().&&.!em
82ec0 70 74 79 28 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 pty($mainAutoload['psr-0'])).{.$
82ee0 6c 65 76 65 6c 73 20 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c levels.=.count(explode('/',.$fil
82f00 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 6d 61 69 6e 50 61 63 6b esystem->normalizePath($mainPack
82f20 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 72 65 66 69 78 65 age->getTargetDir())));.$prefixe
82f40 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 s.=.implode(',.',.array_map(func
82f60 74 69 6f 6e 20 28 24 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f tion.($prefix).{.return.var_expo
82f80 72 74 28 24 70 72 65 66 69 78 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 rt($prefix,.true);.},.array_keys
82fa0 28 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 ($mainAutoload['psr-0'])));.$bas
82fc0 65 44 69 72 46 72 6f 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 eDirFromTargetDirCode.=.$filesys
82fe0 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 tem->findShortestPathCode($targe
83000 74 44 69 72 2c 20 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 tDir,.$basePath,.true);..$target
83020 44 69 72 4c 6f 61 64 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 DirLoader.=.<<<EOF......public.s
83040 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 tatic.function.autoload(\$class)
83060 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 5c 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 .....{.........\$dir.=.$baseDirF
83080 72 6f 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 romTargetDirCode...'/';.........
830a0 5c 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 \$prefixes.=.array($prefixes);..
830c0 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 .......foreach.(\$prefixes.as.\$
830e0 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 prefix).{.............if.(0.!==.
83100 73 74 72 70 6f 73 28 5c 24 63 6c 61 73 73 2c 20 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 strpos(\$class,.\$prefix)).{....
83120 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 .............continue;..........
83140 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 ...}.............\$path.=.\$dir.
83160 2e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 61 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f ..implode('/',.array_slice(explo
83180 64 65 28 27 5c 5c 5c 5c 27 2c 20 5c 24 63 6c 61 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 de('\\\\',.\$class),.$levels)).'
831a0 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d .php';.............if.(!\$path.=
831c0 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 .stream_resolve_include_path(\$p
831e0 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 ath)).{.................return.f
83200 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 alse;.............}.............
83220 72 65 71 75 69 72 65 20 5c 24 70 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 require.\$path;..............ret
83240 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a urn.true;.........}.....}..EOF;.
83260 7d 0a 0a 0a 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 }....$classMap.=.array();.if.($s
83280 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 canPsr0Packages).{.foreach.($aut
832a0 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e oloads['psr-0'].as.$namespace.=>
832c0 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 64 .$paths).{.foreach.($paths.as.$d
832e0 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c ir).{.$dir.=.$filesystem->normal
83300 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 izePath($filesystem->isAbsoluteP
83320 61 74 68 28 24 64 69 72 29 20 3f 20 24 64 69 72 20 3a 20 24 62 61 73 65 50 61 74 68 2e 27 2f 27 ath($dir).?.$dir.:.$basePath.'/'
83340 2e 24 64 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 63 6f 6e .$dir);.if.(!is_dir($dir)).{.con
83360 74 69 6e 75 65 3b 0a 7d 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 tinue;.}.$whitelist.=.sprintf(.'
83380 7b 25 73 2f 25 73 2e 2b 28 3f 3c 21 28 3f 3c 21 2f 29 54 65 73 74 5c 2e 70 68 70 29 24 7d 27 2c {%s/%s.+(?<!(?<!/)Test\.php)$}',
833a0 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 29 2c 0a 73 74 72 70 6f 73 28 24 6e 61 6d 65 73 .preg_quote($dir),.strpos($names
833c0 70 61 63 65 2c 20 27 5f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 70 72 65 67 5f 71 75 6f 74 pace,.'_').===.false.?.preg_quot
833e0 65 28 73 74 72 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 20 e(strtr($namespace,.'\\',.'/')).
83400 3a 20 27 27 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 :.''.);.foreach.(ClassMapGenerat
83420 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 29 20 or::createMap($dir,.$whitelist).
83440 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d as.$class.=>.$path).{.if.(''.===
83460 20 24 6e 61 6d 65 73 70 61 63 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 .$namespace.||.0.===.strpos($cla
83480 73 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 ss,.$namespace)).{.if.(!isset($c
834a0 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 lassMap[$class])).{.$path.=.$thi
834c0 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 s->getPathCode($filesystem,.$bas
834e0 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 63 6c 61 ePath,.$vendorPath,.$path);.$cla
83500 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d ssMap[$class].=.$path.",\n";.}.}
83520 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d .}.}.}.}..$autoloads['classmap']
83540 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f .=.new.\RecursiveIteratorIterato
83560 72 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 r(new.\RecursiveArrayIterator($a
83580 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 utoloads['classmap']));.foreach.
835a0 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 ($autoloads['classmap'].as.$dir)
835c0 20 7b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 .{.foreach.(ClassMapGenerator::c
835e0 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 reateMap($dir).as.$class.=>.$pat
83600 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 h).{.$path.=.$this->getPathCode(
83620 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 $filesystem,.$basePath,.$vendorP
83640 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d ath,.$path);.$classMap[$class].=
83660 20 24 70 61 74 68 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 6b 73 6f 72 74 28 24 63 6c 61 73 73 4d .$path.",\n";.}.}..ksort($classM
83680 61 70 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 4d 61 70 20 61 73 20 24 63 6c 61 73 ap);.foreach.($classMap.as.$clas
836a0 73 20 3d 3e 20 24 63 6f 64 65 29 20 7b 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 27 s.=>.$code).{.$classmapFile..=.'
836c0 20 20 20 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 ....'.var_export($class,.true).'
836e0 20 3d 3e 20 27 2e 24 63 6f 64 65 3b 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 .=>.'.$code;.}.$classmapFile..=.
83700 22 29 3b 5c 6e 22 3b 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 20 7b 0a 24 73 75 66 66 69 78 ");\n";..if.(!$suffix).{.$suffix
83720 20 3d 20 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 66 69 6c .=.md5(uniqid('',.true));.}..fil
83740 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f e_put_contents($targetDir.'/auto
83760 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 load_namespaces.php',.$namespace
83780 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 sFile);.file_put_contents($targe
837a0 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 tDir.'/autoload_classmap.php',.$
837c0 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 classmapFile);.if.($includePathF
837e0 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 ile.=.$this->getIncludePathsFile
83800 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 ($packageMap,.$filesystem,.$base
83820 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f Path,.$vendorPath,.$vendorPathCo
83840 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 de52,.$appBaseDirCode)).{.file_p
83860 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 ut_contents($targetDir.'/include
83880 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 29 3b 0a _paths.php',.$includePathFile);.
838a0 7d 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 20 3d 20 24 74 68 69 73 2d }.if.($includeFilesFile.=.$this-
838c0 3e 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 28 24 61 75 74 6f 6c 6f 61 64 73 5b >getIncludeFilesFile($autoloads[
838e0 27 66 69 6c 65 73 27 5d 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 'files'],.$filesystem,.$basePath
83900 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 ,.$vendorPath,.$vendorPathCode52
83920 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 ,.$appBaseDirCode)).{.file_put_c
83940 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 ontents($targetDir.'/autoload_fi
83960 6c 65 73 2e 70 68 70 27 2c 20 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 29 3b 0a 7d 0a les.php',.$includeFilesFile);.}.
83980 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f file_put_contents($vendorPath.'/
839a0 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 autoload.php',.$this->getAutoloa
839c0 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 dFile($vendorPathToTargetDirCode
839e0 2c 20 24 73 75 66 66 69 78 29 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 ,.$suffix));.file_put_contents($
83a00 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 2c 20 targetDir.'/autoload_real.php',.
83a20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 74 72 75 65 2c $this->getAutoloadRealFile(true,
83a40 20 74 72 75 65 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c 20 .true,.(bool).$includePathFile,.
83a60 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 $targetDirLoader,.(bool).$includ
83a80 65 46 69 6c 65 73 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 eFilesFile,.$vendorPathCode,.$ap
83aa0 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 pBaseDirCode,.$suffix,.$useGloba
83ac0 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 29 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 4c 6f 61 64 lIncludePath));......$sourceLoad
83ae0 65 72 20 3d 20 66 6f 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 er.=.fopen(__DIR__.'/ClassLoader
83b00 2e 70 68 70 27 2c 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 4c 6f 61 64 65 72 20 3d 20 66 6f 70 .php',.'r');.$targetLoader.=.fop
83b20 65 6e 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 en($targetDir.'/ClassLoader.php'
83b40 2c 20 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 ,.'w+');.stream_copy_to_stream($
83b60 73 6f 75 72 63 65 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 66 63 sourceLoader,.$targetLoader);.fc
83b80 6c 6f 73 65 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 lose($sourceLoader);.fclose($tar
83ba0 67 65 74 4c 6f 61 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 2c getLoader);.unset($sourceLoader,
83bc0 20 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 .$targetLoader);..$this->eventDi
83be0 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 spatcher->dispatchScript(ScriptE
83c00 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 29 3b 0a 7d 0a 0a 70 vents::POST_AUTOLOAD_DUMP);.}..p
83c20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 49 ublic.function.buildPackageMap(I
83c40 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e nstallationManager.$installation
83c60 4d 61 6e 61 67 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 Manager,.PackageInterface.$mainP
83c80 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 0a 20 24 70 61 ackage,.array.$packages).{...$pa
83ca0 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b ckageMap.=.array(array($mainPack
83cc0 61 67 65 2c 20 27 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 age,.''));..foreach.($packages.a
83ce0 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 s.$package).{.if.($package.insta
83d00 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a nceof.AliasPackage).{.continue;.
83d20 7d 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 }..$packageMap[].=.array(.$packa
83d40 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 ge,.$installationManager->getIns
83d60 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 tallPath($package).);.}..return.
83d80 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $packageMap;.}.........public.fu
83da0 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 nction.parseAutoloads(array.$pac
83dc0 6b 61 67 65 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 kageMap,.PackageInterface.$mainP
83de0 61 63 6b 61 67 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 ackage).{.$mainPackageMap.=.arra
83e00 79 5f 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 y_shift($packageMap);.$sortedPac
83e20 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 kageMap.=.$this->sortPackageMap(
83e40 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 5b $packageMap);.$sortedPackageMap[
83e60 5d 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 ].=.$mainPackageMap;.array_unshi
83e80 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 29 ft($packageMap,.$mainPackageMap)
83ea0 3b 0a 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 ;..$psr0.=.$this->parseAutoloads
83ec0 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c 20 24 6d 61 69 6e Type($packageMap,.'psr-0',.$main
83ee0 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 Package);.$classmap.=.$this->par
83f00 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 seAutoloadsType($sortedPackageMa
83f20 70 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 66 p,.'classmap',.$mainPackage);.$f
83f40 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 iles.=.$this->parseAutoloadsType
83f60 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 66 69 6c 65 73 27 2c 20 24 6d 61 ($sortedPackageMap,.'files',.$ma
83f80 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 73 6f 72 74 28 24 70 73 72 30 29 3b 0a 0a 72 65 74 inPackage);..krsort($psr0);..ret
83fa0 75 72 6e 20 61 72 72 61 79 28 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 27 63 6c 61 urn.array('psr-0'.=>.$psr0,.'cla
83fc0 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 70 2c 20 27 66 69 6c 65 73 27 20 3d 3e 20 ssmap'.=>.$classmap,.'files'.=>.
83fe0 24 66 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $files);.}........public.functio
84000 6e 20 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 n.createLoader(array.$autoloads)
84020 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a .{.$loader.=.new.ClassLoader();.
84040 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 .if.(isset($autoloads['psr-0']))
84060 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 .{.foreach.($autoloads['psr-0'].
84080 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 as.$namespace.=>.$path).{.$loade
840a0 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a r->add($namespace,.$path);.}.}..
840c0 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e return.$loader;.}..protected.fun
840e0 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 ction.getIncludePathsFile(array.
84100 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 $packageMap,.Filesystem.$filesys
84120 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 tem,.$basePath,.$vendorPath,.$ve
84140 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 0a 7b ndorPathCode,.$appBaseDirCode).{
84160 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 .$includePaths.=.array();..forea
84180 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 ch.($packageMap.as.$item).{.list
841a0 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d ($package,.$installPath).=.$item
841c0 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 ;..if.(null.!==.$package->getTar
841e0 67 65 74 44 69 72 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 getDir().&&.strlen($package->get
84200 54 61 72 67 65 74 44 69 72 28 29 29 20 3e 20 30 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 TargetDir()).>.0).{.$installPath
84220 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c .=.substr($installPath,.0,.-strl
84240 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 en('/'.$package->getTargetDir())
84260 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c );.}..foreach.($package->getIncl
84280 75 64 65 50 61 74 68 73 28 29 20 61 73 20 24 69 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 69 udePaths().as.$includePath).{.$i
842a0 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 69 6d 28 24 69 6e 63 6c 75 64 65 50 61 74 68 2c 20 ncludePath.=.trim($includePath,.
842c0 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 '/');.$includePaths[].=.empty($i
842e0 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3a 20 24 69 6e nstallPath).?.$includePath.:.$in
84300 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 7d 0a stallPath.'/'.$includePath;.}.}.
84320 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d .if.(!$includePaths).{.return;.}
84340 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 ..$includePathsCode.=.'';.foreac
84360 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 69 6e h.($includePaths.as.$path).{.$in
84380 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 2e 3d 20 22 20 20 20 20 22 20 2e 20 24 74 68 69 73 cludePathsCode..=."...."...$this
843a0 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 ->getPathCode($filesystem,.$base
843c0 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 20 2e 20 22 2c 5c 6e Path,.$vendorPath,.$path)...",\n
843e0 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 69 6e ";.}..return.<<<EOF.<?php..//.in
84400 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f clude_paths.php.@generated.by.Co
84420 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 mposer..\$vendorDir.=.$vendorPat
84440 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f hCode;.\$baseDir.=.$appBaseDirCo
84460 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 de;..return.array(.$includePaths
84480 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 Code);..EOF;.}..protected.functi
844a0 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 28 61 72 72 61 79 20 24 66 69 on.getIncludeFilesFile(array.$fi
844c0 6c 65 73 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 les,.Filesystem.$filesystem,.$ba
844e0 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 sePath,.$vendorPath,.$vendorPath
84500 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 0a 7b 0a 24 66 69 6c 65 73 43 Code,.$appBaseDirCode).{.$filesC
84520 6f 64 65 20 3d 20 27 27 3b 0a 24 66 69 6c 65 73 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 ode.=.'';.$files.=.new.\Recursiv
84540 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 eIteratorIterator(new.\Recursive
84560 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 29 3b 0a 66 6f 72 65 61 63 68 20 ArrayIterator($files));.foreach.
84580 28 24 66 69 6c 65 73 20 61 73 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 66 69 6c ($files.as.$functionFile).{.$fil
845a0 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 esCode..=.'....'.$this->getPathC
845c0 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e ode($filesystem,.$basePath,.$ven
845e0 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2e 22 2c 5c 6e 22 3b 0a 7d dorPath,.$functionFile).",\n";.}
84600 0a 0a 69 66 20 28 21 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 72 65 74 75 72 6e 20 46 41 4c 53 ..if.(!$filesCode).{.return.FALS
84620 45 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 E;.}..return.<<<EOF.<?php..//.au
84640 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 toload_files.php.@generated.by.C
84660 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 omposer..\$vendorDir.=.$vendorPa
84680 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 thCode;.\$baseDir.=.$appBaseDirC
846a0 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 66 69 6c 65 73 43 6f 64 65 29 3b ode;..return.array(.$filesCode);
846c0 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 .EOF;.}..protected.function.getP
846e0 61 74 68 43 6f 64 65 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 athCode(Filesystem.$filesystem,.
84700 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 0a 7b $basePath,.$vendorPath,.$path).{
84720 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 .if.(!$filesystem->isAbsolutePat
84740 68 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 62 61 73 65 50 61 74 68 20 2e 20 h($path)).{.$path.=.$basePath...
84760 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 24 70 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 '/'...$path;.}.$path.=.$filesyst
84780 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 0a 24 62 61 73 65 em->normalizePath($path);..$base
847a0 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2e 27 2f 27 2c 20 Dir.=.'';.if.(strpos($path.'/',.
847c0 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 70 61 74 68 20 $vendorPath.'/').===.0).{.$path.
847e0 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 76 65 6e 64 6f 72 50 61 =.substr($path,.strlen($vendorPa
84800 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e 64 6f 72 44 69 72 27 3b 0a 0a th));.$baseDir.=.'$vendorDir';..
84820 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 62 61 73 65 44 69 72 20 if.($path.!==.false).{.$baseDir.
84840 2e 3d 20 22 20 2e 20 22 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 66 69 .=."...";.}.}.else.{.$path.=.$fi
84860 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 73 lesystem->normalizePath($filesys
84880 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 62 61 73 65 50 61 74 68 2c tem->findShortestPath($basePath,
848a0 20 24 70 61 74 68 2c 20 74 72 75 65 29 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d .$path,.true));.if.(!$filesystem
848c0 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 62 61 73 65 ->isAbsolutePath($path)).{.$base
848e0 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 3b 0a 24 70 61 74 68 20 3d 20 27 2f 27 Dir.=.'$baseDir...';.$path.=.'/'
84900 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f ...$path;.}.}..if.(preg_match('/
84920 5c 2e 70 68 61 72 24 2f 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 61 73 65 44 69 72 20 3d 20 \.phar$/',.$path)).{.$baseDir.=.
84940 22 27 70 68 61 72 3a 2f 2f 27 20 2e 20 22 20 2e 20 24 62 61 73 65 44 69 72 3b 0a 7d 0a 0a 72 65 "'phar://'..."...$baseDir;.}..re
84960 74 75 72 6e 20 24 62 61 73 65 44 69 72 20 2e 20 28 28 24 70 61 74 68 20 21 3d 3d 20 66 61 6c 73 turn.$baseDir...(($path.!==.fals
84980 65 29 20 3f 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 20 3a 20 22 e).?.var_export($path,.true).:."
849a0 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 ");.}..protected.function.getAut
849c0 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 oloadFile($vendorPathToTargetDir
849e0 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 41 55 54 4f 4c Code,.$suffix).{.return.<<<AUTOL
84a00 4f 41 44 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 2e 70 68 70 20 40 67 65 6e 65 OAD.<?php..//.autoload.php.@gene
84a20 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 rated.by.Composer..require_once.
84a40 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 61 $vendorPathToTargetDirCode...'/a
84a60 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f utoload_real.php';..return.Compo
84a80 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 3a 3a 67 65 74 4c 6f 61 serAutoloaderInit$suffix::getLoa
84aa0 64 65 72 28 29 3b 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 der();..AUTOLOAD;.}..protected.f
84ac0 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 24 75 73 65 unction.getAutoloadRealFile($use
84ae0 50 53 52 30 2c 20 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 PSR0,.$useClassMap,.$useIncludeP
84b00 61 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 75 73 65 49 6e 63 6c 75 ath,.$targetDirLoader,.$useInclu
84b20 64 65 46 69 6c 65 73 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 deFiles,.$vendorPathCode,.$appBa
84b40 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e seDirCode,.$suffix,.$useGlobalIn
84b60 63 6c 75 64 65 50 61 74 68 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 66 69 6c 65 20 3d cludePath).{.............$file.=
84b80 20 3c 3c 3c 48 45 41 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 72 65 .<<<HEADER.<?php..//.autoload_re
84ba0 61 6c 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 63 al.php.@generated.by.Composer..c
84bc0 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 lass.ComposerAutoloaderInit$suff
84be0 69 78 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 5c 24 6c 6f 61 64 65 72 ix.{.....private.static.\$loader
84c00 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f ;......public.static.function.lo
84c20 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 adClassLoader(\$class).....{....
84c40 20 20 20 20 20 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c .....if.('Composer\\Autoload\\Cl
84c60 61 73 73 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 5c 24 63 6c 61 73 73 29 20 7b 0a 20 20 20 20 20 20 assLoader'.===.\$class).{.......
84c80 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c ......require.__DIR__...'/ClassL
84ca0 6f 61 64 65 72 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 oader.php';.........}.....}.....
84cc0 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 .public.static.function.getLoade
84ce0 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 r().....{.........if.(null.!==.s
84d00 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 elf::\$loader).{.............ret
84d20 75 72 6e 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 urn.self::\$loader;.........}...
84d40 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 .......spl_autoload_register(arr
84d60 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 ay('ComposerAutoloaderInit$suffi
84d80 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 x',.'loadClassLoader'),.true,.tr
84da0 75 65 29 3b 0a 20 20 20 20 20 20 20 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 20 3d 20 5c 24 ue);.........self::\$loader.=.\$
84dc0 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 5c 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 loader.=.new.\\Composer\\Autoloa
84de0 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 d\\ClassLoader();.........spl_au
84e00 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 toload_unregister(array('Compose
84e20 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c rAutoloaderInit$suffix',.'loadCl
84e40 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 5c 24 76 65 6e 64 6f 72 44 assLoader'));..........\$vendorD
84e60 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 5c 24 ir.=.$vendorPathCode;.........\$
84e80 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 0a 48 45 41 baseDir.=.$appBaseDirCode;...HEA
84ea0 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 DER;..if.($useIncludePath).{.$fi
84ec0 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 le..=.<<<'INCLUDE_PATH'.........
84ee0 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 $includePaths.=.require.__DIR__.
84f00 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 ..'/include_paths.php';.........
84f20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 67 65 74 5f 69 6e array_push($includePaths,.get_in
84f40 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 20 20 20 20 20 20 73 65 74 5f 69 6e 63 6c 75 clude_path());.........set_inclu
84f60 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 69 6e de_path(join(PATH_SEPARATOR,.$in
84f80 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 0a 49 4e 43 4c 55 44 45 5f 50 41 54 48 3b 0a 7d 0a cludePaths));...INCLUDE_PATH;.}.
84fa0 0a 69 66 20 28 24 75 73 65 50 53 52 30 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 .if.($usePSR0).{.$file..=.<<<'PS
84fc0 52 30 27 0a 20 20 20 20 20 20 20 20 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 R0'.........$map.=.require.__DIR
84fe0 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b __...'/autoload_namespaces.php';
85000 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 .........foreach.($map.as.$names
85020 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f pace.=>.$path).{.............$lo
85040 61 64 65 72 2d 3e 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 ader->set($namespace,.$path);...
85060 20 20 20 20 20 20 7d 0a 0a 0a 50 53 52 30 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 ......}...PSR0;.}..if.($useClass
85080 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 Map).{.$file..=.<<<'CLASSMAP'...
850a0 20 20 20 20 20 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f ......$classMap.=.require.__DIR_
850c0 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 _...'/autoload_classmap.php';...
850e0 20 20 20 20 20 20 69 66 20 28 24 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ......if.($classMap).{..........
85100 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 ...$loader->addClassMap($classMa
85120 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 p);.........}...CLASSMAP;.}..if.
85140 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 ($useGlobalIncludePath).{.$file.
85160 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 .=.<<<'INCLUDEPATH'.........$loa
85180 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 0a 49 der->setUseIncludePath(true);..I
851a0 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 4c 6f 61 NCLUDEPATH;.}..if.($targetDirLoa
851c0 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 41 55 54 4f der).{.$file..=.<<<REGISTER_AUTO
851e0 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 LOAD.........spl_autoload_regist
85200 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 er(array('ComposerAutoloaderInit
85220 24 73 75 66 66 69 78 27 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 2c 20 74 72 75 65 2c 20 74 72 75 $suffix',.'autoload'),.true,.tru
85240 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 44 3b 0a 0a 7d 0a 0a 24 66 69 e);...REGISTER_AUTOLOAD;..}..$fi
85260 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 4c 4f 41 44 45 52 0a 20 20 20 20 20 20 20 le..=.<<<REGISTER_LOADER........
85280 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 74 72 75 65 29 3b 0a 0a 0a 52 45 47 .\$loader->register(true);...REG
852a0 49 53 54 45 52 5f 4c 4f 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 46 69 ISTER_LOADER;..if.($useIncludeFi
852c0 6c 65 73 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 46 49 4c 45 les).{.$file..=.<<<'INCLUDE_FILE
852e0 53 27 0a 20 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 3d 20 72 65 71 75 69 S'.........$includeFiles.=.requi
85300 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 re.__DIR__...'/autoload_files.ph
85320 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 46 69 6c p';.........foreach.($includeFil
85340 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 es.as.$file).{.............requi
85360 72 65 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 49 4e 43 4c 55 44 45 5f 46 49 re.$file;.........}...INCLUDE_FI
85380 4c 45 53 3b 0a 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 4d 45 54 48 4f 44 5f 46 4f 4f 54 LES;..}..$file..=.<<<METHOD_FOOT
853a0 45 52 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 ER.........return.\$loader;.....
853c0 7d 0a 0a 4d 45 54 48 4f 44 5f 46 4f 4f 54 45 52 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 }..METHOD_FOOTER;..$file..=.$tar
853e0 67 65 74 44 69 72 4c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c getDirLoader;..return.$file...<<
85400 3c 46 4f 4f 54 45 52 0a 7d 0a 0a 46 4f 4f 54 45 52 3b 0a 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 <FOOTER.}..FOOTER;..}..protected
85420 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 .function.parseAutoloadsType(arr
85440 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 74 79 70 65 2c 20 50 61 63 6b 61 67 65 49 6e ay.$packageMap,.$type,.PackageIn
85460 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 terface.$mainPackage).{.$autoloa
85480 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ds.=.array();..foreach.($package
854a0 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 Map.as.$item).{.list($package,.$
854c0 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 installPath).=.$item;..$autoload
854e0 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 20 69 .=.$package->getAutoload();....i
85500 66 20 28 21 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 f.(!isset($autoload[$type]).||.!
85520 69 73 5f 61 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f is_array($autoload[$type])).{.co
85540 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d ntinue;.}.if.(null.!==.$package-
85560 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 >getTargetDir().&&.$package.!==.
85580 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 $mainPackage).{.$installPath.=.s
855a0 75 62 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 ubstr($installPath,.0,.-strlen('
855c0 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d /'.$package->getTargetDir()));.}
855e0 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 ..foreach.($autoload[$type].as.$
85600 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 namespace.=>.$paths).{.foreach.(
85620 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 0a 20 69 66 20 (array).$paths.as.$path).{...if.
85640 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d ($type.===.'files'.&&.$package.=
85660 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ==.$mainPackage.&&.$package->get
85680 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 TargetDir().&&.!is_readable($ins
856a0 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 74 61 72 67 65 74 44 69 tallPath.'/'.$path)).{.$targetDi
856c0 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 r.=.str_replace('\\<dirsep\\>',.
856e0 27 5b 5c 5c 5c 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 '[\\\\/]',.preg_quote(str_replac
85700 65 28 61 72 72 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 e(array('/',.'\\'),.'<dirsep>',.
85720 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 $package->getTargetDir())));.$pa
85740 74 68 20 3d 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 th.=.ltrim(preg_replace('{^'.$ta
85760 72 67 65 74 44 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c rgetDir.'}',.'',.ltrim($path,.'\
85780 5c 2f 27 29 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d \/')),.'\\/');.}....if.($type.==
857a0 3d 20 27 66 69 6c 65 73 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 6e 50 =.'files'.&&.$package.!==.$mainP
857c0 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 ackage.&&.$package->getTargetDir
857e0 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e ().&&.!is_readable($installPath.
85800 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e '/'.$path)).{.$path.=.$package->
85820 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a getTargetDir()...'/'...$path;.}.
85840 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 ...if.($type.===.'classmap'.&&.$
85860 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 package.===.$mainPackage.&&.$pac
85880 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 kage->getTargetDir().&&.!is_read
858a0 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a able($installPath.'/'.$path)).{.
858c0 24 74 61 72 67 65 74 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 $targetDir.=.str_replace('\\<dir
858e0 73 65 70 5c 5c 3e 27 2c 20 27 5b 5c 5c 5c 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 sep\\>',.'[\\\\/]',.preg_quote(s
85900 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 tr_replace(array('/',.'\\'),.'<d
85920 69 72 73 65 70 3e 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 irsep>',.$package->getTargetDir(
85940 29 29 29 29 3b 0a 24 70 61 74 68 20 3d 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 ))));.$path.=.ltrim(preg_replace
85960 28 27 7b 5e 27 2e 24 74 61 72 67 65 74 44 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 ('{^'.$targetDir.'}',.'',.ltrim(
85980 24 70 61 74 68 2c 20 27 5c 5c 2f 27 29 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 $path,.'\\/')),.'\\/');.}....if.
859a0 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 70 61 63 6b 61 67 ($type.===.'classmap'.&&.$packag
859c0 65 20 21 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e e.!==.$mainPackage.&&.$package->
859e0 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 getTargetDir().&&.!is_readable($
85a00 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 installPath.'/'.$path)).{.$path.
85a20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 =.$package->getTargetDir()...'/'
85a40 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 ...$path;.}..if.(empty($installP
85a60 61 74 68 29 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d ath)).{.$autoloads[$namespace][]
85a80 20 3d 20 65 6d 70 74 79 28 24 70 61 74 68 29 20 3f 20 27 2e 27 20 3a 20 24 70 61 74 68 3b 0a 7d .=.empty($path).?.'.'.:.$path;.}
85aa0 20 65 6c 73 65 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d .else.{.$autoloads[$namespace][]
85ac0 20 3d 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 3b 0a 7d 0a 7d 0a 7d .=.$installPath.'/'.$path;.}.}.}
85ae0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 .}..return.$autoloads;.}..protec
85b00 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 61 72 72 61 ted.function.sortPackageMap(arra
85b20 79 20 24 70 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 70 6f 73 69 74 69 6f 6e 73 20 3d 20 61 72 y.$packageMap).{.$positions.=.ar
85b40 72 61 79 28 29 3b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 64 65 78 65 ray();.$names.=.array();.$indexe
85b60 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d s.=.array();..foreach.($packageM
85b80 61 70 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 69 74 65 6d 29 20 7b 0a 24 6d 61 69 ap.as.$position.=>.$item).{.$mai
85ba0 6e 4e 61 6d 65 20 3d 20 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 6e 61 nName.=.$item[0]->getName();.$na
85bc0 6d 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 5f 66 69 6c 6c 5f 6b 65 79 mes.=.array_merge(array_fill_key
85be0 73 28 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 73 28 29 2c 20 24 6d 61 69 6e 4e 61 6d s($item[0]->getNames(),.$mainNam
85c00 65 29 2c 20 24 6e 61 6d 65 73 29 3b 0a 24 6e 61 6d 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d e),.$names);.$names[$mainName].=
85c20 20 24 6d 61 69 6e 4e 61 6d 65 3b 0a 24 69 6e 64 65 78 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 .$mainName;.$indexes[$mainName].
85c40 3d 20 24 70 6f 73 69 74 69 6f 6e 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 70 6f 73 69 74 =.$positions[$mainName].=.$posit
85c60 69 6f 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 ion;.}..foreach.($packageMap.as.
85c80 24 69 74 65 6d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 24 70 6f 73 69 74 69 6f 6e 73 5b $item).{.$position.=.$positions[
85ca0 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 66 6f 72 65 61 63 68 20 28 61 $item[0]->getName()];.foreach.(a
85cc0 72 72 61 79 5f 6d 65 72 67 65 28 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 52 65 71 75 69 72 65 73 rray_merge($item[0]->getRequires
85ce0 28 29 2c 20 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 (),.$item[0]->getDevRequires()).
85d00 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 as.$link).{.$target.=.$link->get
85d20 54 61 72 67 65 74 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 74 61 72 Target();.if.(!isset($names[$tar
85d40 67 65 74 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 get])).{.continue;.}..$target.=.
85d60 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 3b 0a 69 66 20 28 24 70 6f 73 69 74 69 6f 6e 73 5b $names[$target];.if.($positions[
85d80 24 74 61 72 67 65 74 5d 20 3c 3d 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 63 6f 6e 74 69 6e 75 $target].<=.$position).{.continu
85da0 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 69 74 69 6f 6e 73 20 61 73 20 24 6b 65 e;.}..foreach.($positions.as.$ke
85dc0 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3e 3d 20 24 70 6f y.=>.$value).{.if.($value.>=.$po
85de0 73 69 74 69 6f 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 70 6f 73 69 74 69 6f 6e 73 5b 24 6b sition).{.break;.}.$positions[$k
85e00 65 79 5d 2d 2d 3b 0a 7d 0a 0a 24 70 6f 73 69 74 69 6f 6e 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 ey]--;.}..$positions[$target].=.
85e20 24 70 6f 73 69 74 69 6f 6e 20 2d 20 31 3b 0a 7d 0a 61 73 6f 72 74 28 24 70 6f 73 69 74 69 6f 6e $position.-.1;.}.asort($position
85e40 73 29 3b 0a 7d 0a 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 s);.}..$sortedPackageMap.=.array
85e60 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 70 6f 73 69 74 69 6f ();.foreach.(array_keys($positio
85e80 6e 73 29 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 73 6f 72 74 65 64 50 61 ns).as.$packageName).{.$sortedPa
85ea0 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 4d 61 70 5b 24 69 6e 64 65 78 65 ckageMap[].=.$packageMap[$indexe
85ec0 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 6f 72 s[$packageName]];.}..return.$sor
85ee0 74 65 64 50 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a tedPackageMap;.}.}.<?php........
85f00 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 .....namespace.Composer\Autoload
85f20 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 ;.use.Symfony\Component\Finder\F
85f40 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 inder;.......class.ClassMapGener
85f60 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 ator.{.......public.static.funct
85f80 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d ion.dump($dirs,.$file).{.$maps.=
85fa0 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 .array();..foreach.($dirs.as.$di
85fc0 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 r).{.$maps.=.array_merge($maps,.
85fe0 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c static::createMap($dir));.}..fil
86000 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c e_put_contents($file,.sprintf('<
86020 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 ?php.return.%s;',.var_export($ma
86040 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ps,.true)));.}............public
86060 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 70 61 74 68 .static.function.createMap($path
86080 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 ,.$whitelist.=.null).{.if.(is_st
860a0 72 69 6e 67 28 24 70 61 74 68 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 ring($path)).{.if.(is_file($path
860c0 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 )).{.$path.=.array(new.\SplFileI
860e0 6e 66 6f 28 24 70 61 74 68 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 nfo($path));.}.elseif.(is_dir($p
86100 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 ath)).{.$path.=.Finder::create()
86120 2d 3e 66 69 6c 65 73 28 29 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 2d 3e 6e 61 6d 65 28 27 ->files()->followLinks()->name('
86140 2f 5c 2e 28 70 68 70 7c 69 6e 63 29 24 2f 27 29 2d 3e 69 6e 28 24 70 61 74 68 29 3b 0a 7d 20 65 /\.(php|inc)$/')->in($path);.}.e
86160 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f lse.{.throw.new.\RuntimeExceptio
86180 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 n(.'Could.not.scan.for.classes.i
861a0 6e 73 69 64 65 20 22 27 2e 24 70 61 74 68 2e 0a 27 22 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f nside."'.$path..'".which.does.no
861c0 74 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 66 69 6c 65 20 6e 6f 72 20 61 20 66 6f 6c 64 t.appear.to.be.a.file.nor.a.fold
861e0 65 72 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 er'.);.}.}..$map.=.array();..for
86200 65 61 63 68 20 28 24 70 61 74 68 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 50 61 74 each.($path.as.$file).{.$filePat
86220 68 20 3d 20 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 h.=.$file->getRealPath();..if.(!
86240 69 6e 5f 61 72 72 61 79 28 70 61 74 68 69 6e 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 in_array(pathinfo($filePath,.PAT
86260 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 HINFO_EXTENSION),.array('php',.'
86280 69 6e 63 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 68 69 74 inc'))).{.continue;.}..if.($whit
862a0 65 6c 69 73 74 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 2c elist.&&.!preg_match($whitelist,
862c0 20 73 74 72 74 72 28 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b .strtr($filePath,.'\\',.'/'))).{
862e0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 .continue;.}..$classes.=.self::f
86300 69 6e 64 43 6c 61 73 73 65 73 28 24 66 69 6c 65 50 61 74 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 indClasses($filePath);..foreach.
86320 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 24 6d 61 70 5b 24 63 6c 61 ($classes.as.$class).{.$map[$cla
86340 73 73 5d 20 3d 20 24 66 69 6c 65 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 ss].=.$filePath;.}.}..return.$ma
86360 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 p;.}.........private.static.func
86380 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 74 72 61 69 74 tion.findClasses($path).{.$trait
863a0 73 20 3d 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c s.=.version_compare(PHP_VERSION,
863c0 20 27 35 2e 34 27 2c 20 27 3c 27 29 20 3f 20 27 27 20 3a 20 27 7c 74 72 61 69 74 27 3b 0a 0a 74 .'5.4',.'<').?.''.:.'|trait';..t
863e0 72 79 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 68 70 5f 73 74 72 69 70 5f 77 68 69 74 65 ry.{.$contents.=.php_strip_white
86400 73 70 61 63 65 28 24 70 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f space($path);.}.catch.(\Exceptio
86420 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 n.$e).{.throw.new.\RuntimeExcept
86440 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 ion('Could.not.scan.for.classes.
86460 69 6e 73 69 64 65 20 27 2e 24 70 61 74 68 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 inside.'.$path.":.\n".$e->getMes
86480 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d sage(),.0,.$e);.}....if.(!preg_m
864a0 61 74 63 68 28 27 7b 5c 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 74 72 atch('{\b(?:class|interface'.$tr
864c0 61 69 74 73 2e 27 29 5c 73 7d 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 aits.')\s}i',.$contents)).{.retu
864e0 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 rn.array();.}....$contents.=.pre
86500 67 5f 72 65 70 6c 61 63 65 28 27 7b 3c 3c 3c 5c 27 3f 28 5c 77 2b 29 5c 27 3f 28 3f 3a 5c 72 5c g_replace('{<<<\'?(\w+)\'?(?:\r\
86520 6e 7c 5c 6e 7c 5c 72 29 28 3f 3a 2e 2a 3f 29 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 5c 5c 31 n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\\1
86540 28 3f 3d 5c 72 5c 6e 7c 5c 6e 7c 5c 72 7c 3b 29 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f (?=\r\n|\n|\r|;)}s',.'null',.$co
86560 6e 74 65 6e 74 73 29 3b 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c ntents);...$contents.=.preg_repl
86580 61 63 65 28 27 7b 22 5b 5e 22 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 ace('{"[^"\\\\]*(\\\\.[^"\\\\]*)
865a0 2a 22 7c 5c 27 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 *"|\'[^\'\\\\]*(\\\\.[^\'\\\\]*)
865c0 2a 5c 27 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 69 66 *\'}s',.'null',.$contents);...if
865e0 20 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 32 29 20 21 3d 3d 20 27 3c .(substr($contents,.0,.2).!==.'<
86600 3f 27 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ?').{.$contents.=.preg_replace('
86620 7b 5e 2e 2b 3f 3c 5c 3f 7d 73 27 2c 20 27 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d {^.+?<\?}s',.'<?',.$contents);.}
86640 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 3f ...$contents.=.preg_replace('{\?
86660 3e 2e 2b 3c 5c 3f 7d 73 27 2c 20 27 3f 3e 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a >.+<\?}s',.'?><?',.$contents);..
86680 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 27 3f 3e 27 29 .$pos.=.strrpos($contents,.'?>')
866a0 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 26 26 20 66 61 6c 73 65 20 3d 3d ;.if.(false.!==.$pos.&&.false.==
866c0 3d 20 73 74 72 70 6f 73 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 70 6f 73 29 =.strpos(substr($contents,.$pos)
866e0 2c 20 27 3c 3f 27 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 73 75 62 73 74 72 28 24 63 ,.'<?')).{.$contents.=.substr($c
86700 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 ontents,.0,.$pos);.}..preg_match
86720 5f 61 6c 6c 28 27 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3a 0a 20 20 20 20 20 20 20 20 _all('{.............(?:.........
86740 20 20 20 20 20 20 20 20 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 74 79 70 65 3e 63 .........\b(?<![\$:>])(?P<type>c
86760 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 74 72 61 69 74 73 2e 27 29 20 5c 73 2b 20 28 lass|interface'.$traits.').\s+.(
86780 3f 50 3c 6e 61 6d 65 3e 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d ?P<name>[a-zA-Z_\x7f-\xff][a-zA-
867a0 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Z0-9_\x7f-\xff]*)...............
867c0 20 7c 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 6e 73 3e 6e 61 6d 65 73 70 61 63 65 .|.\b(?<![\$:>])(?P<ns>namespace
867e0 29 20 28 3f 50 3c 6e 73 6e 61 6d 65 3e 5c 73 2b 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 ).(?P<nsname>\s+[a-zA-Z_\x7f-\xf
86800 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 28 3f 3a 5c 73 2a 5c 5c f][a-zA-Z0-9_\x7f-\xff]*(?:\s*\\
86820 5c 5c 5c 73 2a 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d \\\s*[a-zA-Z_\x7f-\xff][a-zA-Z0-
86840 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 2a 29 3f 20 5c 73 2a 5b 5c 7b 3b 5d 0a 20 20 20 20 20 9_\x7f-\xff]*)*)?.\s*[\{;]......
86860 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7d 69 78 27 2c 20 24 63 6f 6e 74 65 6e 74 73 .......).........}ix',.$contents
86880 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 ,.$matches);..$classes.=.array()
868a0 3b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c ;.$namespace.=.'';..for.($i.=.0,
868c0 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 5b 27 74 79 70 65 27 5d 29 3b .$len.=.count($matches['type']);
868e0 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 .$i.<.$len;.$i++).{.if.(!empty($
86900 6d 61 74 63 68 65 73 5b 27 6e 73 27 5d 5b 24 69 5d 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 matches['ns'][$i])).{.$namespace
86920 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 20 27 2c 20 22 5c 74 22 2c 20 .=.str_replace(array('.',."\t",.
86940 22 5c 72 22 2c 20 22 5c 6e 22 29 2c 20 27 27 2c 20 24 6d 61 74 63 68 65 73 5b 27 6e 73 6e 61 6d "\r",."\n"),.'',.$matches['nsnam
86960 65 27 5d 5b 24 69 5d 29 20 2e 20 27 5c 5c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6c 61 73 73 e'][$i])...'\\';.}.else.{.$class
86980 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 6d 61 74 63 68 es[].=.ltrim($namespace...$match
869a0 65 73 5b 27 6e 61 6d 65 27 5d 5b 24 69 5d 2c 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 es['name'][$i],.'\\');.}.}..retu
869c0 72 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$classes;.}.}.<?php..........
869e0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ..namespace.Composer;..use.Compo
86a00 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a ser\Autoload\AutoloadGenerator;.
86a20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c use.Composer\DependencyResolver\
86a40 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 DefaultPolicy;.use.Composer\Depe
86a60 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f ndencyResolver\Operation\UpdateO
86a80 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 peration;.use.Composer\Dependenc
86aa0 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 yResolver\Operation\InstallOpera
86ac0 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 tion;.use.Composer\DependencyRes
86ae0 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 olver\Operation\UninstallOperati
86b00 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c on;.use.Composer\DependencyResol
86b20 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 ver\Operation\OperationInterface
86b40 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ;.use.Composer\DependencyResolve
86b60 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 r\Pool;.use.Composer\DependencyR
86b80 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 esolver\Request;.use.Composer\De
86ba0 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 75 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f pendencyResolver\Rule;.use.Compo
86bc0 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 3b 0a 75 ser\DependencyResolver\Solver;.u
86be0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 se.Composer\DependencyResolver\S
86c00 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 olverProblemsException;.use.Comp
86c20 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b oser\Downloader\DownloadManager;
86c40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 .use.Composer\EventDispatcher\Ev
86c60 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 entDispatcher;.use.Composer\Inst
86c80 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 aller\InstallationManager;.use.C
86ca0 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 omposer\Config;.use.Composer\Ins
86cc0 74 61 6c 6c 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 taller\NoopInstaller;.use.Compos
86ce0 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
86d00 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b Json\JsonFile;.use.Composer\Pack
86d20 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 age\AliasPackage;.use.Composer\P
86d40 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 ackage\Link;.use.Composer\Packag
86d60 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 e\LinkConstraint\VersionConstrai
86d80 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b nt;.use.Composer\Package\Locker;
86da0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
86dc0 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f erface;.use.Composer\Package\Roo
86de0 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c tPackageInterface;.use.Composer\
86e00 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a Repository\CompositeRepository;.
86e20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 use.Composer\Repository\Installe
86e40 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 dArrayRepository;.use.Composer\R
86e60 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 epository\InstalledFilesystemRep
86e80 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ository;.use.Composer\Repository
86ea0 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \PlatformRepository;.use.Compose
86ec0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 r\Repository\RepositoryInterface
86ee0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
86f00 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 toryManager;.use.Composer\Script
86f20 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 \ScriptEvents;........class.Inst
86f40 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 aller.{....protected.$io;.....pr
86f60 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$config;.....protected.$
86f80 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 package;.....protected.$download
86fa0 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f Manager;.....protected.$reposito
86fc0 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 ryManager;.....protected.$locker
86fe0 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e ;.....protected.$installationMan
87000 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 ager;.....protected.$eventDispat
87020 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e cher;.....protected.$autoloadGen
87040 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 erator;..protected.$preferSource
87060 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 44 69 73 74 20 .=.false;.protected.$preferDist.
87080 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f =.false;.protected.$optimizeAuto
870a0 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 4d 6f loader.=.false;.protected.$devMo
870c0 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 72 79 52 75 6e 20 3d 20 de.=.false;.protected.$dryRun.=.
870e0 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 false;.protected.$verbose.=.fals
87100 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 e;.protected.$update.=.false;.pr
87120 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 otected.$runScripts.=.true;.prot
87140 65 63 74 65 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 0a ected.$updateWhitelist.=.null;..
87160 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 3b ...protected.$suggestedPackages;
87180 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c .....protected.$additionalInstal
871a0 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ledRepository;...............pub
871c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 lic.function.__construct(IOInter
871e0 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 6f 6f 74 50 61 face.$io,.Config.$config,.RootPa
87200 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 ckageInterface.$package,.Downloa
87220 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 dManager.$downloadManager,.Repos
87240 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c itoryManager.$repositoryManager,
87260 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e .Locker.$locker,.InstallationMan
87280 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 ager.$installationManager,.Event
872a0 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 41 75 74 Dispatcher.$eventDispatcher,.Aut
872c0 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f oloadGenerator.$autoloadGenerato
872e0 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e r).{.$this->io.=.$io;.$this->con
87300 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 fig.=.$config;.$this->package.=.
87320 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 $package;.$this->downloadManager
87340 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f .=.$downloadManager;.$this->repo
87360 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 sitoryManager.=.$repositoryManag
87380 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 24 74 68 er;.$this->locker.=.$locker;.$th
873a0 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 is->installationManager.=.$insta
873c0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 llationManager;.$this->eventDisp
873e0 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 atcher.=.$eventDispatcher;.$this
87400 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 ->autoloadGenerator.=.$autoloadG
87420 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 enerator;.}.....public.function.
87440 72 75 6e 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 run().{.if.($this->dryRun).{.$th
87460 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 is->verbose.=.true;.$this->runSc
87480 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 ripts.=.false;.$this->installati
874a0 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 onManager->addInstaller(new.Noop
874c0 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f Installer);.$this->mockLocalRepo
874e0 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 sitories($this->repositoryManage
87500 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 65 70 6f 20 3d 20 6e 65 77 20 49 6e 73 74 61 6c r);.}......$devRepo.=.new.Instal
87520 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e ledFilesystemRepository(new.Json
87540 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d File($this->config->get('vendor-
87560 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a dir').'/composer/installed_dev.j
87580 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 son'));.if.($devRepo->getPackage
875a0 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e s()).{.$this->io->write('<warnin
875c0 67 3e 42 43 20 4e 6f 74 69 63 65 3a 20 52 65 6d 6f 76 69 6e 67 20 6f 6c 64 20 64 65 76 20 70 61 g>BC.Notice:.Removing.old.dev.pa
875e0 63 6b 61 67 65 73 20 74 6f 20 6d 69 67 72 61 74 65 20 74 6f 20 74 68 65 20 6e 65 77 20 72 65 71 ckages.to.migrate.to.the.new.req
87600 75 69 72 65 2d 64 65 76 20 68 61 6e 64 6c 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a uire-dev.handling.</warning>');.
87620 66 6f 72 65 61 63 68 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 foreach.($devRepo->getPackages()
87640 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 .as.$package).{.if.($this->insta
87660 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c llationManager->isPackageInstall
87680 65 64 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d ed($devRepo,.$package)).{.$this-
876a0 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 >installationManager->uninstall(
876c0 24 64 65 76 52 65 70 6f 2c 20 6e 65 77 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e $devRepo,.new.UninstallOperation
876e0 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 63 ($package));.}.}.unlink($this->c
87700 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f onfig->get('vendor-dir').'/compo
87720 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 75 6e 73 65 ser/installed_dev.json');.}.unse
87740 74 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 69 66 20 28 24 74 68 t($devRepo,.$package);...if.($th
87760 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c is->preferSource).{.$this->downl
87780 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 oadManager->setPreferSource(true
877a0 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 20 7b 0a 24 74 );.}.if.($this->preferDist).{.$t
877c0 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 44 his->downloadManager->setPreferD
877e0 69 73 74 28 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 24 69 6e 73 74 61 6c 6c 65 64 52 6f ist(true);.}........$installedRo
87800 6f 74 50 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 otPackage.=.clone.$this->package
87820 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 ;.$installedRootPackage->setRequ
87840 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 ires(array());.$installedRootPac
87860 6b 61 67 65 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 0a kage->setDevRequires(array());..
87880 0a 20 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 ..$localRepo.=.$this->repository
878a0 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 Manager->getLocalRepository();.$
878c0 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 platformRepo.=.new.PlatformRepos
878e0 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 0a 24 6c 6f 63 61 6c 52 itory();.$repos.=.array(.$localR
87900 65 70 6f 2c 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 epo,.new.InstalledArrayRepositor
87920 79 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c y(array($installedRootPackage)),
87940 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 0a 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 .$platformRepo,.);.$installedRep
87960 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 o.=.new.CompositeRepository($rep
87980 6f 73 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c os);.if.($this->additionalInstal
879a0 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d ledRepository).{.$installedRepo-
879c0 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c >addRepository($this->additional
879e0 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 InstalledRepository);.}..$aliase
87a00 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 s.=.$this->getRootAliases();.$th
87a20 69 73 2d 3e 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 is->aliasPlatformPackages($platf
87a40 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ormRepo,.$aliases);..if.($this->
87a60 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 runScripts).{...$eventName.=.$th
87a80 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 is->update.?.ScriptEvents::PRE_U
87aa0 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e PDATE_CMD.:.ScriptEvents::PRE_IN
87ac0 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 STALL_CMD;.$this->eventDispatche
87ae0 72 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 r->dispatchCommandEvent($eventNa
87b00 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 me,.$this->devMode);.}..try.{.$t
87b20 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 his->suggestedPackages.=.array()
87b40 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 ;.if.(!$this->doInstall($localRe
87b60 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 po,.$installedRepo,.$platformRep
87b80 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 29 20 7b 0a o,.$aliases,.$this->devMode)).{.
87ba0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 return.false;.}.}.catch.(\Except
87bc0 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e ion.$e).{.$this->installationMan
87be0 61 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 74 68 72 6f 77 20 24 ager->notifyInstalls();..throw.$
87c00 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d e;.}.$this->installationManager-
87c20 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 >notifyInstalls();....foreach.($
87c40 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 73 75 67 67 this->suggestedPackages.as.$sugg
87c60 65 73 74 69 6f 6e 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 73 75 67 67 65 73 74 69 6f 6e 5b estion).{.$target.=.$suggestion[
87c80 27 74 61 72 67 65 74 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 'target'];.foreach.($installedRe
87ca0 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b po->getPackages().as.$package).{
87cc0 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 61 72 67 65 74 2c 20 24 70 61 63 6b 61 67 65 2d .if.(in_array($target,.$package-
87ce0 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a >getNames())).{.continue.2;.}.}.
87d00 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 .$this->io->write($suggestion['s
87d20 6f 75 72 63 65 27 5d 2e 27 20 73 75 67 67 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e ource'].'.suggests.installing.'.
87d40 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 $suggestion['target'].'.('.$sugg
87d60 65 73 74 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 estion['reason'].')');.}..if.(!$
87d80 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 this->dryRun).{...if.($this->upd
87da0 61 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 ate.||.!$this->locker->isLocked(
87dc0 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 72 65 6c 6f 61 64 28 29 3b 0a 0a 0a 20 0a 20 )).{.$localRepo->reload();......
87de0 24 64 65 76 50 61 63 6b 61 67 65 73 20 3d 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 7c $devPackages.=.($this->devMode.|
87e00 7c 20 21 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 |.!$this->package->getDevRequire
87e20 73 28 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 24 74 s()).?.array().:.null;....if.($t
87e40 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e his->devMode.&&.$this->package->
87e60 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 getDevRequires()).{.$policy.=.$t
87e80 68 69 73 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 his->createPolicy();.$pool.=.$th
87ea0 69 73 2d 3e 63 72 65 61 74 65 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f is->createPool();.$pool->addRepo
87ec0 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 sitory($installedRepo,.$aliases)
87ee0 3b 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 ;....$request.=.$this->createReq
87f00 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 uest($pool,.$this->package,.$pla
87f20 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 tformRepo);.$request->updateAll(
87f40 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 );.foreach.($this->package->getR
87f60 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e equires().as.$link).{.$request->
87f80 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e install($link->getTarget(),.$lin
87fa0 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 0a 24 73 6f 6c 76 65 72 20 k->getConstraint());.}..$solver.
87fc0 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e =.new.Solver($policy,.$pool,.$in
87fe0 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 24 6f 70 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f stalledRepo);.$ops.=.$solver->so
88000 6c 76 65 28 24 72 65 71 75 65 73 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 73 20 61 73 20 lve($request);.foreach.($ops.as.
88020 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 3d 3d 3d $op).{.if.($op->getJobType().===
88040 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 20 7b 0a 24 64 65 76 50 61 63 6b 61 67 65 73 5b 5d 20 3d .'uninstall').{.$devPackages[].=
88060 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 70 6c 61 74 .$op->getPackage();.}.}.}..$plat
88080 66 6f 72 6d 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 74 66 6f 72 formReqs.=.$this->extractPlatfor
880a0 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 mRequirements($this->package->ge
880c0 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 20 3d tRequires());.$platformDevReqs.=
880e0 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 .$this->devMode.?.$this->extract
88100 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 6b PlatformRequirements($this->pack
88120 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3a 20 61 72 72 61 79 28 29 age->getDevRequires()).:.array()
88140 3b 0a 0a 24 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d ;..$updatedLock.=.$this->locker-
88160 3e 73 65 74 4c 6f 63 6b 44 61 74 61 28 0a 61 72 72 61 79 5f 64 69 66 66 28 24 6c 6f 63 61 6c 52 >setLockData(.array_diff($localR
88180 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 2c 20 28 61 72 epo->getCanonicalPackages(),.(ar
881a0 72 61 79 29 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 2c 0a 24 64 65 76 50 61 63 6b 61 67 65 73 ray).$devPackages),.$devPackages
881c0 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 ,.$platformReqs,.$platformDevReq
881e0 73 2c 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 s,.$aliases,.$this->package->get
88200 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 MinimumStability(),.$this->packa
88220 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 29 3b 0a 69 66 20 28 24 ge->getStabilityFlags().);.if.($
88240 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 updatedLock).{.$this->io->write(
88260 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 '<info>Writing.lock.file</info>'
88280 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 );.}.}....$this->io->write('<inf
882a0 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 o>Generating.autoload.files</inf
882c0 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e o>');.$this->autoloadGenerator->
882e0 64 75 6d 70 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 dump($this->config,.$localRepo,.
88300 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 $this->package,.$this->installat
88320 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 74 68 69 73 2d 3e 6f ionManager,.'composer',.$this->o
88340 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ptimizeAutoloader);..if.($this->
88360 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 runScripts).{...$eventName.=.$th
88380 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f is->update.?.ScriptEvents::POST_
883a0 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f UPDATE_CMD.:.ScriptEvents::POST_
883c0 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 INSTALL_CMD;.$this->eventDispatc
883e0 68 65 72 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 her->dispatchCommandEvent($event
88400 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 Name,.$this->devMode);.}.}..retu
88420 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 rn.true;.}..protected.function.d
88440 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 oInstall($localRepo,.$installedR
88460 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 77 epo,.$platformRepo,.$aliases,.$w
88480 69 74 68 44 65 76 52 65 71 73 29 0a 7b 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 ithDevReqs).{...$lockedRepositor
884a0 79 20 3d 20 6e 75 6c 6c 3b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 6e 75 6c 6c 3b 0a y.=.null;.$repositories.=.null;.
884c0 0a 0a 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 ...$installFromLock.=.false;.if.
884e0 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 (!$this->update.&&.$this->locker
88500 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b ->isLocked()).{.$installFromLock
88520 20 3d 20 74 72 75 65 3b 0a 74 72 79 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 .=.true;.try.{.$lockedRepository
88540 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 .=.$this->locker->getLockedRepos
88560 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 itory($withDevReqs);.}.catch.(\R
88580 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 untimeException.$e).{...if.($thi
885a0 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a s->package->getDevRequires()).{.
885c0 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 throw.$e;.}...$lockedRepository.
885e0 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 =.$this->locker->getLockedReposi
88600 74 6f 72 79 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 55 70 64 tory();.}.}..$this->whitelistUpd
88620 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 77 69 ateDependencies(.$localRepo,.$wi
88640 74 68 44 65 76 52 65 71 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 thDevReqs,.$this->package->getRe
88660 71 75 69 72 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 quires(),.$this->package->getDev
88680 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 Requires().);..$this->io->write(
886a0 27 3c 69 6e 66 6f 3e 4c 6f 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f '<info>Loading.composer.reposito
886c0 72 69 65 73 20 77 69 74 68 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 69 ries.with.package.information</i
886e0 6e 66 6f 3e 27 29 3b 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 nfo>');....$policy.=.$this->crea
88700 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 tePolicy();.$pool.=.$this->creat
88720 65 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 69 ePool();.$pool->addRepository($i
88740 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 69 66 20 28 24 69 6e nstalledRepo,.$aliases);.if.($in
88760 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 stallFromLock).{.$pool->addRepos
88780 69 74 6f 72 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 itory($lockedRepository,.$aliase
887a0 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a s);.}..if.(!$installFromLock).{.
887c0 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 $repositories.=.$this->repositor
887e0 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 yManager->getRepositories();.for
88800 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f each.($repositories.as.$reposito
88820 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f ry).{.$pool->addRepository($repo
88840 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 65 sitory,.$aliases);.}.}....$reque
88860 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c st.=.$this->createRequest($pool,
88880 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b .$this->package,.$platformRepo);
888a0 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 0a 20 24 72 65 ..if.(!$installFromLock).{...$re
888c0 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b movedUnstablePackages.=.array();
888e0 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 .foreach.($localRepo->getPackage
88900 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 0a 21 24 70 6f 6f 6c 2d 3e s().as.$package).{.if.(.!$pool->
88920 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 isPackageAcceptable($package->ge
88940 74 4e 61 6d 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 tNames(),.$package->getStability
88960 28 29 29 0a 26 26 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 ()).&&.$this->installationManage
88980 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 6c 6f 63 61 6c 52 65 70 6f r->isPackageInstalled($localRepo
889a0 2c 20 24 70 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 ,.$package).).{.$removedUnstable
889c0 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 Packages[$package->getName()].=.
889e0 74 72 75 65 3b 0a 24 72 65 71 75 65 73 74 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2d true;.$request->remove($package-
88a00 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e >getName(),.new.VersionConstrain
88a20 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 3b t('=',.$package->getVersion()));
88a40 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 .}.}.}..if.($this->update).{.$th
88a60 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 55 70 64 61 74 69 6e 67 20 64 65 is->io->write('<info>Updating.de
88a80 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 3f 27 20 28 69 6e 63 pendencies'.($withDevReqs?'.(inc
88aa0 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a 27 27 29 2e 27 3c 2f 69 6e 66 6f luding.require-dev)':'').'</info
88ac0 3e 27 29 3b 0a 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 29 3b 0a 0a 69 66 >');..$request->updateAll();..if
88ae0 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 .($withDevReqs).{.$links.=.array
88b00 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 _merge($this->package->getRequir
88b20 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 es(),.$this->package->getDevRequ
88b40 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 ires());.}.else.{.$links.=.$this
88b60 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 ->package->getRequires();.}..for
88b80 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 each.($links.as.$link).{.$reques
88ba0 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 t->install($link->getTarget(),.$
88bc0 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 link->getConstraint());.}......i
88be0 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 69 66 20 f.($this->updateWhitelist).{.if.
88c00 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 74 72 ($this->locker->isLocked()).{.tr
88c20 79 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f y.{.$currentPackages.=.$this->lo
88c40 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 cker->getLockedRepository($withD
88c60 65 76 52 65 71 73 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 20 63 61 74 63 68 20 evReqs)->getPackages();.}.catch.
88c80 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 63 75 72 72 (\RuntimeException.$e).{...$curr
88ca0 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 entPackages.=.$this->locker->get
88cc0 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 LockedRepository()->getPackages(
88ce0 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d );.}.}.else.{.$currentPackages.=
88d00 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a .$installedRepo->getPackages();.
88d20 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 }....$candidates.=.array();.fore
88d40 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 63 61 6e 64 69 64 61 ach.($links.as.$link).{.$candida
88d60 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a tes[$link->getTarget()].=.true;.
88d80 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 }.foreach.($localRepo->getPackag
88da0 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b es().as.$package).{.$candidates[
88dc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a $package->getName()].=.true;.}..
88de0 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 ..foreach.($candidates.as.$candi
88e00 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 75 72 72 date.=>.$dummy).{.foreach.($curr
88e20 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 entPackages.as.$curPackage).{.if
88e40 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 63 61 .($curPackage->getName().===.$ca
88e60 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 ndidate).{.if.(!$this->isUpdatea
88e80 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 20 26 26 20 21 69 73 73 65 74 28 24 72 65 6d 6f ble($curPackage).&&.!isset($remo
88ea0 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 63 75 72 50 61 63 6b 61 67 65 2d vedUnstablePackages[$curPackage-
88ec0 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 >getName()])).{.$constraint.=.ne
88ee0 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 63 75 72 50 61 63 w.VersionConstraint('=',.$curPac
88f00 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 kage->getVersion());.$request->i
88f20 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 nstall($curPackage->getName(),.$
88f40 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 constraint);.}.break;.}.}.}.}.}.
88f60 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 elseif.($installFromLock).{.$thi
88f80 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 64 s->io->write('<info>Installing.d
88fa0 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 3f 27 20 28 69 6e ependencies'.($withDevReqs?'.(in
88fc0 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a 27 27 29 2e 27 20 66 72 6f 6d cluding.require-dev)':'').'.from
88fe0 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 .lock.file</info>');..if.(!$this
89000 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ->locker->isFresh()).{.$this->io
89020 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 65 20 6c ->write('<warning>Warning:.The.l
89040 6f 63 6b 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 75 70 20 74 6f 20 64 61 74 65 20 77 69 74 68 20 ock.file.is.not.up.to.date.with.
89060 74 68 65 20 6c 61 74 65 73 74 20 63 68 61 6e 67 65 73 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a the.latest.changes.in.composer.j
89080 73 6f 6e 2e 20 59 6f 75 20 6d 61 79 20 62 65 20 67 65 74 74 69 6e 67 20 6f 75 74 64 61 74 65 64 son..You.may.be.getting.outdated
890a0 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 20 52 75 6e 20 75 70 64 61 74 65 20 74 6f 20 75 70 64 .dependencies..Run.update.to.upd
890c0 61 74 65 20 74 68 65 6d 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 ate.them.</warning>');.}..foreac
890e0 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 h.($lockedRepository->getPackage
89100 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 s().as.$package).{.$version.=.$p
89120 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 ackage->getVersion();.if.(isset(
89140 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 $aliases[$package->getName()][$v
89160 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 65 73 5b ersion])).{.$version.=.$aliases[
89180 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 5b 27 $package->getName()][$version]['
891a0 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e alias_normalized'];.}.$constrain
891c0 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 t.=.new.VersionConstraint('=',.$
891e0 76 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 version);.$constraint->setPretty
89200 53 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f String($package->getPrettyVersio
89220 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 n());.$request->install($package
89240 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f ->getName(),.$constraint);.}..fo
89260 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 6c 61 74 66 6f 72 reach.($this->locker->getPlatfor
89280 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 61 73 20 24 mRequirements($withDevReqs).as.$
892a0 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d link).{.$request->install($link-
892c0 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 >getTarget(),.$link->getConstrai
892e0 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 nt());.}.}.else.{.$this->io->wri
89300 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 te('<info>Installing.dependencie
89320 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 3f 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 s'.($withDevReqs?'.(including.re
89340 71 75 69 72 65 2d 64 65 76 29 27 3a 27 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 quire-dev)':'').'</info>');..if.
89360 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f ($withDevReqs).{.$links.=.array_
89380 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 merge($this->package->getRequire
893a0 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 s(),.$this->package->getDevRequi
893c0 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d res());.}.else.{.$links.=.$this-
893e0 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 >package->getRequires();.}..fore
89400 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 ach.($links.as.$link).{.$request
89420 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c ->install($link->getTarget(),.$l
89440 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 ink->getConstraint());.}.}....$t
89460 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 his->processDevPackages($localRe
89480 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 po,.$pool,.$policy,.$repositorie
894a0 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 s,.$lockedRepository,.$installFr
894c0 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 3b 0a 0a 0a 20 24 73 6f 6c 76 omLock,.'force-links');....$solv
894e0 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 er.=.new.Solver($policy,.$pool,.
89500 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 74 72 79 20 7b 0a 24 6f 70 65 72 61 74 69 6f $installedRepo);.try.{.$operatio
89520 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 29 3b 0a 7d ns.=.$solver->solve($request);.}
89540 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 .catch.(SolverProblemsException.
89560 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 59 $e).{.$this->io->write('<error>Y
89580 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 our.requirements.could.not.be.re
895a0 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c 6c 61 62 6c 65 20 73 65 74 20 6f 66 20 solved.to.an.installable.set.of.
895c0 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e packages.</error>');.$this->io->
895e0 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e write($e->getMessage());..return
89600 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 .false;.}....$operations.=.$this
89620 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c ->processDevPackages($localRepo,
89640 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 .$pool,.$policy,.$repositories,.
89660 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c $lockedRepository,.$installFromL
89680 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 2c 20 24 6f 70 65 72 61 74 69 6f 6e ock,.'force-updates',.$operation
896a0 73 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 24 74 68 69 73 s);....if.(!$operations).{.$this
896c0 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 4e 6f 74 68 69 6e 67 20 74 6f 20 69 6e 73 74 61 6c 6c 20 ->io->write('Nothing.to.install.
896e0 6f 72 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 or.update');.}..$operations.=.$t
89700 68 69 73 2d 3e 6d 6f 76 65 50 6c 75 67 69 6e 73 54 6f 46 72 6f 6e 74 28 24 6f 70 65 72 61 74 69 his->movePluginsToFront($operati
89720 6f 6e 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 ons);..foreach.($operations.as.$
89740 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d operation).{...if.('install'.===
89760 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 66 6f 72 .$operation->getJobType()).{.for
89780 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e each.($operation->getPackage()->
897a0 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 getSuggests().as.$target.=>.$rea
897c0 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 5b son).{.$this->suggestedPackages[
897e0 5d 20 3d 20 61 72 72 61 79 28 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f ].=.array(.'source'.=>.$operatio
89800 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 n->getPackage()->getPrettyName()
89820 2c 0a 27 74 61 72 67 65 74 27 20 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 72 65 61 73 6f 6e 27 20 ,.'target'.=>.$target,.'reason'.
89840 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f =>.$reason,.);.}.}..$event.=.'Co
89860 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f mposer\Script\ScriptEvents::PRE_
89880 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d PACKAGE_'.strtoupper($operation-
898a0 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 >getJobType());.if.(defined($eve
898c0 6e 74 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 nt).&&.$this->runScripts).{.$thi
898e0 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b s->eventDispatcher->dispatchPack
89900 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 ageEvent(constant($event),.$this
89920 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ->devMode,.$operation);.}....if.
89940 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d (!$installFromLock).{.$package.=
89960 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 .null;.if.('update'.===.$operati
89980 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 on->getJobType()).{.$package.=.$
899a0 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d operation->getTargetPackage();.}
899c0 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f .elseif.('install'.===.$operatio
899e0 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f n->getJobType()).{.$package.=.$o
89a00 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 peration->getPackage();.}.if.($p
89a20 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 ackage.&&.$package->isDev()).{.$
89a40 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 references.=.$this->package->get
89a60 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e References();.if.(isset($referen
89a80 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 70 61 ces[$package->getName()])).{.$pa
89aa0 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 ckage->setSourceReference($refer
89ac0 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 24 70 61 ences[$package->getName()]);.$pa
89ae0 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e ckage->setDistReference($referen
89b00 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d ces[$package->getName()]);.}.}.}
89b20 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 26 26 20 66 61 6c 73 65 20 3d ....if.($this->dryRun.&&.false.=
89b40 3d 3d 20 73 74 72 70 6f 73 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 ==.strpos($operation->getJobType
89b60 28 29 2c 20 27 41 6c 69 61 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 (),.'Alias')).{.$this->io->write
89b80 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 69 6f ('..-.'...$operation);.$this->io
89ba0 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f ->write('');.}.elseif.($this->io
89bc0 2d 3e 69 73 44 65 62 75 67 28 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 ->isDebug().&&.false.!==.strpos(
89be0 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 6c 69 61 73 $operation->getJobType(),.'Alias
89c00 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 2d 20 27 20 2e 20 ')).{.$this->io->write('..-.'...
89c20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 $operation);.$this->io->write(''
89c40 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 );.}..$this->installationManager
89c60 2d 3e 65 78 65 63 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e ->execute($localRepo,.$operation
89c80 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 24 74 68 69 );....if.($this->verbose.&&.$thi
89ca0 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 20 26 26 20 69 6e 5f 61 72 72 s->io->isVeryVerbose().&&.in_arr
89cc0 61 79 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 61 72 72 ay($operation->getJobType(),.arr
89ce0 61 79 28 27 69 6e 73 74 61 6c 6c 27 2c 20 27 75 70 64 61 74 65 27 29 29 29 20 7b 0a 24 72 65 61 ay('install',.'update'))).{.$rea
89d00 73 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 69 son.=.$operation->getReason();.i
89d20 66 20 28 24 72 65 61 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 73 77 f.($reason.instanceof.Rule).{.sw
89d40 69 74 63 68 20 28 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 itch.($reason->getReason()).{.ca
89d60 73 65 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 24 74 68 69 73 se.Rule::RULE_JOB_INSTALL:.$this
89d80 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 52 65 71 75 69 72 65 ->io->write('....REASON:.Require
89da0 64 20 62 79 20 72 6f 6f 74 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 71 75 69 72 65 d.by.root:.'.$reason->getRequire
89dc0 64 50 61 63 6b 61 67 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 dPackage());.$this->io->write(''
89de0 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 );.break;.case.Rule::RULE_PACKAG
89e00 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 E_REQUIRES:.$this->io->write('..
89e20 20 20 52 45 41 53 4f 4e 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 53 74 ..REASON:.'.$reason->getPrettySt
89e40 72 69 6e 67 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 62 ring());.$this->io->write('');.b
89e60 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c reak;.}.}.}..$event.=.'Composer\
89e80 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 43 4b 41 47 Script\ScriptEvents::POST_PACKAG
89ea0 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f E_'.strtoupper($operation->getJo
89ec0 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 bType());.if.(defined($event).&&
89ee0 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 .$this->runScripts).{.$this->eve
89f00 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 ntDispatcher->dispatchPackageEve
89f20 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d nt(constant($event),.$this->devM
89f40 6f 64 65 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d ode,.$operation);.}..if.(!$this-
89f60 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 77 72 69 74 65 28 29 3b 0a >dryRun).{.$localRepo->write();.
89f80 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a }.}..return.true;.}.............
89fa0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 50 6c 75 67 69 6e 73 54 ...private.function.movePluginsT
89fc0 6f 46 72 6f 6e 74 28 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 0a 7b 0a 24 69 6e 73 oFront(array.$operations).{.$ins
89fe0 74 61 6c 6c 65 72 4f 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f tallerOps.=.array();.foreach.($o
8a000 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 69 64 78 20 3d 3e 20 24 6f 70 29 20 7b 0a 69 66 20 28 perations.as.$idx.=>.$op).{.if.(
8a020 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 29 $op.instanceof.InstallOperation)
8a040 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b .{.$package.=.$op->getPackage();
8a060 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 70 64 61 74 .}.else.if.($op.instanceof.Updat
8a080 65 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 2d 3e 67 65 eOperation).{.$package.=.$op->ge
8a0a0 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 6f 6e 74 69 tTargetPackage();.}.else.{.conti
8a0c0 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 nue;.}..if.($package->getRequire
8a0e0 73 28 29 20 3d 3d 3d 20 61 72 72 61 79 28 29 20 26 26 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 s().===.array().&&.($package->ge
8a100 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c tType().===.'composer-plugin'.||
8a120 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 .$package->getType().===.'compos
8a140 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 5b er-installer')).{.$installerOps[
8a160 5d 20 3d 20 24 6f 70 3b 0a 75 6e 73 65 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 5b 24 69 64 78 5d ].=.$op;.unset($operations[$idx]
8a180 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 69 6e 73 74 );.}.}..return.array_merge($inst
8a1a0 61 6c 6c 65 72 4f 70 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 allerOps,.$operations);.}..priva
8a1c0 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6f 6f 6c 28 29 0a 7b 0a 24 6d 69 6e 69 te.function.createPool().{.$mini
8a1e0 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 mumStability.=.$this->package->g
8a200 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 etMinimumStability();.$stability
8a220 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 Flags.=.$this->package->getStabi
8a240 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 lityFlags();..if.(!$this->update
8a260 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b .&&.$this->locker->isLocked()).{
8a280 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b .$minimumStability.=.$this->lock
8a2a0 65 72 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 er->getMinimumStability();.$stab
8a2c0 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 ilityFlags.=.$this->locker->getS
8a2e0 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 tabilityFlags();.}..return.new.P
8a300 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 24 73 74 61 62 69 6c 69 74 ool($minimumStability,.$stabilit
8a320 79 46 6c 61 67 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 yFlags);.}..private.function.cre
8a340 61 74 65 50 6f 6c 69 63 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 66 61 75 6c 74 atePolicy().{.return.new.Default
8a360 50 6f 6c 69 63 79 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 66 65 72 Policy($this->package->getPrefer
8a380 53 74 61 62 6c 65 28 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 Stable());.}..private.function.c
8a3a0 72 65 61 74 65 52 65 71 75 65 73 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 6f 6f 74 50 61 63 reateRequest(Pool.$pool,.RootPac
8a3c0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2c 20 50 6c 61 74 kageInterface.$rootPackage,.Plat
8a3e0 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 0a 7b 0a formRepository.$platformRepo).{.
8a400 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 20 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 29 3b 0a 0a $request.=.new.Request($pool);..
8a420 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 $constraint.=.new.VersionConstra
8a440 69 6e 74 28 27 3d 27 2c 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f int('=',.$rootPackage->getVersio
8a460 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 n());.$constraint->setPrettyStri
8a480 6e 67 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f ng($rootPackage->getPrettyVersio
8a4a0 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 6f 6f 74 50 61 63 n());.$request->install($rootPac
8a4c0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a kage->getName(),.$constraint);..
8a4e0 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e $fixedPackages.=.$platformRepo->
8a500 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 getPackages();.if.($this->additi
8a520 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 61 64 64 69 onalInstalledRepository).{.$addi
8a540 74 69 6f 6e 61 6c 46 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 61 64 64 tionalFixedPackages.=.$this->add
8a560 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 itionalInstalledRepository->getP
8a580 61 63 6b 61 67 65 73 28 29 3b 0a 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 ackages();.$fixedPackages.=.arra
8a5a0 79 5f 6d 65 72 67 65 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 2c 20 24 61 64 64 69 74 69 6f y_merge($fixedPackages,.$additio
8a5c0 6e 61 6c 46 69 78 65 64 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 70 72 6f 76 69 nalFixedPackages);.}......$provi
8a5e0 64 65 64 20 3d 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 ded.=.$rootPackage->getProvides(
8a600 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 70 );.foreach.($fixedPackages.as.$p
8a620 61 63 6b 61 67 65 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 ackage).{.$constraint.=.new.Vers
8a640 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ionConstraint('=',.$package->get
8a660 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 Version());.$constraint->setPret
8a680 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 tyString($package->getPrettyVers
8a6a0 69 6f 6e 28 29 29 3b 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f ion());....if.($package->getRepo
8a6c0 73 69 74 6f 72 79 28 29 20 21 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 0a 7c 7c 20 21 69 sitory().!==.$platformRepo.||.!i
8a6e0 73 73 65 74 28 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 sset($provided[$package->getName
8a700 28 29 5d 29 0a 7c 7c 20 21 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ()]).||.!$provided[$package->get
8a720 4e 61 6d 65 28 29 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 6d 61 74 63 68 65 Name()]->getConstraint()->matche
8a740 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 s($constraint).).{.$request->ins
8a760 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 tall($package->getName(),.$const
8a780 72 61 69 6e 74 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 65 73 74 3b 0a 7d 0a raint);.}.}..return.$request;.}.
8a7a0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b .private.function.processDevPack
8a7c0 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c ages($localRepo,.$pool,.$policy,
8a7e0 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 .$repositories,.$lockedRepositor
8a800 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 24 74 61 73 6b 2c 20 61 72 72 61 y,.$installFromLock,.$task,.arra
8a820 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 61 73 y.$operations.=.null).{.if.($tas
8a840 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d k.===.'force-updates'.&&.null.==
8a860 3d 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 =.$operations).{.throw.new.\Inva
8a880 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 6f 70 lidArgumentException('Missing.op
8a8a0 65 72 61 74 69 6f 6e 73 20 61 72 67 75 6d 65 6e 74 27 29 3b 0a 7d 0a 69 66 20 28 24 74 61 73 6b erations.argument');.}.if.($task
8a8c0 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e .===.'force-links').{.$operation
8a8e0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 s.=.array();.}..foreach.($localR
8a900 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 epo->getCanonicalPackages().as.$
8a920 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 package).{...if.(!$package->isDe
8a940 76 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 v()).{.continue;.}....foreach.($
8a960 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 operations.as.$operation).{.if.(
8a980 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 ('update'.===.$operation->getJob
8a9a0 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c Type().&&.$operation->getInitial
8a9c0 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 Package()->equals($package)).||.
8a9e0 28 27 75 6e 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 ('uninstall'.===.$operation->get
8aa00 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b JobType().&&.$operation->getPack
8aa20 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e age()->equals($package)).).{.con
8aa40 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d tinue.2;.}.}....if.($installFrom
8aa60 4c 6f 63 6b 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f Lock).{.foreach.($lockedReposito
8aa80 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 ry->findPackages($package->getNa
8aaa0 6d 65 28 29 29 20 61 73 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 me()).as.$lockedPackage).{.if.($
8aac0 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 6c 6f 63 6b 65 lockedPackage->isDev().&&.$locke
8aae0 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 3d 3d 3d 20 24 70 61 63 6b dPackage->getVersion().===.$pack
8ab00 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d age->getVersion()).{.if.($task.=
8ab20 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 ==.'force-links').{.$package->se
8ab40 74 52 65 71 75 69 72 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 tRequires($lockedPackage->getReq
8ab60 75 69 72 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 uires());.$package->setConflicts
8ab80 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 ($lockedPackage->getConflicts())
8aba0 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6c 6f 63 6b 65 64 50 ;.$package->setProvides($lockedP
8abc0 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 ackage->getProvides());.$package
8abe0 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 ->setReplaces($lockedPackage->ge
8ac00 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 73 6b 20 3d 3d tReplaces());.}.elseif.($task.==
8ac20 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 28 24 6c 6f 63 6b 65 =.'force-updates').{.if.(($locke
8ac40 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 dPackage->getSourceReference().&
8ac60 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 &.$lockedPackage->getSourceRefer
8ac80 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 ence().!==.$package->getSourceRe
8aca0 66 65 72 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 ference()).||.($lockedPackage->g
8acc0 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b etDistReference().&&.$lockedPack
8ace0 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 age->getDistReference().!==.$pac
8ad00 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 24 6f kage->getDistReference()).).{.$o
8ad20 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f perations[].=.new.UpdateOperatio
8ad40 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d n($package,.$lockedPackage);.}.}
8ad60 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 ..break;.}.}.}.else.{...if.($thi
8ad80 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 s->update).{...if.($this->update
8ada0 57 68 69 74 65 6c 69 73 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c Whitelist.&&.!$this->isUpdateabl
8adc0 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6d e($package)).{.continue;.}....$m
8ade0 61 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 atches.=.$pool->whatProvides($pa
8ae00 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e ckage->getName(),.new.VersionCon
8ae20 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f straint('=',.$package->getVersio
8ae40 6e 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 n()));.foreach.($matches.as.$ind
8ae60 65 78 20 3d 3e 20 24 6d 61 74 63 68 29 20 7b 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 ex.=>.$match).{...if.(!in_array(
8ae80 24 6d 61 74 63 68 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 72 65 70 6f 73 69 $match->getRepository(),.$reposi
8aea0 74 6f 72 69 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b tories,.true)).{.unset($matches[
8aec0 24 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 $index]);.continue;.}....if.($ma
8aee0 74 63 68 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 tch->getName().!==.$package->get
8af00 4e 61 6d 65 28 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d Name()).{.unset($matches[$index]
8af20 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d );.continue;.}..$matches[$index]
8af40 20 3d 20 24 6d 61 74 63 68 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 .=.$match->getId();.}....if.($ma
8af60 74 63 68 65 73 20 26 26 20 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c tches.&&.$matches.=.$policy->sel
8af80 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 ectPreferedPackages($pool,.array
8afa0 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 (),.$matches)).{.$newPackage.=.$
8afc0 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b pool->literalToPackage($matches[
8afe0 30 5d 29 3b 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 0]);..if.($task.===.'force-links
8b000 27 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 '.&&.$newPackage).{.$package->se
8b020 74 52 65 71 75 69 72 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 tRequires($newPackage->getRequir
8b040 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 6e es());.$package->setConflicts($n
8b060 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 ewPackage->getConflicts());.$pac
8b080 6b 61 67 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 kage->setProvides($newPackage->g
8b0a0 65 74 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c etProvides());.$package->setRepl
8b0c0 61 63 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 aces($newPackage->getReplaces())
8b0e0 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 ;.}..if.($task.===.'force-update
8b100 73 27 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 20 26 26 20 28 0a 28 28 24 6e 65 77 50 61 63 s'.&&.$newPackage.&&.(.(($newPac
8b120 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6e kage->getSourceReference().&&.$n
8b140 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 ewPackage->getSourceReference().
8b160 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 !==.$package->getSourceReference
8b180 28 29 29 0a 7c 7c 20 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 ()).||.($newPackage->getDistRefe
8b1a0 72 65 6e 63 65 28 29 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 rence().&&.$newPackage->getDistR
8b1c0 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 eference().!==.$package->getDist
8b1e0 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 0a 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b Reference()).).)).{.$operations[
8b200 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 ].=.new.UpdateOperation($package
8b220 2c 20 24 6e 65 77 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 61 73 6b ,.$newPackage);.}.}.}..if.($task
8b240 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 0a 20 24 72 65 66 65 72 .===.'force-updates').{...$refer
8b260 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 ences.=.$this->package->getRefer
8b280 65 6e 63 65 73 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b ences();..if.(isset($references[
8b2a0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 $package->getName()]).&&.$refere
8b2c0 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 nces[$package->getName()].!==.$p
8b2e0 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a ackage->getSourceReference()).{.
8b300 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 ..$operations[].=.new.UpdateOper
8b320 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b ation($package,.clone.$package);
8b340 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a .}.}.}.}..return.$operations;.}.
8b360 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 .private.function.getRootAliases
8b380 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 ().{.if.(!$this->update.&&.$this
8b3a0 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 ->locker->isLocked()).{.$aliases
8b3c0 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a .=.$this->locker->getAliases();.
8b3e0 7d 20 65 6c 73 65 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 }.else.{.$aliases.=.$this->packa
8b400 67 65 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 ge->getAliases();.}..$normalized
8b420 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c Aliases.=.array();..foreach.($al
8b440 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c iases.as.$alias).{.$normalizedAl
8b460 69 61 73 65 73 5b 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d 5b 24 61 6c 69 61 73 5b iases[$alias['package']][$alias[
8b480 27 76 65 72 73 69 6f 6e 27 5d 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 'version']].=.array(.'alias'.=>.
8b4a0 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a $alias['alias'],.'alias_normaliz
8b4c0 65 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 ed'.=>.$alias['alias_normalized'
8b4e0 5d 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 ].);.}..return.$normalizedAliase
8b500 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 6c 61 74 s;.}..private.function.aliasPlat
8b520 66 6f 72 6d 50 61 63 6b 61 67 65 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 formPackages(PlatformRepository.
8b540 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 $platformRepo,.$aliases).{.forea
8b560 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 ch.($aliases.as.$package.=>.$ver
8b580 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 sions).{.foreach.($versions.as.$
8b5a0 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d version.=>.$alias).{.$packages.=
8b5c0 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 .$platformRepo->findPackages($pa
8b5e0 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b ckage,.$version);.foreach.($pack
8b600 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 ages.as.$package).{.$aliasPackag
8b620 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 e.=.new.AliasPackage($package,.$
8b640 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 alias['alias_normalized'],.$alia
8b660 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 s['alias']);.$aliasPackage->setR
8b680 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 6f 72 6d ootPackageAlias(true);.$platform
8b6a0 52 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b Repo->addPackage($aliasPackage);
8b6c0 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 .}.}.}.}..private.function.isUpd
8b6e0 61 74 65 61 62 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 ateable(PackageInterface.$packag
8b700 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 e).{.if.(!$this->updateWhitelist
8b720 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 69 ).{.throw.new.\LogicException('i
8b740 73 55 70 64 61 74 65 61 62 6c 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 sUpdateable.should.only.be.calle
8b760 64 20 77 68 65 6e 20 61 20 77 68 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b d.when.a.whitelist.is.present');
8b780 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c .}..foreach.($this->updateWhitel
8b7a0 69 73 74 20 61 73 20 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 3e 20 24 76 ist.as.$whiteListedPattern.=>.$v
8b7c0 6f 69 64 29 20 7b 0a 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 oid).{.$cleanedWhiteListedPatter
8b7e0 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 65 n.=.str_replace('\\*',.'.*',.pre
8b800 67 5f 71 75 6f 74 65 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a 0a g_quote($whiteListedPattern));..
8b820 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 5e 22 2e 24 63 6c 65 61 6e 65 64 57 68 69 74 if.(preg_match("{^".$cleanedWhit
8b840 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 2e 22 24 7d 69 22 2c 20 24 70 61 63 6b 61 67 65 2d 3e eListedPattern."$}i",.$package->
8b860 67 65 74 4e 61 6d 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a getName())).{.return.true;.}.}..
8b880 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f return.false;.}..private.functio
8b8a0 6e 20 65 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6c n.extractPlatformRequirements($l
8b8c0 69 6e 6b 73 29 0a 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 61 72 72 61 79 28 29 3b inks).{.$platformReqs.=.array();
8b8e0 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 .foreach.($links.as.$link).{.if.
8b900 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a (preg_match(PlatformRepository::
8b920 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 PLATFORM_PACKAGE_REGEX,.$link->g
8b940 65 74 54 61 72 67 65 74 28 29 29 29 20 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 5b 24 6c 69 etTarget())).{.$platformReqs[$li
8b960 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 nk->getTarget()].=.$link->getPre
8b980 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 6c ttyConstraint();.}.}..return.$pl
8b9a0 61 74 66 6f 72 6d 52 65 71 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 atformReqs;.}..............priva
8b9c0 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e te.function.whitelistUpdateDepen
8b9e0 64 65 6e 63 69 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 dencies($localRepo,.$devMode,.ar
8ba00 72 61 79 20 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 ray.$rootRequires,.array.$rootDe
8ba20 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 vRequires).{.if.(!$this->updateW
8ba40 68 69 74 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 64 hitelist).{.return;.}..$required
8ba60 50 61 63 6b 61 67 65 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 PackageNames.=.array();.foreach.
8ba80 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f (array_merge($rootRequires,.$roo
8baa0 74 44 65 76 52 65 71 75 69 72 65 73 29 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 tDevRequires).as.$require).{.$re
8bac0 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 2d quiredPackageNames[].=.$require-
8bae0 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b >getTarget();.}..if.($devMode).{
8bb00 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f .$rootRequires.=.array_merge($ro
8bb20 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d otRequires,.$rootDevRequires);.}
8bb40 0a 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 ..$skipPackages.=.array();.forea
8bb60 63 68 20 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b ch.($rootRequires.as.$require).{
8bb80 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 .$skipPackages[$require->getTarg
8bba0 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f et()].=.true;.}..$pool.=.new.Poo
8bbc0 6c 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 l;.$pool->addRepository($localRe
8bbe0 70 6f 29 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 po);..$seen.=.array();..foreach.
8bc00 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b ($this->updateWhitelist.as.$pack
8bc20 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 ageName.=>.$void).{.$packageQueu
8bc40 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 73 e.=.new.\SplQueue;..$depPackages
8bc60 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e .=.$pool->whatProvides($packageN
8bc80 61 6d 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b 61 67 65 73 29 20 3d 3d ame);.if.(count($depPackages).==
8bca0 20 30 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 .0.&&.!in_array($packageName,.$r
8bcc0 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 29 20 26 26 20 21 69 6e 5f 61 72 72 61 equiredPackageNames).&&.!in_arra
8bce0 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 61 72 72 61 79 28 27 6e 6f 74 68 69 6e 67 27 2c y($packageName,.array('nothing',
8bd00 20 27 6c 6f 63 6b 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c .'lock'))).{.$this->io->write('<
8bd20 77 61 72 6e 69 6e 67 3e 50 61 63 6b 61 67 65 20 22 27 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d warning>Package."'...$packageNam
8bd40 65 20 2e 20 27 22 20 6c 69 73 74 65 64 20 66 6f 72 20 75 70 64 61 74 65 20 69 73 20 6e 6f 74 20 e...'".listed.for.update.is.not.
8bd60 69 6e 73 74 61 6c 6c 65 64 2e 20 49 67 6e 6f 72 69 6e 67 2e 3c 77 61 72 6e 69 6e 67 3e 27 29 3b installed..Ignoring.<warning>');
8bd80 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 50 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 .}..foreach.($depPackages.as.$de
8bda0 70 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 pPackage).{.$packageQueue->enque
8bdc0 75 65 28 24 64 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 ue($depPackage);.}..while.(!$pac
8bde0 6b 61 67 65 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 kageQueue->isEmpty()).{.$package
8be00 20 3d 20 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 .=.$packageQueue->dequeue();.if.
8be20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 (isset($seen[$package->getId()])
8be40 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d ).{.continue;.}..$seen[$package-
8be60 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 >getId()].=.true;.$this->updateW
8be80 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 hitelist[$package->getName()].=.
8bea0 74 72 75 65 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 true;..$requires.=.$package->get
8bec0 52 65 71 75 69 72 65 73 28 29 3b 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 65 71 Requires();.if.($devMode).{.$req
8bee0 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 uires.=.array_merge($requires,.$
8bf00 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 0a 66 package->getDevRequires());.}..f
8bf20 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b oreach.($requires.as.$require).{
8bf40 0a 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 .$requirePackages.=.$pool->whatP
8bf60 72 6f 76 69 64 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a rovides($require->getTarget());.
8bf80 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 .foreach.($requirePackages.as.$r
8bfa0 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 equirePackage).{.if.(isset($skip
8bfc0 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d Packages[$requirePackage->getNam
8bfe0 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 e()])).{.continue;.}.$packageQue
8c000 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a ue->enqueue($requirePackage);.}.
8c020 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e }.}.}.}.........private.function
8c040 20 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 52 65 70 6f 73 69 74 6f 72 .mockLocalRepositories(Repositor
8c060 79 4d 61 6e 61 67 65 72 20 24 72 6d 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 yManager.$rm).{.$packages.=.arra
8c080 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 y();.foreach.($rm->getLocalRepos
8c0a0 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 itory()->getPackages().as.$packa
8c0c0 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 ge).{.$packages[(string).$packag
8c0e0 65 5d 20 3d 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 e].=.clone.$package;.}.foreach.(
8c100 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b $packages.as.$key.=>.$package).{
8c120 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 .if.($package.instanceof.AliasPa
8c140 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b ckage).{.$alias.=.(string).$pack
8c160 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 age->getAliasOf();.$packages[$ke
8c180 79 5d 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 73 5b y].=.new.AliasPackage($packages[
8c1a0 24 61 6c 69 61 73 5d 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c $alias],.$package->getVersion(),
8c1c0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a .$package->getPrettyVersion());.
8c1e0 7d 0a 7d 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 }.}.$rm->setLocalRepository(.new
8c200 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 .InstalledArrayRepository($packa
8c220 67 65 73 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 ges).);.}.........public.static.
8c240 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c function.create(IOInterface.$io,
8c260 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 .Composer.$composer).{.return.ne
8c280 77 20 73 74 61 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e w.static(.$io,.$composer->getCon
8c2a0 66 69 67 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 0a fig(),.$composer->getPackage(),.
8c2c0 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c $composer->getDownloadManager(),
8c2e0 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 .$composer->getRepositoryManager
8c300 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d (),.$composer->getLocker(),.$com
8c320 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c poser->getInstallationManager(),
8c340 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 .$composer->getEventDispatcher()
8c360 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f ,.$composer->getAutoloadGenerato
8c380 72 28 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 64 r().);.}..public.function.setAdd
8c3a0 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 itionalInstalledRepository(Repos
8c3c0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c itoryInterface.$additionalInstal
8c3e0 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e ledRepository).{.$this->addition
8c400 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 69 6f alInstalledRepository.=.$additio
8c420 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 6e 20 nalInstalledRepository;..return.
8c440 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $this;.}........public.function.
8c460 73 65 74 44 72 79 52 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 setDryRun($dryRun.=.true).{.$thi
8c480 73 2d 3e 64 72 79 52 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b 0a 0a s->dryRun.=.(boolean).$dryRun;..
8c4a0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.$this;.}........public.fu
8c4c0 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f nction.setPreferSource($preferSo
8c4e0 75 72 63 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 urce.=.true).{.$this->preferSour
8c500 63 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 ce.=.(boolean).$preferSource;..r
8c520 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e eturn.$this;.}........public.fun
8c540 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 20 ction.setPreferDist($preferDist.
8c560 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 3d 20 28 62 =.true).{.$this->preferDist.=.(b
8c580 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 oolean).$preferDist;..return.$th
8c5a0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 is;.}........public.function.set
8c5c0 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f OptimizeAutoloader($optimizeAuto
8c5e0 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a loader.=.false).{.$this->optimiz
8c600 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 6f 70 74 69 6d 69 7a eAutoloader.=.(boolean).$optimiz
8c620 65 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a eAutoloader;..return.$this;.}...
8c640 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 28 24 .....public.function.setUpdate($
8c660 75 70 64 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3d update.=.true).{.$this->update.=
8c680 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .(boolean).$update;..return.$thi
8c6a0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 s;.}........public.function.setD
8c6c0 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d evMode($devMode.=.true).{.$this-
8c6e0 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a >devMode.=.(boolean).$devMode;..
8c700 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.$this;.}........public.fu
8c720 6e 63 74 69 6f 6e 20 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 nction.setRunScripts($runScripts
8c740 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 .=.true).{.$this->runScripts.=.(
8c760 62 6f 6f 6c 65 61 6e 29 20 24 72 75 6e 53 63 72 69 70 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 boolean).$runScripts;..return.$t
8c780 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 his;.}........public.function.se
8c7a0 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d tConfig(Config.$config).{.$this-
8c7c0 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 >config.=.$config;..return.$this
8c7e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 ;.}........public.function.setVe
8c800 72 62 6f 73 65 28 24 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e rbose($verbose.=.true).{.$this->
8c820 76 65 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 verbose.=.(boolean).$verbose;..r
8c840 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$this;.}.........public.fu
8c860 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 nction.setUpdateWhitelist(array.
8c880 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c $packages).{.$this->updateWhitel
8c8a0 69 73 74 20 3d 20 61 72 72 61 79 5f 66 6c 69 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 ist.=.array_flip(array_map('strt
8c8c0 6f 6c 6f 77 65 72 27 2c 20 24 70 61 63 6b 61 67 65 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 olower',.$packages));..return.$t
8c8e0 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e his;.}...........public.function
8c900 20 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 .disablePlugins().{.$this->insta
8c920 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 llationManager->disablePlugins()
8c940 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 ;..return.$this;.}.}.<?php../*..
8c960 2a 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e *.This.file.is.part.of.Composer.
8c980 0a 20 2a 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d ..*..*.(c).Nils.Adermann.<naderm
8c9a0 61 6e 40 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 an@naderman.de>..*.....Jordi.Bog
8c9c0 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a giano.<j.boggiano@seld.be>..*..*
8c9e0 20 46 6f 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 .For.the.full.copyright.and.lice
8ca00 6e 73 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 nse.information,.please.view.the
8ca20 20 4c 49 43 45 4e 53 45 0a 20 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 .LICENSE..*.file.that.was.distri
8ca40 62 75 74 65 64 20 77 69 74 68 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f buted.with.this.source.code...*/
8ca60 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a ..namespace.Composer\Autoload;..
8ca80 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 /**..*.ClassLoader.implements.a.
8caa0 50 53 52 2d 30 20 63 6c 61 73 73 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 53 65 65 20 68 74 74 PSR-0.class.loader..*..*.See.htt
8cac0 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 69 67 2d 73 74 61 6e ps://github.com/php-fig/fig-stan
8cae0 64 61 72 64 73 2f 62 6c 6f 62 2f 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 64 2f 50 53 52 2d 30 dards/blob/master/accepted/PSR-0
8cb00 2e 6d 64 0a 20 2a 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d .md..*..*.....$loader.=.new.\Com
8cb20 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a poser\Autoload\ClassLoader();..*
8cb40 0a 20 2a 20 20 20 20 20 2f 2f 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 ..*.....//.register.classes.with
8cb60 20 6e 61 6d 65 73 70 61 63 65 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 .namespaces..*.....$loader->add(
8cb80 27 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 'Symfony\Component',.__DIR__.'/c
8cba0 6f 6d 70 6f 6e 65 6e 74 27 29 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 omponent');..*.....$loader->add(
8cbc0 27 53 79 6d 66 6f 6e 79 27 2c 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 'Symfony',...........__DIR__.'/f
8cbe0 72 61 6d 65 77 6f 72 6b 27 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 ramework');..*..*.....//.activat
8cc00 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d e.the.autoloader..*.....$loader-
8cc20 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 >register();..*..*.....//.to.ena
8cc40 62 6c 65 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 ble.searching.the.include.path.(
8cc60 65 67 2e 20 66 6f 72 20 50 45 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c eg..for.PEAR.packages)..*.....$l
8cc80 6f 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a oader->setUseIncludePath(true);.
8cca0 20 2a 0a 20 2a 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 .*..*.In.this.example,.if.you.tr
8ccc0 79 20 74 6f 20 75 73 65 20 61 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c y.to.use.a.class.in.the.Symfony\
8cce0 43 6f 6d 70 6f 6e 65 6e 74 0a 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 Component..*.namespace.or.one.of
8cd00 20 69 74 73 20 63 68 69 6c 64 72 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .its.children.(Symfony\Component
8cd20 5c 43 6f 6e 73 6f 6c 65 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 \Console.for.instance),..*.the.a
8cd40 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 utoloader.will.first.look.for.th
8cd60 65 20 63 6c 61 73 73 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 e.class.under.the.component/..*.
8cd80 64 69 72 65 63 74 6f 72 79 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c directory,.and.it.will.then.fall
8cda0 62 61 63 6b 20 74 6f 20 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 back.to.the.framework/.directory
8cdc0 20 69 66 20 6e 6f 74 0a 20 2a 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 .if.not..*.found.before.giving.u
8cde0 70 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 p...*..*.This.class.is.loosely.b
8ce00 61 73 65 64 20 6f 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 ased.on.the.Symfony.UniversalCla
8ce20 73 73 4c 6f 61 64 65 72 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 ssLoader...*..*.@author.Fabien.P
8ce40 6f 74 65 6e 63 69 65 72 20 3c 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a otencier.<fabien@symfony.com>..*
8ce60 20 40 61 75 74 68 6f 72 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 .@author.Jordi.Boggiano.<j.boggi
8ce80 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 ano@seld.be>..*/.class.ClassLoad
8cea0 65 72 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 er.{.....private.$prefixes.=.arr
8cec0 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 ay();.....private.$fallbackDirs.
8cee0 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 =.array();.....private.$useInclu
8cf00 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 dePath.=.false;.....private.$cla
8cf20 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e ssMap.=.array();......public.fun
8cf40 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ction.getPrefixes().....{.......
8cf60 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 ..return.call_user_func_array('a
8cf80 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 29 3b 0a 20 rray_merge',.$this->prefixes);..
8cfa0 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c ...}......public.function.getFal
8cfc0 6c 62 61 63 6b 44 69 72 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e lbackDirs().....{.........return
8cfe0 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 .$this->fallbackDirs;.....}.....
8d000 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 .public.function.getClassMap()..
8d020 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 ...{.........return.$this->class
8d040 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 Map;.....}....../**......*.@para
8d060 6d 20 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e m.array.$classMap.Class.to.filen
8d080 61 6d 65 20 6d 61 70 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 ame.map......*/.....public.funct
8d0a0 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 ion.addClassMap(array.$classMap)
8d0c0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d .....{.........if.($this->classM
8d0e0 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 ap).{.............$this->classMa
8d100 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c p.=.array_merge($this->classMap,
8d120 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 .$classMap);.........}.else.{...
8d140 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 ..........$this->classMap.=.$cla
8d160 73 73 4d 61 70 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a ssMap;.........}.....}....../**.
8d180 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 73 65 .....*.Registers.a.set.of.classe
8d1a0 73 2c 20 6d 65 72 67 69 6e 67 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 69 s,.merging.with.any.others.previ
8d1c0 6f 75 73 6c 79 20 73 65 74 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 ously.set.......*......*.@param.
8d1e0 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 63 6c 61 73 73 65 string.......$prefix..The.classe
8d200 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 s.prefix......*.@param.array|str
8d220 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 28 73 29 20 6f 66 20 ing.$paths...The.location(s).of.
8d240 74 68 65 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 the.classes......*.@param.bool..
8d260 20 20 20 20 20 20 20 24 70 72 65 70 65 6e 64 20 50 72 65 70 65 6e 64 20 74 68 65 20 6c 6f 63 61 .......$prepend.Prepend.the.loca
8d280 74 69 6f 6e 28 73 29 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 tion(s)......*/.....public.funct
8d2a0 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e ion.add($prefix,.$paths,.$prepen
8d2c0 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 d.=.false).....{.........if.(!$p
8d2e0 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e refix).{.............if.($prepen
8d300 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c d).{.................$this->fall
8d320 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 backDirs.=.array_merge(.........
8d340 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 ............(array).$paths,.....
8d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 ................$this->fallbackD
8d380 69 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 irs.................);..........
8d3a0 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 ...}.else.{.................$thi
8d3c0 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 s->fallbackDirs.=.array_merge(..
8d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 ...................$this->fallba
8d400 63 6b 44 69 72 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 ckDirs,.....................(arr
8d420 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 ay).$paths.................);...
8d440 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b ..........}..............return;
8d460 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 24 70 72 .........}..........$first.=.$pr
8d480 65 66 69 78 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 efix[0];.........if.(!isset($thi
8d4a0 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 29 29 20 7b s->prefixes[$first][$prefix])).{
8d4c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 .............$this->prefixes[$fi
8d4e0 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a rst][$prefix].=.(array).$paths;.
8d500 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 .............return;.........}..
8d520 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .......if.($prepend).{..........
8d540 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 ...$this->prefixes[$first][$pref
8d560 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ix].=.array_merge(..............
8d580 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(array).$paths,..............
8d5a0 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 ...$this->prefixes[$first][$pref
8d5c0 69 78 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 ix].............);.........}.els
8d5e0 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b e.{.............$this->prefixes[
8d600 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a $first][$prefix].=.array_merge(.
8d620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b ................$this->prefixes[
8d640 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $first][$prefix],...............
8d660 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a ..(array).$paths.............);.
8d680 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 ........}.....}....../**......*.
8d6a0 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 73 65 73 2c 20 72 65 70 6c Registers.a.set.of.classes,.repl
8d6c0 61 63 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 2e acing.any.others.previously.set.
8d6e0 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 ......*......*.@param.string....
8d700 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 0a 20 20 ...$prefix.The.classes.prefix...
8d720 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 ...*.@param.array|string.$paths.
8d740 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 65 73 0a .The.location(s).of.the.classes.
8d760 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 .....*/.....public.function.set(
8d780 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 $prefix,.$paths).....{.........i
8d7a0 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 f.(!$prefix).{.............$this
8d7c0 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b ->fallbackDirs.=.(array).$paths;
8d7e0 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a ..............return;.........}.
8d800 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 73 75 62 73 74 72 28 24 ........$this->prefixes[substr($
8d820 70 72 65 66 69 78 2c 20 30 2c 20 31 29 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 prefix,.0,.1)][$prefix].=.(array
8d840 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 ).$paths;.....}....../**......*.
8d860 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 Turns.on.searching.the.include.p
8d880 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 66 69 6c 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 ath.for.class.files.......*.....
8d8a0 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 0a 20 .*.@param.bool.$useIncludePath..
8d8c0 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 ....*/.....public.function.setUs
8d8e0 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 20 eIncludePath($useIncludePath)...
8d900 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 ..{.........$this->useIncludePat
8d920 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 h.=.$useIncludePath;.....}......
8d940 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 68 65 63 6b 20 /**......*.Can.be.used.to.check.
8d960 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 75 73 65 73 20 74 68 65 20 69 6e 63 6c 75 if.the.autoloader.uses.the.inclu
8d980 64 65 20 70 61 74 68 20 74 6f 20 63 68 65 63 6b 0a 20 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 73 de.path.to.check......*.for.clas
8d9a0 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a ses.......*......*.@return.bool.
8d9c0 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 .....*/.....public.function.getU
8d9e0 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 seIncludePath().....{.........re
8da00 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 turn.$this->useIncludePath;.....
8da20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 73 }....../**......*.Registers.this
8da40 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 .instance.as.an.autoloader......
8da60 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 57 .*......*.@param.bool.$prepend.W
8da80 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 hether.to.prepend.the.autoloader
8daa0 20 6f 72 20 6e 6f 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 .or.not......*/.....public.funct
8dac0 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 ion.register($prepend.=.false)..
8dae0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 ...{.........spl_autoload_regist
8db00 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 er(array($this,.'loadClass'),.tr
8db20 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 ue,.$prepend);.....}....../**...
8db40 20 20 20 2a 20 55 6e 72 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 ...*.Unregisters.this.instance.a
8db60 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 s.an.autoloader.......*/.....pub
8db80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 20 20 20 20 7b 0a lic.function.unregister().....{.
8dba0 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 ........spl_autoload_unregister(
8dbc0 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 array($this,.'loadClass'));.....
8dbe0 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 61 64 73 20 74 68 65 20 67 69 76 65 }....../**......*.Loads.the.give
8dc00 6e 20 63 6c 61 73 73 20 6f 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 n.class.or.interface.......*....
8dc20 20 20 2a 20 40 70 61 72 61 6d 20 20 73 74 72 69 6e 67 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 ..*.@param..string....$class.The
8dc40 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 .name.of.the.class......*.@retur
8dc60 6e 20 62 6f 6f 6c 7c 6e 75 6c 6c 20 54 72 75 65 20 69 66 20 6c 6f 61 64 65 64 2c 20 6e 75 6c 6c n.bool|null.True.if.loaded,.null
8dc80 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 .otherwise......*/.....public.fu
8dca0 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 nction.loadClass($class).....{..
8dcc0 20 20 20 20 20 20 20 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 .......if.($file.=.$this->findFi
8dce0 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 le($class)).{.............includ
8dd00 65 20 24 66 69 6c 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 e.$file;..............return.tru
8dd20 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 e;.........}.....}....../**.....
8dd40 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 .*.Finds.the.path.to.the.file.wh
8dd60 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 2a ere.the.class.is.defined.......*
8dd80 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 54 68 65 ......*.@param.string.$class.The
8dda0 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a .name.of.the.class......*......*
8ddc0 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 7c 66 61 6c 73 65 20 54 68 65 20 70 61 74 68 20 69 .@return.string|false.The.path.i
8dde0 66 20 66 6f 75 6e 64 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f f.found,.false.otherwise......*/
8de00 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 .....public.function.findFile($c
8de20 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 6f 72 6b 20 61 72 6f 75 lass).....{.........//.work.arou
8de40 6e 64 20 66 6f 72 20 50 48 50 20 35 2e 33 2e 30 20 2d 20 35 2e 33 2e 32 20 68 74 74 70 73 3a 2f nd.for.PHP.5.3.0.-.5.3.2.https:/
8de60 2f 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 35 30 37 33 31 0a 20 20 20 20 20 20 20 20 69 66 20 28 /bugs.php.net/50731.........if.(
8de80 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 '\\'.==.$class[0]).{............
8dea0 20 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 20 20 20 .$class.=.substr($class,.1);....
8dec0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d .....}..........if.(isset($this-
8dee0 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 >classMap[$class])).{...........
8df00 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d ..return.$this->classMap[$class]
8df20 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 61 6c 73 65 20 21 ;.........}..........if.(false.!
8df40 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 ==.$pos.=.strrpos($class,.'\\'))
8df60 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65 64 20 63 6c 61 .{.............//.namespaced.cla
8df80 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 3d ss.name.............$classPath.=
8dfa0 20 73 74 72 74 72 28 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 70 6f 73 29 2c 20 .strtr(substr($class,.0,.$pos),.
8dfc0 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 44 49 52 '\\',.DIRECTORY_SEPARATOR)...DIR
8dfe0 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 ECTORY_SEPARATOR;.............$c
8e000 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b lassName.=.substr($class,.$pos.+
8e020 20 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .1);.........}.else.{...........
8e040 20 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 ..//.PEAR-like.class.name.......
8e060 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 ......$classPath.=.null;........
8e080 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 .....$className.=.$class;.......
8e0a0 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 68 20 2e 3d 20 73 74 72 74 72 ..}..........$classPath..=.strtr
8e0c0 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 ($className,.'_',.DIRECTORY_SEPA
8e0e0 52 41 54 4f 52 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 24 66 69 72 73 74 RATOR)...'.php';..........$first
8e100 20 3d 20 24 63 6c 61 73 73 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 .=.$class[0];.........if.(isset(
8e120 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 20 20 20 20 $this->prefixes[$first])).{.....
8e140 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 ........foreach.($this->prefixes
8e160 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a [$first].as.$prefix.=>.$dirs).{.
8e180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 ................if.(0.===.strpos
8e1a0 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ($class,.$prefix)).{............
8e1c0 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 .........foreach.($dirs.as.$dir)
8e1e0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 .{.........................if.(f
8e200 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 ile_exists($dir...DIRECTORY_SEPA
8e220 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 RATOR...$classPath)).{..........
8e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 69 72 20 2e ...................return.$dir..
8e260 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 .DIRECTORY_SEPARATOR...$classPat
8e280 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 h;.........................}....
8e2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .................}..............
8e2c0 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ...}.............}.........}....
8e2e0 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 ......foreach.($this->fallbackDi
8e300 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 rs.as.$dir).{.............if.(fi
8e320 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 le_exists($dir...DIRECTORY_SEPAR
8e340 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ATOR...$classPath)).{...........
8e360 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 ......return.$dir...DIRECTORY_SE
8e380 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 PARATOR...$classPath;...........
8e3a0 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 ..}.........}..........if.($this
8e3c0 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 ->useIncludePath.&&.$file.=.stre
8e3e0 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 63 6c 61 73 73 50 61 am_resolve_include_path($classPa
8e400 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b th)).{.............return.$file;
8e420 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 .........}..........return.$this
8e440 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 ->classMap[$class].=.false;.....
8e460 7d 0a 7d 0a 5b 0a 20 20 20 20 22 41 46 4c 2d 31 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 }.}.[....."AFL-1.1",."AFL-1.2",.
8e480 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c "AFL-2.0",."AFL-2.1",."AFL-3.0",
8e4a0 20 22 41 50 4c 2d 31 2e 30 22 2c 20 22 41 6c 61 64 64 69 6e 22 2c 0a 20 20 20 20 22 41 4e 54 4c ."APL-1.0",."Aladdin",....."ANTL
8e4c0 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 31 R-PD",."Apache-1.0",."Apache-1.1
8e4e0 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 22 2c 20 22 41 50 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 ",."Apache-2.0",."APSL-1.0",....
8e500 20 22 41 50 53 4c 2d 31 2e 31 22 2c 20 22 41 50 53 4c 2d 31 2e 32 22 2c 20 22 41 50 53 4c 2d 32 ."APSL-1.1",."APSL-1.2",."APSL-2
8e520 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 32 .0",."Artistic-1.0",."Artistic-2
8e540 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 30 22 .0",."AAL",....."BitTorrent-1.0"
8e560 2c 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 31 22 2c 20 22 42 53 4c 2d 31 2e 30 22 2c 20 22 ,."BitTorrent-1.1",."BSL-1.0",."
8e580 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 61 72 22 2c 0a 20 20 20 20 22 42 53 44 2d 32 2d BSD-3-Clause-Clear",....."BSD-2-
8e5a0 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 42 53 44 22 2c Clause",."BSD-2-Clause-FreeBSD",
8e5c0 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 0a 20 20 20 20 22 42 53 44 ."BSD-2-Clause-NetBSD",....."BSD
8e5e0 2d 33 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 -3-Clause",."BSD-4-Clause",."BSD
8e600 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 43 45 43 49 4c 4c 2d 31 2e 30 22 2c 0a 20 20 20 -4-Clause-UC",."CECILL-1.0",....
8e620 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 43 49 4c 4c 2d 32 2e 30 22 2c 20 22 43 45 ."CECILL-1.1",."CECILL-2.0",."CE
8e640 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 22 2c 20 22 43 6c 41 72 74 69 73 74 69 63 CILL-B",."CECILL-C",."ClArtistic
8e660 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 ",....."CNRI-Python",."CNRI-Pyth
8e680 6f 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 44 44 4c 2d 31 2e 30 22 2c 20 on-GPL-Compatible",."CDDL-1.0",.
8e6a0 22 43 44 44 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 50 41 4c 2d 31 2e 30 22 2c 20 22 43 50 4c "CDDL-1.1",....."CPAL-1.0",."CPL
8e6c0 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 2c 20 22 43 6f 6e 64 6f 72 2d 31 2e 31 -1.0",."CATOSL-1.1",."Condor-1.1
8e6e0 22 2c 20 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 22 2c 0a 20 20 20 ",."CC-BY-1.0",."CC-BY-2.0",....
8e700 20 22 43 43 2d 42 59 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 43 2d 42 ."CC-BY-2.5",."CC-BY-3.0",."CC-B
8e720 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 Y-ND-1.0",."CC-BY-ND-2.0",."CC-B
8e740 59 2d 4e 44 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 20 22 Y-ND-2.5",....."CC-BY-ND-3.0",."
8e760 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 2c 20 22 CC-BY-NC-1.0",."CC-BY-NC-2.0",."
8e780 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 CC-BY-NC-2.5",....."CC-BY-NC-3.0
8e7a0 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d ",."CC-BY-NC-ND-1.0",."CC-BY-NC-
8e7c0 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 0a 20 20 20 20 ND-2.0",."CC-BY-NC-ND-2.5",.....
8e7e0 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d "CC-BY-NC-ND-3.0",."CC-BY-NC-SA-
8e800 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 1.0",."CC-BY-NC-SA-2.0",."CC-BY-
8e820 4e 43 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 NC-SA-2.5",....."CC-BY-NC-SA-3.0
8e840 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 ",."CC-BY-SA-1.0",."CC-BY-SA-2.0
8e860 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 53 41 ",."CC-BY-SA-2.5",....."CC-BY-SA
8e880 2d 33 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c -3.0",."CC0-1.0",."CUA-OPL-1.0",
8e8a0 20 22 57 54 46 50 4c 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 20 22 65 43 6f 73 2d 32 2e 30 22 2c ."WTFPL",."EPL-1.0",."eCos-2.0",
8e8c0 0a 20 20 20 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 22 45 46 4c 2d ....."ECL-1.0",."ECL-2.0",."EFL-
8e8e0 31 2e 30 22 2c 20 22 45 46 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 1.0",."EFL-2.0",."Entessa",."Erl
8e900 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 45 55 44 61 74 61 67 72 69 64 22 2c 20 22 45 55 50 4c PL-1.1",....."EUDatagrid",."EUPL
8e920 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e 31 22 2c 20 22 46 61 69 72 22 2c 20 22 46 72 61 6d -1.0",."EUPL-1.1",."Fair",."Fram
8e940 65 77 6f 72 78 2d 31 2e 30 22 2c 20 22 46 54 4c 22 2c 0a 20 20 20 20 22 41 47 50 4c 2d 33 2e 30 eworx-1.0",."FTL",....."AGPL-3.0
8e960 22 2c 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c 2d 31 2e 32 22 2c 20 22 47 46 44 4c ",."GFDL-1.1",."GFDL-1.2",."GFDL
8e980 2d 31 2e 33 22 2c 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 2c 0a 20 20 -1.3",."GPL-1.0",."GPL-1.0+",...
8e9a0 20 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e .."GPL-2.0",."GPL-2.0+",."GPL-2.
8e9c0 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 0-with-autoconf-exception",.....
8e9e0 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 "GPL-2.0-with-bison-exception",.
8ea00 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c 61 73 73 70 61 74 68 2d 65 78 63 65 70 74 69 6f "GPL-2.0-with-classpath-exceptio
8ea20 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 66 6f 6e 74 2d 65 78 63 65 70 n",....."GPL-2.0-with-font-excep
8ea40 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 tion",."GPL-2.0-with-GCC-excepti
8ea60 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2b 22 2c 20 on",."GPL-3.0",....."GPL-3.0+",.
8ea80 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e "GPL-3.0-with-autoconf-exception
8eaa0 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c ",."GPL-3.0-with-GCC-exception",
8eac0 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 2c 20 22 4c ....."LGPL-2.1",."LGPL-2.1+",."L
8eae0 47 50 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 2b 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 GPL-3.0",."LGPL-3.0+",."LGPL-2.0
8eb00 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 67 53 4f 41 50 2d 31 2e 33 62 22 ",."LGPL-2.0+",....."gSOAP-1.3b"
8eb20 2c 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 20 22 49 6d 6c 69 62 32 22 2c 20 22 ,."HPND",."IPL-1.0",."Imlib2",."
8eb40 49 4a 47 22 2c 20 22 49 6e 74 65 6c 22 2c 20 22 49 50 41 22 2c 20 22 49 53 43 22 2c 0a 20 20 20 IJG",."Intel",."IPA",."ISC",....
8eb60 20 22 4a 53 4f 4e 22 2c 20 22 4c 50 50 4c 2d 31 2e 33 61 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 ."JSON",."LPPL-1.3a",."LPPL-1.0"
8eb80 2c 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 20 22 4c 50 50 4c 2d ,."LPPL-1.1",."LPPL-1.2",."LPPL-
8eba0 31 2e 33 63 22 2c 0a 20 20 20 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 32 22 2c 1.3c",....."Libpng",."LPL-1.02",
8ebc0 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 20 22 4d ."LPL-1.0",."MS-PL",."MS-RL",."M
8ebe0 69 72 4f 53 22 2c 20 22 4d 49 54 22 2c 0a 20 20 20 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d irOS",."MIT",....."Motosoto",."M
8ec00 50 4c 2d 31 2e 30 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 20 22 4d 50 4c 2d 32 2e 30 22 2c 0a 20 PL-1.0",."MPL-1.1",."MPL-2.0",..
8ec20 20 20 20 22 4d 50 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d 65 78 63 65 70 74 69 6f ..."MPL-2.0-no-copyleft-exceptio
8ec40 6e 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 22 2c 20 22 4e 61 75 6d n",."Multics",."NASA-1.3",."Naum
8ec60 65 6e 22 2c 0a 20 20 20 20 22 4e 42 50 4c 2d 31 2e 30 22 2c 20 22 4e 47 50 4c 22 2c 20 22 4e 4f en",....."NBPL-1.0",."NGPL",."NO
8ec80 53 4c 22 2c 20 22 4e 50 4c 2d 31 2e 30 22 2c 20 22 4e 50 4c 2d 31 2e 31 22 2c 20 22 4e 6f 6b 69 SL",."NPL-1.0",."NPL-1.1",."Noki
8eca0 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 4e 54 50 22 2c 20 22 4f 43 4c a",."NPOSL-3.0",....."NTP",."OCL
8ecc0 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 20 22 50 44 44 4c 2d 31 2e 30 22 2c 20 C-2.0",."ODbL-1.0",."PDDL-1.0",.
8ece0 22 4f 47 54 53 4c 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 32 22 2c 0a 20 20 20 20 22 4f 4c 44 "OGTSL",."OLDAP-2.2.2",....."OLD
8ed00 41 50 2d 31 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 32 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 33 AP-1.1",."OLDAP-1.2",."OLDAP-1.3
8ed20 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 34 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 30 22 2c 0a 20 20 20 ",."OLDAP-1.4",."OLDAP-2.0",....
8ed40 20 22 4f 4c 44 41 50 2d 32 2e 30 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 31 22 2c 20 22 4f 4c ."OLDAP-2.0.1",."OLDAP-2.1",."OL
8ed60 44 41 50 2d 32 2e 32 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 31 22 2c 20 22 4f 4c 44 41 50 2d DAP-2.2",."OLDAP-2.2.1",."OLDAP-
8ed80 32 2e 33 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 34 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 2.3",....."OLDAP-2.4",."OLDAP-2.
8eda0 35 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 36 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 37 22 2c 20 22 4f 5",."OLDAP-2.6",."OLDAP-2.7",."O
8edc0 50 4c 2d 31 2e 30 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 4f 53 4c 2d 32 2e 30 PL-1.0",."OSL-1.0",....."OSL-2.0
8ede0 22 2c 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 20 22 4f 4c 44 41 50 2d ",."OSL-2.1",."OSL-3.0",."OLDAP-
8ee00 32 2e 38 22 2c 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 50 48 50 2d 33 2e 30 22 2c 0a 20 20 20 20 2.8",."OpenSSL",."PHP-3.0",.....
8ee20 22 50 48 50 2d 33 2e 30 31 22 2c 20 22 50 6f 73 74 67 72 65 53 51 4c 22 2c 20 22 50 79 74 68 6f "PHP-3.01",."PostgreSQL",."Pytho
8ee40 6e 2d 32 2e 30 22 2c 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 52 50 53 4c 2d 31 2e 30 22 2c 20 22 n-2.0",."QPL-1.0",."RPSL-1.0",."
8ee60 52 50 4c 2d 31 2e 35 22 2c 0a 20 20 20 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 2c 20 22 52 53 43 RPL-1.5",....."RHeCos-1.1",."RSC
8ee80 50 4c 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 20 22 53 47 49 2d 42 2d 31 2e PL",."Ruby",."SAX-PD",."SGI-B-1.
8eea0 30 22 2c 20 22 53 47 49 2d 42 2d 31 2e 31 22 2c 0a 20 20 20 20 22 53 47 49 2d 42 2d 32 2e 30 22 0",."SGI-B-1.1",....."SGI-B-2.0"
8eec0 2c 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 22 53 69 6d 50 4c 2d 32 ,."OFL-1.0",."OFL-1.1",."SimPL-2
8eee0 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 4d 4c 4e 4a 22 2c 0a 20 20 20 20 22 .0",."Sleepycat",."SMLNJ",....."
8ef00 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c 20 22 53 49 53 53 4c 22 2c 20 22 53 50 4c 2d 31 SugarCRM-1.1.3",."SISSL",."SPL-1
8ef20 2e 30 22 2c 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 53 4c 2d .0",."Watcom-1.0",."NCSA",."VSL-
8ef40 31 2e 30 22 2c 0a 20 20 20 20 22 57 33 43 22 2c 20 22 57 58 77 69 6e 64 6f 77 73 22 2c 20 22 58 1.0",....."W3C",."WXwindows",."X
8ef60 6e 65 74 22 2c 20 22 58 31 31 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 2c 20 22 59 50 4c net",."X11",."XFree86-1.1",."YPL
8ef80 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 5a 69 6d 62 72 61 2d 31 2e -1.0",."YPL-1.1",....."Zimbra-1.
8efa0 33 22 2c 20 22 5a 6c 69 62 22 2c 20 22 5a 50 4c 2d 31 2e 31 22 2c 20 22 5a 50 4c 2d 32 2e 30 22 3",."Zlib",."ZPL-1.1",."ZPL-2.0"
8efc0 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a 5d 7b 0a 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 50 61 63 6b ,."ZPL-2.1".]{....."name":."Pack
8efe0 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 age",....."type":."object",.....
8f000 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 "additionalProperties":.false,..
8f020 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 ..."properties":.{........."name
8f040 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ":.{............."type":."string
8f060 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 ",............."description":."P
8f080 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f 72 2d 6e ackage.name,.including.'vendor-n
8f0a0 61 6d 65 2f 27 20 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 ame/'.prefix.",............."req
8f0c0 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 uired":.true.........},.........
8f0e0 22 74 79 70 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 "type":.{............."descripti
8f100 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 27 6c 69 62 72 on":."Package.type,.either.'libr
8f120 61 72 79 27 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 27 63 6f 6d 70 6f ary'.for.common.packages,.'compo
8f140 73 65 72 2d 70 6c 75 67 69 6e 27 20 66 6f 72 20 70 6c 75 67 69 6e 73 2c 20 27 6d 65 74 61 70 61 ser-plugin'.for.plugins,.'metapa
8f160 63 6b 61 67 65 27 20 66 6f 72 20 65 6d 70 74 79 20 70 61 63 6b 61 67 65 73 2c 20 6f 72 20 61 20 ckage'.for.empty.packages,.or.a.
8f180 63 75 73 74 6f 6d 20 74 79 70 65 20 28 5b 61 2d 7a 30 2d 39 2d 5d 2b 29 20 64 65 66 69 6e 65 64 custom.type.([a-z0-9-]+).defined
8f1a0 20 62 79 20 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 67 .by.whatever.project.this.packag
8f1c0 65 20 61 70 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 e.applies.to.",............."typ
8f1e0 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 e":."string".........},.........
8f200 22 74 61 72 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 "target-dir":.{............."des
8f220 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 6f 72 63 65 73 20 74 68 65 20 70 61 63 6b 61 67 65 20 74 cription":."Forces.the.package.t
8f240 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 67 69 76 65 6e 20 73 75 o.be.installed.into.the.given.su
8f260 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f bdirectory.path..This.is.used.fo
8f280 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 61 63 6b 61 67 65 73 20 74 68 61 r.autoloading.PSR-0.packages.tha
8f2a0 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 72 20 66 75 6c 6c 20 70 61 74 68 t.do.not.contain.their.full.path
8f2c0 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 20 66 6f 72 20 63 72 6f 73 73 2d ..Use.forward.slashes.for.cross-
8f2e0 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 2c 0a 20 20 20 20 20 20 platform.compatibility.",.......
8f300 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d ......"type":."string".........}
8f320 2c 0a 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 ,........."description":.{......
8f340 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
8f360 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f 72 74 20 70 61 63 6b 61 ....."description":."Short.packa
8f380 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 ge.description.",............."r
8f3a0 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 equired":.true.........},.......
8f3c0 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 .."keywords":.{............."typ
8f3e0 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 e":."array",............."items"
8f400 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 :.{................."type":."str
8f420 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ing",................."descripti
8f440 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 68 61 74 20 74 68 69 73 20 70 61 on":."A.tag/keyword.that.this.pa
8f460 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ckage.relates.to.".............}
8f480 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 .........},........."homepage":.
8f4a0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a {............."type":."string",.
8f4c0 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 ............"description":."Home
8f4e0 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 2c 0a 20 20 20 20 page.URL.for.the.project.",.....
8f500 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 ........"format":."uri".........
8f520 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 },........."version":.{.........
8f540 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ...."type":."string",...........
8f560 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 76 65 72 73 69 6f .."description":."Package.versio
8f580 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f n,.see.http://getcomposer.org/do
8f5a0 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 c/04-schema.md#version.for.more.
8f5c0 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 info.on.valid.schemes.".........
8f5e0 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 },........."time":.{............
8f600 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ."type":."string",............."
8f620 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 72 65 6c 65 61 73 65 20 64 description":."Package.release.d
8f640 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 20 6f 72 20 27 59 59 59 59 2d 4d 4d ate,.in.'YYYY-MM-DD'.or.'YYYY-MM
8f660 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 20 20 7d -DD.HH:MM:SS'.format.".........}
8f680 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ,........."license":.{..........
8f6a0 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a ..."type":.["string",."array"],.
8f6c0 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 63 65 ............"description":."Lice
8f6e0 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 6e 73 65 nse.name..Or.an.array.of.license
8f700 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 .names.".........},........."aut
8f720 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 hors":.{............."type":."ar
8f740 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a ray",............."description":
8f760 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 62 75 74 ."List.of.authors.that.contribut
8f780 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63 ed.to.the.package..This.is.typic
8f7a0 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f 74 20 74 ally.the.main.maintainers,.not.t
8f7c0 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 he.full.list.",............."ite
8f7e0 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 ms":.{................."type":."
8f800 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 object",................."additi
8f820 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 onalProperties":.false,.........
8f840 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ........"properties":.{.........
8f860 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ............"name":.{...........
8f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a .............."type":."string",.
8f8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 ........................"descrip
8f8c0 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e tion":."Full.name.of.the.author.
8f8e0 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 ",........................."requ
8f900 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ired":.true.....................
8f920 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 },....................."email":.
8f940 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 {........................."type"
8f960 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :."string",.....................
8f980 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 ...."description":."Email.addres
8f9a0 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 s.of.the.author.",..............
8f9c0 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 ..........."format":."email"....
8f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
8fa00 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ........"homepage":.{...........
8fa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a .............."type":."string",.
8fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 ........................"descrip
8fa60 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 74 tion":."Homepage.URL.for.the.aut
8fa80 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 hor.",........................."
8faa0 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 format":."uri"..................
8fac0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 ...},....................."role"
8fae0 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 :.{........................."typ
8fb00 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e":."string",...................
8fb20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 ......"description":."Author's.r
8fb40 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 ole.in.the.project."............
8fb60 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .........}.................}....
8fb80 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 .........}.........},........."r
8fba0 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 equire":.{............."type":."
8fbc0 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f object",............."descriptio
8fbe0 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e n":."This.is.a.hash.of.package.n
8fc00 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e ame.(keys).and.version.constrain
8fc20 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f ts.(values).that.are.required.to
8fc40 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .run.this.package.",............
8fc60 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 ."additionalProperties":.true...
8fc80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 ......},........."replace":.{...
8fca0 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 .........."type":."object",.....
8fcc0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 ........"description":."This.is.
8fce0 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e a.hash.of.package.name.(keys).an
8fd00 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 d.version.constraints.(values).t
8fd20 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 6b hat.can.be.replaced.by.this.pack
8fd40 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 age.",............."additionalPr
8fd60 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 operties":.true.........},......
8fd80 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ..."conflict":.{............."ty
8fda0 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 pe":."object",............."desc
8fdc0 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 ription":."This.is.a.hash.of.pac
8fde0 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e kage.name.(keys).and.version.con
8fe00 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 straints.(values).that.conflict.
8fe20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 with.this.package.",............
8fe40 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 ."additionalProperties":.true...
8fe60 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 ......},........."provide":.{...
8fe80 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 .........."type":."object",.....
8fea0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 ........"description":."This.is.
8fec0 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e a.hash.of.package.name.(keys).an
8fee0 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 d.version.constraints.(values).t
8ff00 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 hat.this.package.provides.in.add
8ff20 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a ition.to.this.package's.name.",.
8ff40 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 ............"additionalPropertie
8ff60 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 s":.true.........},........."req
8ff80 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a uire-dev":.{............."type":
8ffa0 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."object",............."descript
8ffc0 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 ion":."This.is.a.hash.of.package
8ffe0 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 .name.(keys).and.version.constra
90000 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 ints.(values).that.this.package.
90020 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 requires.for.developing.it.(test
90040 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 ing.tools.and.such).",..........
90060 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a ..."additionalProperties":.true.
90080 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a ........},........."suggest":.{.
900a0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 ............"type":."object",...
900c0 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 .........."description":."This.i
900e0 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 s.a.hash.of.package.name.(keys).
90100 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 and.descriptions.(values).that.t
90120 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 his.package.suggests.work.well.w
90140 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 ith.it.(this.will.be.suggested.t
90160 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e o.the.user.during.installation).
90180 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 ",............."additionalProper
901a0 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 ties":.true.........},........."
901c0 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 config":.{............."type":."
901e0 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f object",............."descriptio
90200 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 20 n":."Composer.options.",........
90220 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ....."properties":.{............
90240 20 20 20 20 20 22 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 ....."process-timeout":.{.......
90260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c .............."type":."integer",
90280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f ....................."descriptio
902a0 6e 22 3a 20 22 54 68 65 20 74 69 6d 65 6f 75 74 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 n":."The.timeout.in.seconds.for.
902c0 70 72 6f 63 65 73 73 20 65 78 65 63 75 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 process.executions,.defaults.to.
902e0 33 30 30 20 28 35 6d 69 6e 73 29 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 300.(5mins).".................},
90300 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 ................."use-include-pa
90320 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 th":.{....................."type
90340 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ":."boolean",...................
90360 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 43 .."description":."If.true,.the.C
90380 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 61 6c 73 6f 20 6c 6f 6f omposer.autoloader.will.also.loo
903a0 6b 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 20 74 68 65 20 50 48 50 20 69 6e 63 6c 75 64 65 k.for.classes.in.the.PHP.include
903c0 20 70 61 74 68 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 .path.".................},......
903e0 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 22 3a 20 ..........."preferred-install":.
90400 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 {....................."type":."s
90420 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 tring",....................."des
90440 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 69 6e 73 74 61 6c 6c 20 6d 65 74 68 6f 64 20 43 cription":."The.install.method.C
90460 6f 6d 70 6f 73 65 72 20 77 69 6c 6c 20 70 72 65 66 65 72 20 74 6f 20 75 73 65 2c 20 64 65 66 61 omposer.will.prefer.to.use,.defa
90480 75 6c 74 73 20 74 6f 20 61 75 74 6f 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 73 ults.to.auto.and.can.be.any.of.s
904a0 6f 75 72 63 65 2c 20 64 69 73 74 20 6f 72 20 61 75 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 ource,.dist.or.auto."...........
904c0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 6f 74 69 66 79 ......},................."notify
904e0 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -on-install":.{.................
90500 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 ...."type":."boolean",..........
90520 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f ..........."description":."Compo
90540 73 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 6e ser.allows.repositories.to.defin
90560 65 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 68 e.a.notification.URL,.so.that.th
90580 65 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b 61 ey.get.notified.whenever.a.packa
905a0 67 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 61 ge.from.that.repository.is.insta
905c0 6c 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 lled..This.option.allows.you.to.
905e0 64 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 73 disable.that.behaviour,.defaults
90600 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 .to.true.".................},...
90620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 .............."github-protocols"
90640 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
90660 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 "array",....................."de
90680 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 scription":."A.list.of.protocols
906a0 20 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 69 .to.use.for.github.com.clones,.i
906c0 6e 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b 5c n.priority.order,.defaults.to.[\
906e0 22 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c 0a "git\",.\"https\",.\"http\"].",.
90700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 ...................."items":.{..
90720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 ......................."type":."
90740 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 string".....................}...
90760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
90780 20 22 67 69 74 68 75 62 2d 6f 61 75 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ."github-oauth":.{..............
907a0 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 ......."type":."object",........
907c0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 ............."description":."A.h
907e0 61 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 3d 3e 20 67 69 74 68 75 62 20 41 50 49 ash.of.domain.name.=>.github.API
90800 20 6f 61 75 74 68 20 74 6f 6b 65 6e 73 2c 20 74 79 70 69 63 61 6c 6c 79 20 7b 5c 22 67 69 74 68 .oauth.tokens,.typically.{\"gith
90820 75 62 2e 63 6f 6d 5c 22 3a 5c 22 3c 74 6f 6b 65 6e 3e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 ub.com\":\"<token>\"}.",........
90840 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 ............."additionalProperti
90860 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 es":.true.................},....
90880 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 ............."vendor-dir":.{....
908a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
908c0 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
908e0 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 ion":."The.location.where.all.pa
90900 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 ckages.are.installed,.defaults.t
90920 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d o.\"vendor\".".................}
90940 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 ,................."bin-dir":.{..
90960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 ..................."type":."stri
90980 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ng",....................."descri
909a0 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 ption":."The.location.where.all.
909c0 62 69 6e 61 72 69 65 73 20 61 72 65 20 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f binaries.are.linked,.defaults.to
909e0 20 5c 22 76 65 6e 64 6f 72 2f 62 69 6e 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .\"vendor/bin\"."...............
90a00 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 64 69 72 22 ..},................."cache-dir"
90a20 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
90a40 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 "string",....................."d
90a60 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 escription":."The.location.where
90a80 20 61 6c 6c 20 63 61 63 68 65 73 20 61 72 65 20 6c 6f 63 61 74 65 64 2c 20 64 65 66 61 75 6c 74 .all.caches.are.located,.default
90aa0 73 20 74 6f 20 5c 22 7e 2f 2e 63 6f 6d 70 6f 73 65 72 2f 63 61 63 68 65 5c 22 20 6f 6e 20 2a 6e s.to.\"~/.composer/cache\".on.*n
90ac0 69 78 20 61 6e 64 20 5c 22 25 4c 4f 43 41 4c 41 50 50 44 41 54 41 25 5c 5c 43 6f 6d 70 6f 73 65 ix.and.\"%LOCALAPPDATA%\\Compose
90ae0 72 5c 22 20 6f 6e 20 77 69 6e 64 6f 77 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r\".on.windows."................
90b00 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 .},................."cache-files
90b20 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 -dir":.{....................."ty
90b40 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
90b60 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 ..."description":."The.location.
90b80 77 68 65 72 65 20 66 69 6c 65 73 20 28 7a 69 70 20 64 6f 77 6e 6c 6f 61 64 73 29 20 61 72 65 20 where.files.(zip.downloads).are.
90ba0 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 cached,.defaults.to.\"{$cache-di
90bc0 72 7d 2f 66 69 6c 65 73 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a r}/files\".".................},.
90be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 22 ................"cache-repo-dir"
90c00 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
90c20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 "string",....................."d
90c40 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 escription":."The.location.where
90c60 20 72 65 70 6f 20 28 67 69 74 2f 68 67 20 72 65 70 6f 20 63 6c 6f 6e 65 73 29 20 61 72 65 20 63 .repo.(git/hg.repo.clones).are.c
90c80 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 ached,.defaults.to.\"{$cache-dir
90ca0 7d 2f 72 65 70 6f 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 }/repo\".".................},...
90cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 76 63 73 2d 64 69 72 22 3a 20 7b .............."cache-vcs-dir":.{
90ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ....................."type":."st
90d00 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ring",....................."desc
90d20 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 76 63 ription":."The.location.where.vc
90d40 73 20 69 6e 66 6f 73 20 28 67 69 74 20 63 6c 6f 6e 65 73 2c 20 67 69 74 68 75 62 20 61 70 69 20 s.infos.(git.clones,.github.api.
90d60 63 61 6c 6c 73 2c 20 65 74 63 2e 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 76 63 73 20 72 65 70 calls,.etc..when.reading.vcs.rep
90d80 6f 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 os).are.cached,.defaults.to.\"{$
90da0 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 cache-dir}/vcs\"."..............
90dc0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 74 74 6c ...},................."cache-ttl
90de0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a ":.{....................."type":
90e00 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."integer",.....................
90e20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 63 61 63 68 "description":."The.default.cach
90e40 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 31 35 35 35 e.time-to-live,.defaults.to.1555
90e60 32 30 30 30 20 28 36 20 6d 6f 6e 74 68 73 29 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2000.(6.months)."...............
90e80 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 ..},................."cache-file
90ea0 73 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 s-ttl":.{....................."t
90ec0 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."integer",................
90ee0 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 74 ....."description":."The.cache.t
90f00 69 6d 65 2d 74 6f 2d 6c 69 76 65 20 66 6f 72 20 66 69 6c 65 73 2c 20 64 65 66 61 75 6c 74 73 20 ime-to-live.for.files,.defaults.
90f20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 63 61 63 68 65 2d 74 74 6c 2e 22 0a 20 20 20 20 to.the.value.of.cache-ttl.".....
90f40 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
90f60 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 cache-files-maxsize":.{.........
90f80 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 ............"type":.["string",."
90fa0 69 6e 74 65 67 65 72 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 integer"],....................."
90fc0 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 6d 61 78 20 73 69 7a description":."The.cache.max.siz
90fe0 65 20 66 6f 72 20 74 68 65 20 66 69 6c 65 73 20 63 61 63 68 65 2c 20 64 65 66 61 75 6c 74 73 20 e.for.the.files.cache,.defaults.
91000 74 6f 20 5c 22 33 30 30 4d 69 42 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 to.\"300MiB\".".................
91020 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 69 73 63 61 72 64 2d 63 68 61 6e },................."discard-chan
91040 67 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 ges":.{....................."typ
91060 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 e":.["string",."boolean"],......
91080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 ..............."description":."T
910a0 68 65 20 64 65 66 61 75 6c 74 20 73 74 79 6c 65 20 6f 66 20 68 61 6e 64 6c 69 6e 67 20 64 69 72 he.default.style.of.handling.dir
910c0 74 79 20 75 70 64 61 74 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 20 61 6e ty.updates,.defaults.to.false.an
910e0 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 5c d.can.be.any.of.true,.false.or.\
91100 22 73 74 61 73 68 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 "stash\".".................}....
91120 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 .........}.........},........."e
91140 78 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f xtra":.{............."type":.["o
91160 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 bject",."array"],............."d
91180 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 escription":."Arbitrary.extra.da
911a0 74 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 70 6c 75 67 69 6e 73 2c 20 ta.that.can.be.used.by.plugins,.
911c0 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d for.example,.package.of.type.com
911e0 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 6d 61 79 20 68 61 76 65 20 61 20 27 63 6c 61 73 73 27 20 poser-plugin.may.have.a.'class'.
91200 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 61 6e 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c 61 73 73 20 key.defining.an.installer.class.
91220 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 name.",............."additionalP
91240 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 roperties":.true.........},.....
91260 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ...."autoload":.{............."t
91280 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 ype":."object",............."des
912a0 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 cription":."Description.of.how.t
912c0 68 65 20 70 61 63 6b 61 67 65 20 63 61 6e 20 62 65 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 2c 0a he.package.can.be.autoloaded.",.
912e0 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 ............"properties":.{.....
91300 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ............"psr-0":.{..........
91320 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 ..........."type":."object",....
91340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
91360 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b "This.is.a.hash.of.namespaces.(k
91380 65 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 eys).and.the.directories.they.ca
913a0 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 n.be.found.into.(values,.can.be.
913c0 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 arrays.of.paths).by.the.autoload
913e0 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 er.",....................."addit
91400 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 ionalProperties":.true..........
91420 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 .......},................."class
91440 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 map":.{....................."typ
91460 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e":."array",....................
91480 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 ."description":."This.is.an.arra
914a0 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 63 6c y.of.directories.that.contain.cl
914c0 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6c 61 73 asses.to.be.included.in.the.clas
914e0 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 s-map.generation.process."......
91500 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 ...........},................."f
91520 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 iles":.{....................."ty
91540 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."array",...................
91560 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 .."description":."This.is.an.arr
91580 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 6c 77 61 79 73 20 72 65 71 75 ay.of.files.that.are.always.requ
915a0 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 22 0a 20 20 20 20 20 20 20 20 ired.on.every.request.".........
915c0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ........}.............}.........
915e0 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 },........."archive":.{.........
91600 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 ...."type":.["object"],.........
91620 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 ...."description":."Options.for.
91640 63 72 65 61 74 69 6e 67 20 70 61 63 6b 61 67 65 20 61 72 63 68 69 76 65 73 20 66 6f 72 20 64 69 creating.package.archives.for.di
91660 73 74 72 69 62 75 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 stribution.",............."prope
91680 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 63 6c 75 rties":.{................."exclu
916a0 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 de":.{....................."type
916c0 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ":."array",.....................
916e0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 61 74 74 65 72 "description":."A.list.of.patter
91700 6e 73 20 66 6f 72 20 70 61 74 68 73 20 74 6f 20 65 78 63 6c 75 64 65 20 6f 72 20 69 6e 63 6c 75 ns.for.paths.to.exclude.or.inclu
91720 64 65 20 69 66 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 6c 61 6d 61 74 69 de.if.prefixed.with.an.exclamati
91740 6f 6e 20 6d 61 72 6b 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 on.mark.".................}.....
91760 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 ........}.........},........."re
91780 70 6f 73 69 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 positories":.{............."type
917a0 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 ":.["object",."array"],.........
917c0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 61 64 64 ...."description":."A.set.of.add
917e0 69 74 69 6f 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 72 65 20 70 61 63 6b 61 itional.repositories.where.packa
91800 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ges.can.be.found.",.............
91820 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 "additionalProperties":.true....
91840 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 .....},........."minimum-stabili
91860 74 79 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 ty":.{............."type":.["str
91880 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ing"],............."description"
918a0 3a 20 22 54 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 74 68 65 20 70 61 63 :."The.minimum.stability.the.pac
918c0 6b 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 2d 61 62 kages.must.have.to.be.install-ab
918e0 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 64 65 76 2c 20 61 6c le..Possible.values.are:.dev,.al
91900 70 68 61 2c 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 0a 20 20 20 20 20 20 20 20 pha,.beta,.RC,.stable.".........
91920 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 7b 0a 20 20 },........."prefer-stable":.{...
91940 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 .........."type":.["boolean"],..
91960 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 73 65 ..........."description":."If.se
91980 74 20 74 6f 20 74 72 75 65 2c 20 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 69 6c 6c 20 t.to.true,.stable.packages.will.
919a0 62 65 20 70 72 65 66 65 72 65 64 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e be.prefered.to.dev.packages.when
919c0 20 70 6f 73 73 69 62 6c 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d 75 6d 2d 73 .possible,.even.if.the.minimum-s
919e0 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 tability.allows.unstable.package
91a00 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a s.".........},........."bin":.{.
91a20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 ............"type":.["array"],..
91a40 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 ..........."description":."A.set
91a60 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 .of.files.that.should.be.treated
91a80 20 61 73 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 .as.binaries.and.symlinked.into.
91aa0 62 69 6e 2d 64 69 72 20 28 66 72 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 bin-dir.(from.config).",........
91ac0 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."items":.{.................
91ae0 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 "type":."string".............}..
91b00 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 .......},........."include-path"
91b20 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 :.{............."type":.["array"
91b40 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 ],............."description":."D
91b60 45 50 52 45 43 41 54 45 44 3a 20 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 EPRECATED:.A.list.of.directories
91b80 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 .which.should.get.added.to.PHP's
91ba0 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 .include.path..This.is.only.pres
91bc0 65 6e 74 20 74 6f 20 73 75 70 70 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 ent.to.support.legacy.projects,.
91be0 61 6e 64 20 61 6c 6c 20 6e 65 77 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 and.all.new.code.should.preferab
91c00 6c 79 20 75 73 65 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ly.use.autoloading.",...........
91c20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 .."items":.{................."ty
91c40 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 pe":."string".............}.....
91c60 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 ....},........."scripts":.{.....
91c80 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 ........"type":.["object"],.....
91ca0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 ........"description":."Scripts.
91cc0 6c 69 73 74 65 6e 65 72 73 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 listeners.that.will.be.executed.
91ce0 62 65 66 6f 72 65 2f 61 66 74 65 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 before/after.some.events.",.....
91d00 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ........"properties":.{.........
91d20 20 20 20 20 20 20 20 20 22 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 ........"pre-install-cmd":.{....
91d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 ................."type":.["array
91d60 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ",."string"],...................
91d80 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 .."description":."Occurs.before.
91da0 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c the.install.command.is.executed,
91dc0 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 .contains.one.or.more.Class::met
91de0 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e hod.callables.or.shell.commands.
91e00 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
91e20 20 20 20 20 20 22 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 ....."post-install-cmd":.{......
91e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c ..............."type":.["array",
91e60 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."string"],.....................
91e80 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 "description":."Occurs.after.the
91ea0 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f .install.command.is.executed,.co
91ec0 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 ntains.one.or.more.Class::method
91ee0 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 .callables.or.shell.commands."..
91f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............},...............
91f20 20 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .."pre-update-cmd":.{...........
91f40 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 .........."type":.["array",."str
91f60 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ing"],....................."desc
91f80 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 75 70 64 ription":."Occurs.before.the.upd
91fa0 61 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e ate.command.is.executed,.contain
91fc0 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c s.one.or.more.Class::method.call
91fe0 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 ables.or.shell.commands.".......
92000 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f ..........},................."po
92020 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st-update-cmd":.{...............
92040 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 ......"type":.["array",."string"
92060 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ],....................."descript
92080 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 ion":."Occurs.after.the.update.c
920a0 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 ommand.is.executed,.contains.one
920c0 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 .or.more.Class::method.callables
920e0 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 .or.shell.commands."............
92100 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 73 74 61 .....},................."pre-sta
92120 74 75 73 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tus-cmd":.{.....................
92140 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 "type":.["array",."string"],....
92160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
92180 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e "Occurs.before.the.status.comman
921a0 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d d.is.executed,.contains.one.or.m
921c0 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 ore.Class::method.callables.or.s
921e0 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hell.commands.".................
92200 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 73 74 61 74 75 73 2d },................."post-status-
92220 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 cmd":.{....................."typ
92240 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 e":.["array",."string"],........
92260 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 ............."description":."Occ
92280 75 72 73 20 61 66 74 65 72 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 urs.after.the.status.command.is.
922a0 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 executed,.contains.one.or.more.C
922c0 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 lass::method.callables.or.shell.
922e0 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 commands.".................},...
92300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 .............."pre-package-insta
92320 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 ll":.{....................."type
92340 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 ":.["array",."string"],.........
92360 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 ............"description":."Occu
92380 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 rs.before.a.package.is.installed
923a0 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 ,.contains.one.or.more.Class::me
923c0 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 thod.callables.or.shell.commands
923e0 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 .".................},...........
92400 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a ......"post-package-install":.{.
92420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 ...................."type":.["ar
92440 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ray",."string"],................
92460 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 ....."description":."Occurs.afte
92480 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 r.a.package.is.installed,.contai
924a0 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c ns.one.or.more.Class::method.cal
924c0 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 lables.or.shell.commands."......
924e0 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 ...........},................."p
92500 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 re-package-update":.{...........
92520 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 .........."type":.["array",."str
92540 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ing"],....................."desc
92560 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 ription":."Occurs.before.a.packa
92580 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d ge.is.updated,.contains.one.or.m
925a0 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 ore.Class::method.callables.or.s
925c0 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hell.commands.".................
925e0 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 },................."post-package
92600 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -update":.{.....................
92620 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 "type":.["array",."string"],....
92640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
92660 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 "Occurs.after.a.package.is.updat
92680 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a ed,.contains.one.or.more.Class::
926a0 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e method.callables.or.shell.comman
926c0 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 ds.".................},.........
926e0 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a ........"pre-package-uninstall":
92700 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b .{....................."type":.[
92720 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "array",."string"],.............
92740 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 ........"description":."Occurs.b
92760 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 efore.a.package.has.been.uninsta
92780 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 lled,.contains.one.or.more.Class
927a0 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d ::method.callables.or.shell.comm
927c0 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 ands.".................},.......
927e0 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c .........."post-package-uninstal
92800 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 l":.{....................."type"
92820 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 :.["array",."string"],..........
92840 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 ..........."description":."Occur
92860 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 s.after.a.package.has.been.unins
92880 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 talled,.contains.one.or.more.Cla
928a0 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f ss::method.callables.or.shell.co
928c0 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 mmands.".................},.....
928e0 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a ............"pre-autoload-dump":
92900 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b .{....................."type":.[
92920 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 "array",."string"],.............
92940 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 ........"description":."Occurs.b
92960 65 66 6f 72 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 efore.the.autoloader.is.dumped,.
92980 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 contains.one.or.more.Class::meth
929a0 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 od.callables.or.shell.commands."
929c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
929e0 20 20 20 20 22 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 ...."post-autoload-dump":.{.....
92a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 ................"type":.["array"
92a20 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,."string"],....................
92a40 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 ."description":."Occurs.after.th
92a60 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 e.autoloader.is.dumped,.contains
92a80 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 .one.or.more.Class::method.calla
92aa0 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 bles.or.shell.commands."........
92ac0 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 .........},................."pos
92ae0 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 t-root-package-install":.{......
92b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c ..............."type":.["array",
92b20 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."string"],.....................
92b40 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 "description":."Occurs.after.the
92b60 20 72 6f 6f 74 2d 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 .root-package.is.installed,.cont
92b80 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 ains.one.or.more.Class::method.c
92ba0 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 allables.or.shell.commands."....
92bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............},.................
92be0 22 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 "post-create-project-cmd":.{....
92c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 ................."type":.["array
92c20 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ",."string"],...................
92c40 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 .."description":."Occurs.after.t
92c60 68 65 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 he.create-project.command.is.exe
92c80 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 cuted,.contains.one.or.more.Clas
92ca0 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d s::method.callables.or.shell.com
92cc0 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 mands.".................}.......
92ce0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 ......}.........},........."supp
92d00 6f 72 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a ort":.{............."type":."obj
92d20 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 ect",............."properties":.
92d40 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 {................."email":.{....
92d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
92d80 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
92da0 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 ion":."Email.address.for.support
92dc0 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 .",....................."format"
92de0 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 :."email".................},....
92e00 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 ............."issues":.{........
92e20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
92e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ..................."description"
92e60 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 2c 0a 20 :."URL.to.the.Issue.Tracker.",..
92e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 ..................."format":."ur
92ea0 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 i".................},...........
92ec0 20 20 20 20 20 20 22 66 6f 72 75 6d 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"forum":.{................
92ee0 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 ....."type":."string",..........
92f00 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 ..........."description":."URL.t
92f20 6f 20 74 68 65 20 46 6f 72 75 6d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o.the.Forum.",..................
92f40 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."format":."uri"..............
92f60 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a ...},................."wiki":.{.
92f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ...................."type":."str
92fa0 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ing",....................."descr
92fc0 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a 20 20 20 iption":."URL.to.the.Wiki.",....
92fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 ................."format":."uri"
93000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
93020 20 20 20 20 22 69 72 63 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."irc":.{....................
93040 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ."type":."string",..............
93060 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e ......."description":."IRC.chann
93080 65 6c 20 66 6f 72 20 73 75 70 70 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f el.for.support,.as.irc://server/
930a0 63 68 61 6e 6e 65 6c 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 channel.",....................."
930c0 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d format":."uri".................}
930e0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 ,................."source":.{...
93100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e .................."type":."strin
93120 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 g",....................."descrip
93140 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 tion":."URL.to.browse.or.downloa
93160 64 20 74 68 65 20 73 6f 75 72 63 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d.the.sources.",................
93180 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....."format":."uri"............
931a0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 .....}.............}.........}..
931c0 20 20 20 7d 0a 7d 0a 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 ...}.}.MZ......................@
931e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93200 00 00 00 e8 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 ...............!..L.!This.progra
93220 6d 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 m.cannot.be.run.in.DOS.mode....$
93240 00 00 00 00 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b a7 42 9e 32 df d7 9e 3a a7 42 9e 32 .........,.;.B.;.B.;.B.2...:.B.2
93260 df c1 9e 2d a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b ...-.B.2...9.B.2...?.B..a9.8.B.;
93280 a7 43 9e 08 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a a7 42 9e 32 df d3 9e 3a a7 42 9e 52 .C...B.2...:.B.2...:.B.2...:.B.R
932a0 69 63 68 3b a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 05 00 ac 4d 6f 4f 00 00 00 00 00 ich;.B.........PE..L....MoO.....
932c0 00 00 00 e0 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 00 00 00 38 13 00 00 00 10 00 00 00 .......................8........
932e0 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 .....@..........................
93300 60 00 00 00 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 00 `......?.....@..................
93320 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 00 00 00 00 40 00 00 20 06 00 00 00 ................"..P....@.......
93340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 01 00 00 00 21 00 00 1c 00 00 00 00 ................P..p....!.......
93360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00 40 00 00 00 00 .......................8!..@....
93380 00 00 00 00 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
933a0 00 00 00 00 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 10 00 00 00 0a 00 00 00 04 00 00 00 ........text....................
933c0 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 61 00 00 ce 09 00 00 00 20 00 00 00 ..............`.rdata...........
933e0 0a 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 64 61 74 61 00 00 00 90 ...................@..@.data....
93400 03 00 00 00 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 c0 2e ....0......................@....
93420 72 73 72 63 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 rsrc........@...................
93440 00 00 00 40 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 50 00 00 00 02 00 00 00 22 00 00 00 ...@..@.reloc.......P......."...
93460 00 00 00 00 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........@..B.................
93480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
934a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
934c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
934e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
935a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
935c0 00 00 00 00 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a f6 ff 15 08 20 40 00 83 65 d0 00 8b .......j$...@..x...j.....@..e...
935e0 f0 8d 45 d0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 ff 15 04 20 40 00 8d 4d d4 ff 15 58 ..E.PV....@..E....PV....@..M...X
93600 20 40 00 83 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c 20 40 00 59 59 ff 35 5c 20 40 00 8d .@..e...E.P.5H.@...L.@.YY.5\.@..
93620 45 d4 50 ff 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff 15 50 20 40 00 83 4d fc ff 8d 4d d4 E.P.5`.@...D.@.YY....P.@..M...M.
93640 ff 15 54 20 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 75 02 f3 c3 e9 ac 02 00 00 68 80 15 ..T.@.3..H....;..0@.u........h..
93660 40 00 e8 a3 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff 35 68 33 40 00 a3 34 30 40 00 68 24 @.......l3@...$40@..5h3@..40@.h$
93680 30 40 00 68 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 0@.h(0@.h.0@.....@.....00@...}.j
936a0 08 e8 b9 03 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 33 db 89 5d fc 64 a1 18 00 00 00 8b ......Y.j.h."@......3..].d......
936c0 70 04 89 5d e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b c3 74 19 3b c6 75 08 33 f6 46 89 75 p..]...3@.SVW..0.@.;.t.;.u.3.F.u
936e0 e4 eb 10 68 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c ...h......4.@...3.F.|3@.;.u.j..\
93700 03 00 00 59 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 00 68 f0 20 40 00 68 e4 20 40 00 e8 ...Y.;.|3@...u,.5|3@.h..@.h..@..
93720 a7 05 00 00 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 00 00 e9 dd 00 00 00 89 35 3c 30 40 ....YY..t..E................5<0@
93740 00 a1 7c 33 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 e8 6c 05 00 00 59 59 c7 05 7c 33 40 ..|3@.;.u.h..@.h..@..l...YY..|3@
93760 00 02 00 00 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d 8c 33 40 00 74 19 68 8c 33 40 00 e8 .....9].u.SW..8.@.9..3@.t.h.3@..
93780 83 04 00 00 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 24 30 40 00 8b 0d bc 20 40 00 89 01 ....Y..t.Sj.S...3@..$0@.....@...
937a0 ff 35 24 30 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 fe ff ff 83 c4 0c a3 38 30 40 00 39 .5$0@..5(0@..5.0@..........80@.9
937c0 1d 2c 30 40 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b 09 89 4d e0 50 51 e8 8e 03 00 00 59 .,0@.u7P....@..E......M.PQ.....Y
937e0 59 c3 8b 65 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 00 75 07 50 ff 15 68 20 40 00 39 1d Y..e..E..80@.3.9.,0@.u.P..h.@.9.
93800 3c 30 40 00 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 38 30 40 00 e8 fb 04 00 00 c3 b8 4d <0@.u.....@..E......80@........M
93820 5a 00 00 66 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 00 8d 80 00 00 40 00 81 38 50 45 00 Z..f9...@.t.3..M.<.@.....@..8PE.
93840 00 75 e9 0f b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 00 75 d5 83 b8 84 00 00 00 0e 76 cc .u...H.......t.......u........v.
93860 33 c9 39 88 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 3.9........xt.v.3.9..........j..
93880 2c 30 40 00 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 a3 84 33 40 00 a3 88 33 40 00 ff 15 ,0@...p.@.j...l.@.YY..3@...3@...
938a0 cc 20 40 00 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d 70 33 40 00 89 08 a1 a8 20 40 00 8b ..@...t3@.......@...p3@......@..
938c0 00 a3 78 33 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 40 00 00 75 0c 68 b5 17 40 00 ff 15 ..x3@..V.........=.0@..u.h..@...
938e0 ac 20 40 00 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a ff ff 15 b0 20 40 00 59 33 c0 c3 e8 ..@.Y.g....=.0@..u.j.....@.Y3...
93900 7b 04 00 00 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 a3 48 31 40 00 89 0d 44 31 40 00 89 {..........U....(....H1@...D1@..
93920 15 40 31 40 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 31 40 00 66 8c 15 60 31 40 00 66 8c .@1@...<1@..581@..=41@.f..`1@.f.
93940 0d 54 31 40 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 8c 25 28 31 40 00 66 8c 2d 24 31 40 .T1@.f..01@.f..,1@.f.%(1@.f.-$1@
93960 00 9c 8f 05 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 50 31 40 00 8d 45 08 a3 5c 31 40 00 ....X1@..E..L1@..E..P1@..E..\1@.
93980 8b 85 e0 fc ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 00 a3 4c 30 40 00 c7 05 40 30 40 00 .........0@......P1@..L0@...@0@.
939a0 09 04 00 c0 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 85 d8 fc ff ff a1 04 30 40 00 89 85 ......D0@.......0@.........0@...
939c0 dc fc ff ff ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 00 00 59 6a 00 ff 15 20 20 40 00 68 ........@...0@.j..?...Yj.....@.h
939e0 1c 21 40 00 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a 01 e8 1b 04 00 00 59 68 09 04 00 c0 .!@...$.@..=.0@..u.j......Yh....
93a00 ff 15 28 20 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec 8b 45 08 8b 00 81 38 63 73 6d e0 75 ..(.@.P..,.@.....U...E....8csm.u
93a20 2a 83 78 10 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 93 19 74 0e 3d 22 05 93 19 74 07 3d *.x..u$.@.=....t.=!...t.="...t.=
93a40 00 40 99 01 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 40 00 ff 15 20 20 40 00 33 c0 c3 ff .@..u......3.]...hH.@.....@.3...
93a60 25 a4 20 40 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 33 40 00 8b 35 8c 20 40 00 ff d6 59 %..@.j.h("@..b....5.3@..5..@...Y
93a80 89 45 e4 83 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 6a 08 e8 92 03 00 00 59 83 65 fc 00 .E....u..u.....@.Y.gj......Y.e..
93aa0 ff 35 88 33 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 .5.3@....E..5.3@...YY.E..E.P.E.P
93ac0 ff 75 08 8b 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 dc ff 75 e4 ff d6 a3 88 33 40 00 ff .u..5l.@...YP.U....E..u.....3@..
93ae0 75 e0 ff d6 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 09 00 00 00 8b 45 dc e8 18 02 00 00 u........3@..E...........E......
93b00 c3 6a 08 e8 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e ff ff ff f7 d8 1b c0 f7 d8 59 48 5d .j......Y...U...u..N.........YH]
93b20 c3 8b ff 56 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 ...V..!@...!@.W..;.s.....t......
93b40 3b fe 72 f1 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 ;.r._^...V.."@..."@.W..;.s.....t
93b60 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 ......;.r._^..%..@.......U...M..
93b80 4d 5a 00 00 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 50 45 00 00 75 ef 33 d2 b9 0b 01 00 MZ..f9.t.3.]..A<...8PE..u.3.....
93ba0 00 66 39 48 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 8b 45 08 8b .f9H......]..............U...E..
93bc0 48 3c 03 c8 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b H<....A.SV..q.3.W.D....v..}..H.;
93be0 f9 72 09 8b 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc .r..X...;.r.B..(;.r.3._^[]......
93c00 cc cc cc cc cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 65 17 40 00 64 a1 00 00 00 00 50 83 .........U..j.hH"@.he.@.d.....P.
93c20 ec 08 53 56 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 a3 00 00 00 00 89 65 e8 c7 45 fc 00 ..SVW..0@.1E.3.P.E.d......e..E..
93c40 00 00 00 68 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 8b 45 08 2d 00 00 40 00 50 68 00 00 ...h..@..*........tU.E.-..@.Ph..
93c60 40 00 e8 50 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f f7 d0 83 e0 01 c7 45 fc fe ff ff ff @..P........t;.@$.........E.....
93c80 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 .M.d......Y_^[..]..E.....3.=....
93ca0 0f 94 c2 8b c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b .......e..E.....3..M.d......Y_^[
93cc0 8b e5 5d c3 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 65 17 40 00 64 ff 35 00 00 00 00 8b ..]...%..@..%..@...he.@.d.5.....
93ce0 44 24 10 89 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 00 31 45 fc 33 c5 50 89 65 e8 ff 75 D$..l$..l$.+.SVW..0@.1E.3.P.e..u
93d00 f8 8b 45 fc c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 00 00 00 c3 8b 4d f0 64 89 0d 00 00 ..E..E......E..E.d.......M.d....
93d20 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 ff 75 10 ff 75 0c ff 75 08 68 87 10 ..Y__^[..]Q...U...u..u..u..u.h..
93d40 40 00 68 00 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 68 00 00 03 00 68 00 00 01 00 33 f6 @.h.0@.........]...Vh....h....3.
93d60 56 e8 d9 00 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 00 00 00 83 c4 14 5e c3 33 c0 c3 8b V..........t.VVVVV........^.3...
93d80 ff 55 8b ec 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 53 57 bf 4e e6 40 bb bb 00 00 ff ff .U.......0@..e...e..SW.N.@......
93da0 3b c7 74 0d 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 ;.t...t.....0@..`V.E.P..<.@..u.3
93dc0 75 f8 ff 15 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 14 20 40 00 33 f0 8d 45 f0 50 ff 15 u.....@.3.....@.3.....@.3..E.P..
93de0 18 20 40 00 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 ..@..E.3E.3.;.u..O.@.....u......
93e00 0b f0 89 35 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 c3 ff 25 74 20 40 00 ff 25 78 20 40 ...5.0@....5.0@.^_[...%t.@..%x.@
93e20 00 ff 25 7c 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff 25 90 20 40 00 ff 25 94 20 40 00 ff ..%|.@..%..@..%..@..%..@..%..@..
93e40 25 98 20 40 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d 44 24 0c 2b 64 24 0c 53 56 57 89 28 %..@..%..@.Pd.5.....D$.+d$.SVW.(
93e60 8b e8 a1 00 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff ff ff ff 8d 45 f4 64 a3 00 00 00 00 ....0@.3.P.E..u..E......E.d.....
93e80 c3 8b 4d f4 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 ..M.d......Y__^[..]Q..M.3.......
93ea0 dd ff ff ff 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a .....M..%T.@..T$..B..J.3.......J
93ec0 fc 33 c8 e8 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .3.......l"@..s.................
93ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93fc0 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 ........#...#...#...)..r)..b)..H
93fe0 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 )..4)...)...(...(...(...(...(...
94000 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 (...).......#...$...%...%...&..d
94020 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe &...&...$......('...'...'...'...
94040 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 '...(..((..6(...'..H(..Z(..t(...
94060 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 (...'...'...'...'...'..l'..^'..R
94080 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 00 '..F'..>'..>(..0'...'...).......
940a0 00 00 00 96 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a 14 40 00 00 00 00 00 00 00 00 00 00 .....@.........W.@...@..........
940c0 00 00 00 00 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 00 00 00 6c 00 00 00 80 21 00 00 80 ............MoO........l....!...
940e0 0f 00 00 40 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 61 74 69 6f 6e 00 00 00 00 00 00 48 ...@0@..0@.bad.allocation......H
94100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 40 00 f0 ............................0@..
94140 21 40 00 02 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 21 f6 cc eb 4c 5a 00 01 00 00 00 63 !@.....RSDS.......J.!...LZ.....c
94160 3a 5c 75 73 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e 74 73 5c 76 69 73 75 61 6c 20 73 74 :\users\seld\documents\visual.st
94180 75 64 69 6f 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 69 64 64 65 6e 69 6e 70 5c 52 65 6c udio.2010\Projects\hiddeninp\Rel
941a0 65 61 73 65 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 00 00 00 65 17 00 00 e6 18 00 00 00 ease\hiddeninp.pdb.....e........
941c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 00 00 00 d0 ff ff ff 00 00 00 00 fe ................................
941e0 ff ff ff 07 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 cc ff ff ff 00 00 00 00 fe .....@...@......................
94200 ff ff ff 00 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 d8 ff ff ff 00 00 00 00 fe .......:.@......................
94220 ff ff ff cb 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 05 93 19 01 00 00 00 64 22 40 00 00 .....@...@.......@.".......d"@..
94240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 22 00 00 00 00 00 00 00 ........................".......
94260 00 00 00 ec 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 00 00 00 f4 26 00 00 44 20 00 00 48 ....#......$#...........&..D...H
94280 23 00 00 00 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #...........(..h................
942a0 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 ........#...#...#...)..r)..b)..H
942c0 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 )..4)...)...(...(...(...(...(...
942e0 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 (...).......#...$...%...%...&..d
94300 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe &...&...$......('...'...'...'...
94320 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 '...(..((..6(...'..H(..Z(..t(...
94340 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 (...'...'...'...'...'..l'..^'..R
94360 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 95 '..F'..>'..>(..0'...'...).......
94380 01 47 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 .GetConsoleMode....SetConsoleMod
943a0 65 00 00 3b 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 e..;.GetStdHandle..KERNEL32.dll.
943c0 00 16 00 3f 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 ...??$?6DU?$char_traits@D@std@@V
943e0 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 31 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 ?$allocator@D@1@@std@@YAAAV?$bas
94400 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 ic_ostream@DU?$char_traits@D@std
94420 40 40 40 30 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f @@@0@AAV10@ABV?$basic_string@DU?
94440 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 $char_traits@D@std@@V?$allocator
94460 40 44 40 32 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 @D@2@@0@@Z...?cout@std@@3V?$basi
94480 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 c_ostream@DU?$char_traits@D@std@
944a0 40 40 31 40 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 69 73 74 @@1@A..J.?cin@std@@3V?$basic_ist
944c0 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 ream@DU?$char_traits@D@std@@@1@A
944e0 00 c2 00 3f 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 ...??$getline@DU?$char_traits@D@
94500 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 59 41 41 41 std@@V?$allocator@D@2@@std@@YAAA
94520 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 V?$basic_istream@DU?$char_traits
94540 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 3f 24 62 61 73 69 63 5f 73 74 72 69 @D@std@@@0@AAV10@AAV?$basic_stri
94560 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c ng@DU?$char_traits@D@std@@V?$all
94580 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f 3f 36 3f 24 62 61 73 69 63 5f 6f 73 ocator@D@2@@0@@Z...??6?$basic_os
945a0 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 73 74 tream@DU?$char_traits@D@std@@@st
945c0 64 40 40 51 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 40 41 41 56 30 31 40 40 5a 40 5a 00 d@@QAEAAV01@P6AAAV01@AAV01@@Z@Z.
945e0 00 5f 02 3f 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 ._.??1?$basic_string@DU?$char_tr
94600 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 aits@D@std@@V?$allocator@D@2@@st
94620 64 40 40 51 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 d@@QAE@XZ..{.??0?$basic_string@D
94640 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 U?$char_traits@D@std@@V?$allocat
94660 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 b3 07 3f 65 6e 64 6c 40 73 74 64 or@D@2@@std@@QAE@XZ....?endl@std
94680 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f @@YAAAV?$basic_ostream@DU?$char_
946a0 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 41 56 32 31 40 40 5a 00 00 4d 53 56 43 50 traits@D@std@@@1@AAV21@@Z..MSVCP
946c0 39 30 2e 64 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 90.dll..._amsg_exit....__getmain
946e0 61 72 67 73 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 69 74 00 66 00 5f 58 63 70 74 46 69 args.,._cexit..|._exit.f._XcptFi
94700 6c 74 65 72 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 74 65 6e 76 00 04 02 5f 69 6e 69 74 lter...exit....__initenv..._init
94720 74 65 72 6d 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c 01 5f 63 6f 6e 66 69 67 74 68 72 65 term..._initterm_e.<._configthre
94740 61 64 6c 6f 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 6d 61 74 68 65 72 72 00 00 0b 01 5f adlocale...__setusermatherr...._
94760 61 64 6a 75 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f adjust_fdiv....__p__commode...._
94780 5f 70 5f 5f 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 e0 00 5f _p__fmode..j._encode_pointer..._
947a0 5f 73 65 74 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 74 5f 64 65 62 75 67 67 65 72 5f 68 _set_app_type..K._crt_debugger_h
947c0 6f 6f 6b 00 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 41 58 58 5a 00 4d 53 56 43 52 39 30 ook..C.?terminate@@YAXXZ.MSVCR90
947e0 2e 64 6c 6c 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 6c 6c 6f 6e 65 78 69 74 00 76 02 5f .dll..._unlock...__dllonexit.v._
94800 6c 6f 63 6b 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 63 6f 64 65 5f 70 6f 69 6e 74 65 72 lock..._onexit.`._decode_pointer
94820 00 73 01 5f 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e .s._except_handler4_common..._in
94840 76 6f 6b 65 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 72 6f 6c 66 70 5f 73 00 00 bd 02 49 voke_watson..?._controlfp_s....I
94860 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 04 53 6c 65 65 70 00 ba 02 49 6e 74 nterlockedExchange.!.Sleep...Int
94880 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 6e 67 65 00 00 2d 04 54 65 72 6d 69 erlockedCompareExchange..-.Termi
948a0 6e 61 74 65 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 nateProcess....GetCurrentProcess
948c0 00 3e 04 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 00 15 04 53 .>.UnhandledExceptionFilter....S
948e0 65 74 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 d1 02 49 73 44 etUnhandledExceptionFilter...IsD
94900 65 62 75 67 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 72 79 50 65 72 66 6f 72 6d 61 6e 63 ebuggerPresent.T.QueryPerformanc
94920 65 43 6f 75 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f 75 6e 74 00 00 ad 01 47 65 74 43 75 eCounter.f.GetTickCount....GetCu
94940 72 72 65 6e 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 rrentThreadId....GetCurrentProce
94960 73 73 49 64 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d 65 00 73 ssId.O.GetSystemTimeAsFileTime.s
94980 00 5f 5f 43 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 00 00 00 00 00 00 00 00 00 00 00 00 .__CxxFrameHandler3.............
949a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
949c0 00 00 00 00 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ff ff ff fe ff ff ff 01 00 00 00 24 .......N.@....D................$
949e0 21 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 !@..............................
94a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 02 00 10 00 00 00 20 00 00 80 18 ................................
94be0 00 00 00 38 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 50 00 00 80 00 ...8.......................P....
94c00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 00 00 80 00 00 00 00 00 00 00 00 04 ...................h............
94c20 00 00 00 00 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 ................................
94c40 04 00 00 90 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 00 00 00 c8 43 00 00 56 02 00 00 e4 ........@..(............C..V....
94c60 04 00 00 00 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 00 45 00 52 00 53 00 49 00 4f 00 4e .......(.4...V.S._.V.E.R.S.I.O.N
94c80 00 5f 00 49 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 00 01 00 00 00 01 00 00 00 00 00 00 ._.I.N.F.O......................
94ca0 00 01 00 00 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94cc0 00 00 00 86 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 00 46 00 69 00 6c 00 65 00 49 00 6e .........S.t.r.i.n.g.F.i.l.e.I.n
94ce0 00 66 00 6f 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 00 00 00 ca .f.o...b.....0.4.0.9.0.4.b.0....
94d00 00 51 00 01 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 69 00 6f .Q...F.i.l.e.D.e.s.c.r.i.p.t.i.o
94d20 00 6e 00 00 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 00 72 00 6f 00 6d 00 20 00 73 00 74 .n.....R.e.a.d.s...f.r.o.m...s.t
94d40 00 64 00 69 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 00 74 00 20 00 6c 00 65 00 61 00 6b .d.i.n...w.i.t.h.o.u.t...l.e.a.k
94d60 00 69 00 6e 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 00 6f 00 20 00 74 00 68 00 65 00 20 .i.n.g...i.n.f.o...t.o...t.h.e..
94d80 00 74 00 65 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 00 6e 00 64 00 20 00 6f 00 75 00 74 .t.e.r.m.i.n.a.l...a.n.d...o.u.t
94da0 00 70 00 75 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 00 74 00 6f 00 20 00 73 00 74 00 64 .p.u.t.s...b.a.c.k...t.o...s.t.d
94dc0 00 6f 00 75 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 00 6c 00 65 00 56 00 65 00 72 00 73 .o.u.t.....6.....F.i.l.e.V.e.r.s
94de0 00 69 00 6f 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 .i.o.n.....1.,...0.,...0.,...0..
94e00 00 00 00 38 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e 00 61 00 6c 00 4e 00 61 00 6d 00 65 ...8.....I.n.t.e.r.n.a.l.N.a.m.e
94e20 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 00 00 50 00 16 00 01 ...h.i.d.d.e.n.i.n.p.u.t...P....
94e40 00 4c 00 65 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 4a .L.e.g.a.l.C.o.p.y.r.i.g.h.t...J
94e60 00 6f 00 72 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 00 61 00 6e 00 6f 00 20 00 2d 00 20 .o.r.d.i...B.o.g.g.i.a.n.o...-..
94e80 00 32 00 30 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 00 69 00 67 00 69 00 6e 00 61 00 6c .2.0.1.2...H.....O.r.i.g.i.n.a.l
94ea0 00 46 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 .F.i.l.e.n.a.m.e...h.i.d.d.e.n.i
94ec0 00 6e 00 70 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a 00 0d 00 01 00 50 00 72 00 6f 00 64 .n.p.u.t...e.x.e...:.....P.r.o.d
94ee0 00 75 00 63 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 00 69 00 64 00 64 00 65 00 6e 00 20 .u.c.t.N.a.m.e.....H.i.d.d.e.n..
94f00 00 49 00 6e 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 .I.n.p.u.t.....:.....P.r.o.d.u.c
94f20 00 74 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 .t.V.e.r.s.i.o.n...1.,...0.,...0
94f40 00 2c 00 20 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6c 00 65 00 49 .,...0.....D.....V.a.r.F.i.l.e.I
94f60 00 6e 00 66 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6e 00 73 00 6c 00 61 00 74 .n.f.o.....$.....T.r.a.n.s.l.a.t
94f80 00 69 00 6f 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 6d 62 6c 79 20 78 6d 6c 6e 73 3d 22 .i.o.n.........<assembly.xmlns="
94fa0 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 31 urn:schemas-microsoft-com:asm.v1
94fc0 22 20 6d 61 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 ".manifestVersion="1.0">....<tru
94fe0 73 74 49 6e 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 stInfo.xmlns="urn:schemas-micros
95000 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 33 22 3e 0d 0a 20 20 20 20 3c 73 65 63 75 72 69 74 79 3e oft-com:asm.v3">......<security>
95020 0d 0a 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 ........<requestedPrivileges>...
95040 20 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 20 .......<requestedExecutionLevel.
95060 6c 65 76 65 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 41 63 63 65 73 73 3d 22 66 61 6c 73 level="asInvoker".uiAccess="fals
95080 65 22 3e 3c 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 e"></requestedExecutionLevel>...
950a0 20 20 20 20 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 .....</requestedPrivileges>.....
950c0 20 3c 2f 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 .</security>....</trustInfo>....
950e0 3c 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 65 70 65 6e 64 65 6e 74 41 73 73 65 <dependency>......<dependentAsse
95100 6d 62 6c 79 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 20 74 mbly>........<assemblyIdentity.t
95120 79 70 65 3d 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 63 72 6f 73 6f 66 74 2e 56 43 39 30 ype="win32".name="Microsoft.VC90
95140 2e 43 52 54 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 31 30 32 32 2e 38 22 20 70 72 6f 63 .CRT".version="9.0.21022.8".proc
95160 65 73 73 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 38 36 22 20 70 75 62 6c 69 63 4b 65 essorArchitecture="x86".publicKe
95180 79 54 6f 6b 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 38 65 33 62 22 3e 3c 2f 61 73 73 65 yToken="1fc8b3b9a1e18e3b"></asse
951a0 6d 62 6c 79 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 2f 64 65 70 65 6e 64 65 6e 74 41 73 mblyIdentity>......</dependentAs
951c0 73 65 6d 62 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 sembly>....</dependency>..</asse
951e0 6d 62 6c 79 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 mbly>PAPADDINGXXPADDINGPADDINGXX
95200 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95220 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95240 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95260 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95280 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
952a0 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
952c0 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
952e0 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95300 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95320 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95340 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95360 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
95380 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
953a0 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 PADDINGPADDINGXXPADDINGPADDINGXX
953c0 50 41 44 44 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 30 2f 30 38 30 46 30 4c 30 54 30 5e PADDING....@....0.0!0/080F0L0T0^
953e0 30 64 30 6e 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 0d0n0{0.0.0.0.0.0.0.0.0.0.0.0.0.
95400 30 08 31 23 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 31 89 31 96 31 a7 31 ad 31 b4 31 c8 0.1#1-1@1J1O1T1v1{1.1.1.1.1.1.1.
95420 31 cd 31 d3 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 32 33 32 39 32 41 32 4d 32 5f 32 6a 1.1.1.1.1.1.1.1.2"2*23292A2M2_2j
95440 32 70 32 b9 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 32 f4 32 fb 32 0b 33 13 33 19 33 25 2p2.2.2.2.2.2.2.2.2.2.2.2.3.3.3%
95460 33 30 33 4e 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 33 88 33 8f 33 96 33 9d 33 a5 33 ad 303N3T3Z3`3f3l3s3z3.3.3.3.3.3.3.
95480 33 b5 33 c1 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 34 14 34 19 34 1f 34 25 34 3b 34 42 3.3.3.3.3.3.3.3.3.3.4.4.4.4%4;4B
954a0 34 8b 34 91 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 34 14 35 21 35 5e 35 63 35 84 35 89 4.4.4.4.4.4.4.4.4.4.4.5!5^5c5.5.
954c0 35 a8 35 48 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 5.5H6M6_6}6.6.6.7.7.7*7w7|7.7.7.
954e0 37 fd 37 05 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 38 68 38 6e 38 74 38 7a 38 80 38 9c 7.7.8.8.8=8E8P8V8\8b8h8n8t8z8.8.
95500 38 e2 38 02 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 30 1c 31 20 31 74 31 78 31 1c 32 20 8.8.9......$....0.0.0.1.1t1x1.2.
95520 32 40 32 5c 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 30 00 00 00 00 00 00 00 00 00 00 00 2@2\2`2h2t2.0.......0...........
95540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
955c0 00 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 .......<?php...........namespace
955e0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 .Symfony\Component\Process;..use
95600 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 .Symfony\Component\Process\Excep
95620 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tion\RuntimeException;..........
95640 0a 0a 0a 63 6c 61 73 73 20 50 68 70 50 72 6f 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 72 6f 63 ...class.PhpProcess.extends.Proc
95660 65 73 73 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b ess.{.private.$executableFinder;
95680 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 .............public.function.__c
956a0 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 onstruct($script,.$cwd.=.null,.a
956c0 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 rray.$env.=.array(),.$timeout.=.
956e0 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 60,.array.$options.=.array()).{.
95700 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 6e 75 6c 6c 2c 20 24 63 77 64 2c 20 parent::__construct(null,.$cwd,.
95720 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e $env,.$script,.$timeout,.$option
95740 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e s);..$this->executableFinder.=.n
95760 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a ew.PhpExecutableFinder();.}.....
95780 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 ..public.function.setPhpBinary($
957a0 70 68 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 php).{.$this->setCommandLine($ph
957c0 70 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 p);.}.....public.function.start(
957e0 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d $callback.=.null).{.if.(null.===
95800 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 20 7b 0a 69 66 20 28 .$this->getCommandLine()).{.if.(
95820 66 61 6c 73 65 20 3d 3d 3d 20 24 70 68 70 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 false.===.$php.=.$this->executab
95840 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 leFinder->find()).{.throw.new.Ru
95860 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 74 ntimeException('Unable.to.find.t
95880 68 65 20 50 48 50 20 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 he.PHP.executable.');.}.$this->s
958a0 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a etCommandLine($php);.}..parent::
958c0 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a start($callback);.}.}.<?php.....
958e0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
95900 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 65 63 75 74 61 62 t\Process;........class.Executab
95920 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 75 66 66 69 78 65 73 20 3d 20 61 leFinder.{.private.$suffixes.=.a
95940 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e 63 6d 64 27 2c 20 27 2e 63 rray('.exe',.'.bat',.'.cmd',.'.c
95960 6f 6d 27 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 om');.......public.function.setS
95980 75 66 66 69 78 65 73 28 61 72 72 61 79 20 24 73 75 66 66 69 78 65 73 29 0a 7b 0a 24 74 68 69 73 uffixes(array.$suffixes).{.$this
959a0 2d 3e 73 75 66 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ->suffixes.=.$suffixes;.}.......
959c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 73 75 66 66 69 public.function.addSuffix($suffi
959e0 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 75 66 66 69 78 x).{.$this->suffixes[].=.$suffix
95a00 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 ;.}...........public.function.fi
95a20 6e 64 28 24 6e 61 6d 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 nd($name,.$default.=.null,.array
95a40 20 24 65 78 74 72 61 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 69 6e 69 .$extraDirs.=.array()).{.if.(ini
95a60 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 61 72 63 68 50 _get('open_basedir')).{.$searchP
95a80 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 ath.=.explode(PATH_SEPARATOR,.ge
95aa0 74 65 6e 76 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 73 20 3d 20 61 tenv('open_basedir'));.$dirs.=.a
95ac0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 68 20 61 73 20 rray();.foreach.($searchPath.as.
95ae0 24 70 61 74 68 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 64 $path).{.if.(is_dir($path)).{.$d
95b00 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 69 6c 65 20 3d 20 irs[].=.$path;.}.else.{.$file.=.
95b20 73 74 72 5f 72 65 70 6c 61 63 65 28 64 69 72 6e 61 6d 65 28 24 70 61 74 68 29 2c 20 27 27 2c 20 str_replace(dirname($path),.'',.
95b40 24 70 61 74 68 29 3b 0a 69 66 20 28 24 66 69 6c 65 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 $path);.if.($file.==.$name.&&.is
95b60 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 _executable($path)).{.return.$pa
95b80 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 th;.}.}.}.}.else.{.$dirs.=.array
95ba0 5f 6d 65 72 67 65 28 0a 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 _merge(.explode(PATH_SEPARATOR,.
95bc0 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 getenv('PATH').?:.getenv('Path')
95be0 29 2c 0a 24 65 78 74 72 61 44 69 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 ),.$extraDirs.);.}..$suffixes.=.
95c00 61 72 72 61 79 28 27 27 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 array('');.if.(defined('PHP_WIND
95c20 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 68 45 78 74 20 OWS_VERSION_BUILD')).{.$pathExt.
95c40 3d 20 67 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 78 65 73 20 3d =.getenv('PATHEXT');.$suffixes.=
95c60 20 24 70 61 74 68 45 78 74 20 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 .$pathExt.?.explode(PATH_SEPARAT
95c80 4f 52 2c 20 24 70 61 74 68 45 78 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 3b OR,.$pathExt).:.$this->suffixes;
95ca0 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 75 66 66 69 78 .}.foreach.($suffixes.as.$suffix
95cc0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 ).{.foreach.($dirs.as.$dir).{.if
95ce0 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 43 54 4f 52 59 .(is_file($file.=.$dir.DIRECTORY
95d00 5f 53 45 50 41 52 41 54 4f 52 2e 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 26 20 28 64 65 _SEPARATOR.$name.$suffix).&&.(de
95d20 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
95d40 27 29 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 66 69 6c 65 29 29 29 20 7b 0a 72 ').||.is_executable($file))).{.r
95d60 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 eturn.$file;.}.}.}..return.$defa
95d80 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ult;.}.}.<?php...........namespa
95da0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 ce.Symfony\Component\Process;..u
95dc0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 se.Symfony\Component\Process\Exc
95de0 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b eption\InvalidArgumentException;
95e00 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 .use.Symfony\Component\Process\E
95e20 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d xception\LogicException;.use.Sym
95e40 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e fony\Component\Process\Exception
95e60 5c 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 \ProcessTimedOutException;.use.S
95e80 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 ymfony\Component\Process\Excepti
95ea0 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c on\RuntimeException;..........cl
95ec0 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 65 72 72 27 3b ass.Process.{.const.ERR.=.'err';
95ee0 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 54 55 .const.OUT.=.'out';..const.STATU
95f00 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f S_READY.=.'ready';.const.STATUS_
95f20 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 STARTED.=.'started';.const.STATU
95f40 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 3b 0a 0a 63 6f S_TERMINATED.=.'terminated';..co
95f60 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 20 3d 20 31 3b nst.STDIN.=.0;.const.STDOUT.=.1;
95f80 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 0a 20 63 6f 6e 73 74 20 54 49 4d 45 .const.STDERR.=.2;....const.TIME
95fa0 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 3d 20 30 2e 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 OUT_PRECISION.=.0.2;..private.$c
95fc0 61 6c 6c 62 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 70 allback;.private.$commandline;.p
95fe0 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a 70 72 69 76 61 rivate.$cwd;.private.$env;.priva
96000 74 65 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 74 69 6d 65 3b 0a 70 te.$stdin;.private.$starttime;.p
96020 72 69 76 61 74 65 20 24 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 rivate.$lastOutputTime;.private.
96040 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a $timeout;.private.$idleTimeout;.
96060 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 63 private.$options;.private.$exitc
96080 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a ode;.private.$fallbackExitcode;.
960a0 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 70 72 69 private.$processInformation;.pri
960c0 76 61 74 65 20 24 73 74 64 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 70 vate.$stdout;.private.$stderr;.p
960e0 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c rivate.$enhanceWindowsCompatibil
96100 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d ity;.private.$enhanceSigchildCom
96120 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 patibility;.private.$process;.pr
96140 69 76 61 74 65 20 24 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 ivate.$status.=.self::STATUS_REA
96160 44 59 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 DY;.private.$incrementalOutputOf
96180 66 73 65 74 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f fset;.private.$incrementalErrorO
961a0 75 74 70 75 74 4f 66 66 73 65 74 3b 0a 70 72 69 76 61 74 65 20 24 74 74 79 3b 0a 0a 70 72 69 76 utputOffset;.private.$tty;..priv
961c0 61 74 65 20 24 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 ate.$useFileHandles.=.false;.pri
961e0 76 61 74 65 20 24 70 72 6f 63 65 73 73 50 69 70 65 73 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 vate.$processPipes;..private.sta
96200 74 69 63 20 24 73 69 67 63 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 tic.$sigchild;.........public.st
96220 61 74 69 63 20 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f atic.$exitCodes.=.array(.0.=>.'O
96240 4b 27 2c 0a 31 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 K',.1.=>.'General.error',.2.=>.'
96260 4d 69 73 75 73 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 Misuse.of.shell.builtins',..126.
96280 3d 3e 20 27 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 =>.'Invoked.command.cannot.execu
962a0 74 65 27 2c 0a 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c te',.127.=>.'Command.not.found',
962c0 0a 31 32 38 20 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c .128.=>.'Invalid.exit.argument',
962e0 0a 0a 0a 20 31 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 ....129.=>.'Hangup',.130.=>.'Int
96300 65 72 72 75 70 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 errupt',.131.=>.'Quit.and.dump.c
96320 6f 72 65 27 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f ore',.132.=>.'Illegal.instructio
96340 6e 27 2c 0a 31 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 n',.133.=>.'Trace/breakpoint.tra
96360 70 27 2c 0a 31 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 p',.134.=>.'Process.aborted',.13
96380 35 20 3d 3e 20 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 5.=>.'Bus.error:."access.to.unde
963a0 66 69 6e 65 64 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 fined.portion.of.memory.object"'
963c0 2c 0a 31 33 36 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 ,.136.=>.'Floating.point.excepti
963e0 6f 6e 3a 20 22 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 on:."erroneous.arithmetic.operat
96400 69 6f 6e 22 27 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 ion"',.137.=>.'Kill.(terminate.i
96420 6d 6d 65 64 69 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e mmediately)',.138.=>.'User-defin
96440 65 64 20 31 27 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c ed.1',.139.=>.'Segmentation.viol
96460 61 74 69 6f 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c ation',.140.=>.'User-defined.2',
96480 0a 31 34 31 20 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f .141.=>.'Write.to.pipe.with.no.o
964a0 6e 65 20 72 65 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 ne.reading',.142.=>.'Signal.rais
964c0 65 64 20 62 79 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f ed.by.alarm',.143.=>.'Terminatio
964e0 6e 20 28 72 65 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 n.(request.to.terminate)',...145
96500 20 3d 3e 20 27 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 .=>.'Child.process.terminated,.s
96520 74 6f 70 70 65 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 topped.(or.continued*)',.146.=>.
96540 27 43 6f 6e 74 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 'Continue.if.stopped',.147.=>.'S
96560 74 6f 70 20 65 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 top.executing.temporarily',.148.
96580 3d 3e 20 27 54 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d =>.'Terminal.stop.signal',.149.=
965a0 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 >.'Background.process.attempting
965c0 20 74 6f 20 72 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d .to.read.from.tty.("in")',.150.=
965e0 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 >.'Background.process.attempting
96600 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d .to.write.to.tty.("out")',.151.=
96620 3e 20 27 55 72 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b >.'Urgent.data.available.on.sock
96640 65 74 27 2c 0a 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 et',.152.=>.'CPU.time.limit.exce
96660 65 64 65 64 27 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 eded',.153.=>.'File.size.limit.e
96680 78 63 65 65 64 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 xceeded',.154.=>.'Signal.raised.
966a0 62 79 20 74 69 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 by.timer.counting.virtual.time:.
966c0 22 76 69 72 74 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e "virtual.timer.expired"',.155.=>
966e0 20 27 50 72 6f 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 .'Profiling.timer.expired',...15
96700 37 20 3d 3e 20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 7.=>.'Pollable.event',...159.=>.
96720 27 42 61 64 20 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 'Bad.syscall',.);...............
96740 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f .public.function.__construct($co
96760 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 mmandline,.$cwd.=.null,.array.$e
96780 6e 76 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 64 69 6e 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f nv.=.null,.$stdin.=.null,.$timeo
967a0 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 ut.=.60,.array.$options.=.array(
967c0 29 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f )).{.if.(!function_exists('proc_
967e0 6f 70 65 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 open')).{.throw.new.RuntimeExcep
96800 74 69 6f 6e 28 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f tion('The.Process.class.relies.o
96820 6e 20 70 72 6f 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 n.proc_open,.which.is.not.availa
96840 62 6c 65 20 6f 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b ble.on.your.PHP.installation.');
96860 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e .}..$this->commandline.=.$comman
96880 64 6c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 0a 20 0a 20 0a dline;.$this->cwd.=.$cwd;.......
968a0 20 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 20 26 26 20 28 64 ...if.(null.===.$this->cwd.&&.(d
968c0 65 66 69 6e 65 64 28 27 5a 45 4e 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 29 20 7c 7c 20 64 65 efined('ZEND_THREAD_SAFE').||.de
968e0 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
96900 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 7d 0a '))).{.$this->cwd.=.getcwd();.}.
96920 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 6e 76 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 45 if.(null.!==.$env).{.$this->setE
96940 6e 76 28 24 65 6e 76 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 nv($env);.}.else.{.$this->env.=.
96960 6e 75 6c 6c 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 24 null;.}.$this->stdin.=.$stdin;.$
96980 74 68 69 73 2d 3e 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 74 68 69 this->setTimeout($timeout);.$thi
969a0 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 s->useFileHandles.=.defined('PHP
969c0 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 74 68 69 73 2d _WINDOWS_VERSION_BUILD');.$this-
969e0 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 >enhanceWindowsCompatibility.=.t
96a00 72 75 65 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 rue;.$this->enhanceSigchildCompa
96a20 74 69 62 69 6c 69 74 79 20 3d 20 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 tibility.=.!defined('PHP_WINDOWS
96a40 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 _VERSION_BUILD').&&.$this->isSig
96a60 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d childEnabled();.$this->options.=
96a80 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 .array_replace(array('suppress_e
96aa0 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d rrors'.=>.true,.'binary_pipes'.=
96ac0 3e 20 74 72 75 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 >.true),.$options);.}..public.fu
96ae0 6e 63 74 69 6f 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 nction.__destruct().{...$this->s
96b00 74 6f 70 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e top();.}..public.function.__clon
96b20 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b e().{.$this->resetProcessData();
96b40 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .}.....................public.fu
96b60 6e 63 74 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 nction.run($callback.=.null).{.$
96b80 74 68 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 this->start($callback);..return.
96ba0 24 74 68 69 73 2d 3e 77 61 69 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $this->wait();.}................
96bc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 .........public.function.start($
96be0 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 callback.=.null).{.if.($this->is
96c00 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 Running()).{.throw.new.RuntimeEx
96c20 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e ception('Process.is.already.runn
96c40 69 6e 67 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 ing');.}..$this->resetProcessDat
96c60 61 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6c a();.$this->starttime.=.$this->l
96c80 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b astOutputTime.=.microtime(true);
96ca0 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 .$this->callback.=.$this->buildC
96cc0 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 allback($callback);.$descriptors
96ce0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 24 63 6f .=.$this->getDescriptors();..$co
96d00 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a mmandline.=.$this->commandline;.
96d20 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
96d40 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f N_BUILD').&&.$this->enhanceWindo
96d60 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 wsCompatibility).{.$commandline.
96d80 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e =.'cmd./V:ON./E:ON./C."'.$comman
96da0 64 6c 69 6e 65 2e 27 22 27 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 dline.'"';.if.(!isset($this->opt
96dc0 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e ions['bypass_shell'])).{.$this->
96de0 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a options['bypass_shell'].=.true;.
96e00 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 }.}..$this->process.=.proc_open(
96e20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 $commandline,.$descriptors,.$thi
96e40 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 70 69 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 s->processPipes->pipes,.$this->c
96e60 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b wd,.$this->env,.$this->options);
96e80 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ..if.(!is_resource($this->proces
96ea0 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e s)).{.throw.new.RuntimeException
96ec0 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 ('Unable.to.launch.a.new.process
96ee0 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 .');.}.$this->status.=.self::STA
96f00 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 TUS_STARTED;..$this->processPipe
96f20 73 2d 3e 75 6e 62 6c 6f 63 6b 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 s->unblock();.$this->processPipe
96f40 73 2d 3e 77 72 69 74 65 28 66 61 6c 73 65 2c 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 3b 0a 24 s->write(false,.$this->stdin);.$
96f60 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 this->updateStatus(false);.$this
96f80 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->checkTimeout();.}.............
96fa0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 61 72 74 28 24 63 61 6c ....public.function.restart($cal
96fc0 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e lback.=.null).{.if.($this->isRun
96fe0 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 ning()).{.throw.new.RuntimeExcep
97000 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 tion('Process.is.already.running
97020 27 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 3b 0a 24 ');.}..$process.=.clone.$this;.$
97040 70 72 6f 63 65 73 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 process->start($callback);..retu
97060 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$process;.}................pu
97080 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e blic.function.wait($callback.=.n
970a0 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 ull).{.$this->updateStatus(false
970c0 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 74 68 );.if.(null.!==.$callback).{.$th
970e0 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 is->callback.=.$this->buildCallb
97100 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e ack($callback);.}.while.($this->
97120 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b processInformation['running']).{
97140 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 24 74 68 69 73 2d 3e 75 .$this->checkTimeout();.$this->u
97160 70 64 61 74 65 53 74 61 74 75 73 28 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 75 70 64 61 pdateStatus(true);.}.$this->upda
97180 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f teStatus(false);..if.($this->pro
971a0 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 69 cessInformation['signaled']).{.i
971c0 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b f.($this->isSigchildEnabled()).{
971e0 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 .throw.new.RuntimeException('The
97200 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d .process.has.been.signaled.');.}
97220 0a 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 ..throw.new.RuntimeException(spr
97240 69 6e 74 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 intf('The.process.has.been.signa
97260 6c 65 64 20 77 69 74 68 20 73 69 67 6e 61 6c 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d 3e 70 led.with.signal."%s".',.$this->p
97280 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 29 3b 0a rocessInformation['termsig']));.
972a0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a }..return.$this->exitcode;.}....
972c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 69 64 28 29 0a 7b 0a .....public.function.getPid().{.
972e0 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 if.($this->isSigchildEnabled()).
97300 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 {.throw.new.RuntimeException('Th
97320 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d is.PHP.has.been.compiled.with.--
97340 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 69 64 65 enable-sigchild..The.process.ide
97360 6e 74 69 66 69 65 72 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b ntifier.can.not.be.retrieved.');
97380 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a .}..$this->updateStatus(false);.
973a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3f 20 24 74 68 .return.$this->isRunning().?.$th
973c0 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 70 69 64 27 5d 20 3a 20 is->processInformation['pid'].:.
973e0 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 null;.}............public.functi
97400 6f 6e 20 73 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d on.signal($signal).{.if.(!$this-
97420 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 >isRunning()).{.throw.new.LogicE
97440 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 73 65 6e 64 20 73 69 67 6e 61 6c 20 6f 6e xception('Can.not.send.signal.on
97460 20 61 20 6e 6f 6e 20 72 75 6e 6e 69 6e 67 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 0a 69 66 .a.non.running.process.');.}..if
97480 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a .($this->isSigchildEnabled()).{.
974a0 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 throw.new.RuntimeException('This
974c0 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e .PHP.has.been.compiled.with.--en
974e0 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 63 61 6e 20 6e able-sigchild..The.process.can.n
97500 6f 74 20 62 65 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 ot.be.signaled.');.}..if.(true.!
97520 3d 3d 20 40 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ==.@proc_terminate($this->proces
97540 73 2c 20 24 73 69 67 6e 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 s,.$signal)).{.throw.new.Runtime
97560 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 73 Exception(sprintf('Error.while.s
97580 65 6e 64 69 6e 67 20 73 69 67 6e 61 6c 20 60 25 64 60 2e 27 2c 20 24 73 69 67 6e 61 6c 29 29 3b ending.signal.`%d`.',.$signal));
975a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .}..return.$this;.}.........publ
975c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d ic.function.getOutput().{.$this-
975e0 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 >readPipes(false);..return.$this
97600 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->stdout;.}..........public.func
97620 74 69 6f 6e 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 28 29 0a 7b 0a 24 64 tion.getIncrementalOutput().{.$d
97640 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 ata.=.$this->getOutput();..$late
97660 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d st.=.substr($data,.$this->increm
97680 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 entalOutputOffset);.$this->incre
976a0 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 mentalOutputOffset.=.strlen($dat
976c0 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 a);..return.$latest;.}.........p
976e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a ublic.function.getErrorOutput().
97700 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 {.$this->readPipes(false);..retu
97720 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$this->stderr;.}...........pu
97740 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f blic.function.getIncrementalErro
97760 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 rOutput().{.$data.=.$this->getEr
97780 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 rorOutput();..$latest.=.substr($
977a0 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 data,.$this->incrementalErrorOut
977c0 70 75 74 4f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 putOffset);.$this->incrementalEr
977e0 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b rorOutputOffset.=.strlen($data);
97800 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ..return.$latest;.}...........pu
97820 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 blic.function.getExitCode().{.if
97840 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 20 26 26 20 .($this->isSigchildEnabled().&&.
97860 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 !$this->enhanceSigchildCompatibi
97880 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 lity).{.throw.new.RuntimeExcepti
978a0 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 on('This.PHP.has.been.compiled.w
978c0 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 59 6f 75 20 6d 75 73 74 20 ith.--enable-sigchild..You.must.
978e0 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c use.setEnhanceSigchildCompatibil
97900 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 6f 64 27 29 3b 0a 7d 0a 0a 24 ity().to.use.this.method');.}..$
97920 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 this->updateStatus(false);..retu
97940 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$this->exitcode;.}...........
97960 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 ..public.function.getExitCodeTex
97980 74 28 29 0a 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 t().{.$exitcode.=.$this->getExit
979a0 43 6f 64 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 Code();..return.isset(self::$exi
979c0 74 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 tCodes[$exitcode]).?.self::$exit
979e0 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f Codes[$exitcode].:.'Unknown.erro
97a00 72 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 r';.}.........public.function.is
97a20 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 74 68 69 Successful().{.return.0.===.$thi
97a40 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->getExitCode();.}.............
97a60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 public.function.hasBeenSignaled(
97a80 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 ).{.if.($this->isSigchildEnabled
97aa0 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ()).{.throw.new.RuntimeException
97ac0 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 ('This.PHP.has.been.compiled.wit
97ae0 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c h.--enable-sigchild..Term.signal
97b00 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 .can.not.be.retrieved');.}..$thi
97b20 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 s->updateStatus(false);..return.
97b40 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 $this->processInformation['signa
97b60 6c 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 led'];.}.............public.func
97b80 74 69 6f 6e 20 67 65 74 54 65 72 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 tion.getTermSignal().{.if.($this
97ba0 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e ->isSigchildEnabled()).{.throw.n
97bc0 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 ew.RuntimeException('This.PHP.ha
97be0 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 s.been.compiled.with.--enable-si
97c00 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 gchild..Term.signal.can.not.be.r
97c20 65 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 etrieved');.}..$this->updateStat
97c40 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 us(false);..return.$this->proces
97c60 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a sInformation['termsig'];.}......
97c80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 .....public.function.hasBeenStop
97ca0 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 ped().{.$this->updateStatus(fals
97cc0 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d e);..return.$this->processInform
97ce0 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ation['stopped'];.}...........pu
97d00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a blic.function.getStopSignal().{.
97d20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 $this->updateStatus(false);..ret
97d40 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 urn.$this->processInformation['s
97d60 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f topsig'];.}.......public.functio
97d80 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 n.isRunning().{.if.(self::STATUS
97da0 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 _STARTED.!==.$this->status).{.re
97dc0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 turn.false;.}..$this->updateStat
97de0 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 us(false);..return.$this->proces
97e00 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a sInformation['running'];.}......
97e20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 74 61 72 74 65 64 28 29 0a 7b 0a 72 .public.function.isStarted().{.r
97e40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 21 3d 20 73 65 6c 66 3a 3a 53 54 41 eturn.$this->status.!=.self::STA
97e60 54 55 53 5f 52 45 41 44 59 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 TUS_READY;.}.......public.functi
97e80 6f 6e 20 69 73 54 65 72 6d 69 6e 61 74 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 on.isTerminated().{.$this->updat
97ea0 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 eStatus(false);..return.$this->s
97ec0 74 61 74 75 73 20 3d 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 tatus.==.self::STATUS_TERMINATED
97ee0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 ;.}.........public.function.getS
97f00 74 61 74 75 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 tatus().{.$this->updateStatus(fa
97f20 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 3b 0a 7d 0a 0a lse);..return.$this->status;.}..
97f40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 ..........public.function.stop($
97f60 74 69 6d 65 6f 75 74 20 3d 20 31 30 2c 20 24 73 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a timeout.=.10,.$signal.=.null).{.
97f80 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 $timeoutMicro.=.microtime(true).
97fa0 2b 20 24 74 69 6d 65 6f 75 74 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 +.$timeout;.if.($this->isRunning
97fc0 28 29 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 ()).{.proc_terminate($this->proc
97fe0 65 73 73 29 3b 0a 64 6f 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 20 77 68 69 6c 65 ess);.do.{.usleep(1000);.}.while
98000 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 6d 69 63 72 6f 74 69 6d .($this->isRunning().&&.microtim
98020 65 28 74 72 75 65 29 20 3c 20 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 29 3b 0a 0a 69 66 20 28 24 e(true).<.$timeoutMicro);..if.($
98040 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 53 this->isRunning().&&.!$this->isS
98060 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d igchildEnabled()).{.if.(null.!==
98080 20 24 73 69 67 6e 61 6c 20 7c 7c 20 64 65 66 69 6e 65 64 28 27 53 49 47 4b 49 4c 4c 27 29 29 20 .$signal.||.defined('SIGKILL')).
980a0 7b 0a 24 74 68 69 73 2d 3e 73 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 20 3f 3a 20 53 49 47 4b 49 {.$this->signal($signal.?:.SIGKI
980c0 4c 4c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 LL);.}.}.}..$this->updateStatus(
980e0 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d false);.if.($this->processInform
98100 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 ation['running']).{.$this->close
98120 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 ();.}..$this->status.=.self::STA
98140 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 TUS_TERMINATED;..return.$this->e
98160 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e xitcode;.}.......public.function
98180 20 61 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f .addOutput($line).{.$this->lastO
981a0 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 utputTime.=.microtime(true);.$th
981c0 69 73 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 is->stdout..=.$line;.}.......pub
981e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e lic.function.addErrorOutput($lin
98200 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 e).{.$this->lastOutputTime.=.mic
98220 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 rotime(true);.$this->stderr..=.$
98240 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 line;.}.......public.function.ge
98260 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 tCommandLine().{.return.$this->c
98280 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ommandline;.}.........public.fun
982a0 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e ction.setCommandLine($commandlin
982c0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 e).{.$this->commandline.=.$comma
982e0 6e 64 6c 69 6e 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ndline;..return.$this;.}.......p
98300 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 ublic.function.getTimeout().{.re
98320 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this->timeout;.}.......pub
98340 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a lic.function.getIdleTimeout().{.
98360 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a return.$this->idleTimeout;.}....
98380 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 .........public.function.setTime
983a0 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d out($timeout).{.$this->timeout.=
983c0 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 .$this->validateTimeout($timeout
983e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 );..return.$this;.}...........pu
98400 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 24 74 69 blic.function.setIdleTimeout($ti
98420 6d 65 6f 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 20 3d 20 24 74 meout).{.$this->idleTimeout.=.$t
98440 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a his->validateTimeout($timeout);.
98460 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
98480 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 74 79 28 24 74 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 function.setTty($tty).{.$this->t
984a0 74 79 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 74 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ty.=.(Boolean).$tty;..return.$th
984c0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 54 74 is;.}.......public.function.isTt
984e0 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a y().{.return.$this->tty;.}......
98500 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 .public.function.getWorkingDirec
98520 74 6f 72 79 28 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 tory().{...if.(null.===.$this->c
98540 77 64 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 67 65 74 63 77 64 28 29 20 3f 3a 20 6e 75 6c wd).{.....return.getcwd().?:.nul
98560 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 0a 0a 0a 0a l;.}..return.$this->cwd;.}......
98580 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 72 ...public.function.setWorkingDir
985a0 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 ectory($cwd).{.$this->cwd.=.$cwd
985c0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ;..return.$this;.}.......public.
985e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 function.getEnv().{.return.$this
98600 2d 3e 65 6e 76 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ->env;.}...............public.fu
98620 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 0a 20 24 65 nction.setEnv(array.$env).{...$e
98640 6e 76 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 65 6e 76 2c 20 66 75 6e 63 74 69 6f 6e nv.=.array_filter($env,.function
98660 20 28 24 76 61 6c 75 65 29 20 7b 20 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 .($value).{.if.(!is_array($value
98680 29 29 20 7b 20 72 65 74 75 72 6e 20 74 72 75 65 3b 20 7d 20 7d 29 3b 0a 0a 24 74 68 69 73 2d 3e )).{.return.true;.}.});..$this->
986a0 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 76 20 61 73 20 env.=.array();.foreach.($env.as.
986c0 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 28 62 69 $key.=>.$value).{.$this->env[(bi
986e0 6e 61 72 79 29 20 24 6b 65 79 5d 20 3d 20 28 62 69 6e 61 72 79 29 20 24 76 61 6c 75 65 3b 0a 7d nary).$key].=.(binary).$value;.}
98700 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ..return.$this;.}.......public.f
98720 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 64 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 unction.getStdin().{.return.$thi
98740 73 2d 3e 73 74 64 69 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s->stdin;.}.........public.funct
98760 69 6f 6e 20 73 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 ion.setStdin($stdin).{.$this->st
98780 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a din.=.$stdin;..return.$this;.}..
987a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 .....public.function.getOptions(
987c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->options;.}....
987e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 .....public.function.setOptions(
98800 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 array.$options).{.$this->options
98820 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a .=.$options;..return.$this;.}...
98840 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 ......public.function.getEnhance
98860 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 WindowsCompatibility().{.return.
98880 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 $this->enhanceWindowsCompatibili
988a0 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ty;.}.........public.function.se
988c0 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e tEnhanceWindowsCompatibility($en
988e0 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f hance).{.$this->enhanceWindowsCo
98900 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 mpatibility.=.(Boolean).$enhance
98920 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ;..return.$this;.}.......public.
98940 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 function.getEnhanceSigchildCompa
98960 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e tibility().{.return.$this->enhan
98980 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a ceSigchildCompatibility;.}......
989a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 .......public.function.setEnhanc
989c0 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 eSigchildCompatibility($enhance)
989e0 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 .{.$this->enhanceSigchildCompati
98a00 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 bility.=.(Boolean).$enhance;..re
98a20 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 turn.$this;.}..........public.fu
98a40 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 69 66 20 28 30 20 3c 20 nction.checkTimeout().{.if.(0.<.
98a60 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 $this->timeout.&&.$this->timeout
98a80 20 3c 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 .<.microtime(true).-.$this->star
98aa0 74 74 69 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 72 6f 77 20 ttime).{.$this->stop(0);..throw.
98ac0 6e 65 77 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 28 24 74 68 new.ProcessTimedOutException($th
98ae0 69 73 2c 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3a 3a 54 59 is,.ProcessTimedOutException::TY
98b00 50 45 5f 47 45 4e 45 52 41 4c 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3c 20 24 74 68 69 73 2d 3e 69 PE_GENERAL);.}..if.(0.<.$this->i
98b20 64 6c 65 54 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 dleTimeout.&&.$this->idleTimeout
98b40 20 3c 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 6c 61 73 74 .<.microtime(true).-.$this->last
98b60 4f 75 74 70 75 74 54 69 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 OutputTime).{.$this->stop(0);..t
98b80 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f hrow.new.ProcessTimedOutExceptio
98ba0 6e 28 24 74 68 69 73 2c 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f n($this,.ProcessTimedOutExceptio
98bc0 6e 3a 3a 54 59 50 45 5f 49 44 4c 45 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 n::TYPE_IDLE);.}.}.......private
98be0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a 24 74 68 .function.getDescriptors().{.$th
98c00 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 50 69 is->processPipes.=.new.ProcessPi
98c20 70 65 73 28 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 29 3b 0a 24 64 65 73 pes($this->useFileHandles);.$des
98c40 63 72 69 70 74 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e criptors.=.$this->processPipes->
98c60 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 getDescriptors();..if.(!$this->u
98c80 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 seFileHandles.&&.$this->enhanceS
98ca0 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 26 26 20 24 74 68 69 73 2d 3e 69 igchildCompatibility.&&.$this->i
98cc0 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 0a 20 24 64 65 73 63 72 69 70 sSigchildEnabled()).{...$descrip
98ce0 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 64 65 73 63 72 69 70 74 6f 72 73 2c tors.=.array_merge($descriptors,
98d00 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 29 3b 0a 0a 24 74 .array(array('pipe',.'w')));..$t
98d20 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 28 27 2e 24 74 68 69 73 2d 3e 63 6f his->commandline.=.'('.$this->co
98d40 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 63 6f 64 65 3d 24 mmandline.').3>/dev/null;.code=$
98d60 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e 26 33 3b 20 65 78 69 74 20 24 63 6f 64 65 27 3b 0a ?;.echo.$code.>&3;.exit.$code';.
98d80 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a }..return.$descriptors;.}.......
98da0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 61 6c .....protected.function.buildCal
98dc0 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 lback($callback).{.$that.=.$this
98de0 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 65 72 72 20 3d 20 73 65 6c 66 3a ;.$out.=.self::OUT;.$err.=.self:
98e00 3a 45 52 52 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 :ERR;.$callback.=.function.($typ
98e20 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c e,.$data).use.($that,.$callback,
98e40 20 24 6f 75 74 2c 20 24 65 72 72 29 20 7b 0a 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 .$out,.$err).{.if.($out.==.$type
98e60 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 ).{.$that->addOutput($data);.}.e
98e80 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 lse.{.$that->addErrorOutput($dat
98ea0 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b a);.}..if.(null.!==.$callback).{
98ec0 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 .call_user_func($callback,.$type
98ee0 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b ,.$data);.}.};..return.$callback
98f00 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 ;.}.......protected.function.upd
98f20 61 74 65 53 74 61 74 75 73 28 24 62 6c 6f 63 6b 69 6e 67 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a ateStatus($blocking).{.if.(self:
98f40 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 :STATUS_STARTED.!==.$this->statu
98f60 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 s).{.return;.}..$this->readPipes
98f80 28 24 62 6c 6f 63 6b 69 6e 67 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f ($blocking);..$this->processInfo
98fa0 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f 63 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d rmation.=.proc_get_status($this-
98fc0 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 >process);.$this->captureExitCod
98fe0 65 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 e();.if.(!$this->processInformat
99000 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 ion['running']).{.$this->close()
99020 3b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 ;.$this->status.=.self::STATUS_T
99040 45 52 4d 49 4e 41 54 45 44 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ERMINATED;.}.}.......protected.f
99060 75 6e 63 74 69 6f 6e 20 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 69 66 unction.isSigchildEnabled().{.if
99080 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 29 20 7b 0a 72 65 .(null.!==.self::$sigchild).{.re
990a0 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 turn.self::$sigchild;.}..ob_star
990c0 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 0a 72 65 74 t();.phpinfo(INFO_GENERAL);..ret
990e0 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 urn.self::$sigchild.=.false.!==.
99100 73 74 72 70 6f 73 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 2c 20 27 2d 2d 65 6e 61 62 6c 65 strpos(ob_get_clean(),.'--enable
99120 2d 73 69 67 63 68 69 6c 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 -sigchild');.}.........private.f
99140 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 unction.validateTimeout($timeout
99160 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 72 65 74 ).{.if.(null.===.$timeout).{.ret
99180 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 urn.null;.}..$timeout.=.(float).
991a0 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 $timeout;..if.($timeout.<.0).{.t
991c0 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f hrow.new.InvalidArgumentExceptio
991e0 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 n('The.timeout.value.must.be.a.v
99200 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 20 6e alid.positive.integer.or.float.n
99220 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a umber.');.}..return.$timeout;.}.
99240 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 69 70 65 73 ......private.function.readPipes
99260 28 24 62 6c 6f 63 6b 69 6e 67 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 ($blocking).{.foreach.($this->pr
99280 6f 63 65 73 73 50 69 70 65 73 2d 3e 72 65 61 64 28 24 62 6c 6f 63 6b 69 6e 67 29 20 61 73 20 24 ocessPipes->read($blocking).as.$
992a0 74 79 70 65 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 69 66 20 28 33 20 3d 3d 20 24 74 79 70 65 29 type.=>.$data).{.if.(3.==.$type)
992c0 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 28 69 6e .{.$this->fallbackExitcode.=.(in
992e0 74 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e t).$data;.}.else.{.call_user_fun
99300 63 28 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 3d 3d 3d 20 73 65 6c c($this->callback,.$type.===.sel
99320 66 3a 3a 53 54 44 4f 55 54 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 f::STDOUT.?.self::OUT.:.self::ER
99340 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e R,.$data);.}.}.}.....private.fun
99360 63 74 69 6f 6e 20 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 20 28 69 73 ction.captureExitCode().{.if.(is
99380 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 set($this->processInformation['e
993a0 78 69 74 63 6f 64 65 27 5d 29 20 26 26 20 2d 31 20 21 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 xitcode']).&&.-1.!=.$this->proce
993c0 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 7b 0a 24 74 68 ssInformation['exitcode']).{.$th
993e0 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 is->exitcode.=.$this->processInf
99400 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a ormation['exitcode'];.}.}.......
99420 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 24 65 78 69 .private.function.close().{.$exi
99440 74 63 6f 64 65 20 3d 20 2d 31 3b 0a 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 tcode.=.-1;..if.(is_resource($th
99460 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 0a 20 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 is->process)).{.....$this->proce
99480 73 73 50 69 70 65 73 2d 3e 63 6c 6f 73 65 55 6e 69 78 50 69 70 65 73 28 29 3b 0a 24 65 78 69 74 ssPipes->closeUnixPipes();.$exit
994a0 63 6f 64 65 20 3d 20 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 code.=.proc_close($this->process
994c0 29 3b 0a 7d 0a 0a 0a 20 0a 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 );.}......while.($this->processP
994e0 69 70 65 73 2d 3e 68 61 73 4f 70 65 6e 48 61 6e 64 6c 65 73 28 29 29 20 7b 0a 75 73 6c 65 65 70 ipes->hasOpenHandles()).{.usleep
99500 28 31 30 30 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 (100);.foreach.($this->processPi
99520 70 65 73 2d 3e 72 65 61 64 41 6e 64 43 6c 6f 73 65 48 61 6e 64 6c 65 73 28 74 72 75 65 29 20 61 pes->readAndCloseHandles(true).a
99540 73 20 24 74 79 70 65 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 69 66 20 28 33 20 3d 3d 20 24 74 79 s.$type.=>.$data).{.if.(3.==.$ty
99560 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 pe).{.$this->fallbackExitcode.=.
99580 28 69 6e 74 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f (int).$data;.}.else.{.call_user_
995a0 66 75 6e 63 28 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 3d 3d 3d 20 func($this->callback,.$type.===.
995c0 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a self::STDOUT.?.self::OUT.:.self:
995e0 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 :ERR,.$data);.}.}.}.$this->proce
99600 73 73 50 69 70 65 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f ssPipes->close();..$this->exitco
99620 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 de.=.$this->exitcode.!==.null.?.
99640 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3a 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 65 78 69 $this->exitcode.:.-1;.$this->exi
99660 74 63 6f 64 65 20 3d 20 2d 31 20 21 3d 20 24 65 78 69 74 63 6f 64 65 20 3f 20 24 65 78 69 74 63 tcode.=.-1.!=.$exitcode.?.$exitc
99680 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 0a 69 66 20 28 2d 31 20 3d ode.:.$this->exitcode;..if.(-1.=
996a0 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 =.$this->exitcode.&&.null.!==.$t
996c0 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e his->fallbackExitcode).{.$this->
996e0 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f exitcode.=.$this->fallbackExitco
99700 64 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 2d 31 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 de;.}.elseif.(-1.===.$this->exit
99720 63 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f code.&&.$this->processInformatio
99740 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 20 26 26 20 30 20 3c 20 24 74 68 69 73 2d 3e 70 72 6f 63 n['signaled'].&&.0.<.$this->proc
99760 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 20 7b 0a 0a 20 24 essInformation['termsig']).{...$
99780 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 31 32 38 20 2b 20 24 74 68 69 73 2d 3e 70 72 this->exitcode.=.128.+.$this->pr
997a0 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a ocessInformation['termsig'];.}..
997c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 return.$this->exitcode;.}.....pr
997e0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 ivate.function.resetProcessData(
99800 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 ).{.$this->starttime.=.null;.$th
99820 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 is->callback.=.null;.$this->exit
99840 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 code.=.null;.$this->fallbackExit
99860 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 code.=.null;.$this->processInfor
99880 6d 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 6e mation.=.null;.$this->stdout.=.n
998a0 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 ull;.$this->stderr.=.null;.$this
998c0 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 ->process.=.null;.$this->status.
998e0 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 =.self::STATUS_READY;.$this->inc
99900 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d rementalOutputOffset.=.0;.$this-
99920 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 >incrementalErrorOutputOffset.=.
99940 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 0;.}.}.<?php...........namespace
99960 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 .Symfony\Component\Process;..use
99980 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 .Symfony\Component\Process\Excep
999a0 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 tion\RuntimeException;.....class
999c0 20 50 72 6f 63 65 73 73 50 69 70 65 73 0a 7b 0a 0a 70 75 62 6c 69 63 20 24 70 69 70 65 73 20 3d .ProcessPipes.{..public.$pipes.=
999e0 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 6e 64 6c 65 73 20 .array();..private.$fileHandles.
99a00 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 42 79 74 65 73 20 3d =.array();..private.$readBytes.=
99a20 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 75 73 65 46 69 6c 65 73 3b 0a 0a 70 .array();..private.$useFiles;..p
99a40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 73 65 46 ublic.function.__construct($useF
99a60 69 6c 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 73 20 iles.=.false).{.$this->useFiles.
99a80 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 75 73 65 46 69 6c 65 73 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 =.(Boolean).$useFiles;..........
99aa0 0a 20 0a 20 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 73 29 20 7b 0a 24 ........if.($this->useFiles).{.$
99ac0 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 0a 50 72 6f 63 65 this->fileHandles.=.array(.Proce
99ae0 73 73 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 6d 70 66 69 6c 65 28 29 2c 0a 50 72 6f 63 65 73 73 ss::STDOUT.=>.tmpfile(),.Process
99b00 3a 3a 53 54 44 45 52 52 20 3d 3e 20 74 6d 70 66 69 6c 65 28 29 2c 0a 29 3b 0a 69 66 20 28 66 61 ::STDERR.=>.tmpfile(),.);.if.(fa
99b20 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 lse.===.$this->fileHandles[Proce
99b40 73 73 3a 3a 53 54 44 4f 55 54 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 ss::STDOUT]).{.throw.new.Runtime
99b60 45 78 63 65 70 74 69 6f 6e 28 27 41 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 63 6f 75 6c Exception('A.temporary.file.coul
99b80 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 70 72 6f d.not.be.opened.to.write.the.pro
99ba0 63 65 73 73 20 6f 75 74 70 75 74 20 74 6f 2c 20 76 65 72 69 66 79 20 74 68 61 74 20 79 6f 75 72 cess.output.to,.verify.that.your
99bc0 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 .TEMP.environment.variable.is.wr
99be0 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d itable');.}.if.(false.===.$this-
99c00 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 5d 29 20 7b >fileHandles[Process::STDERR]).{
99c20 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 74 .throw.new.RuntimeException('A.t
99c40 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 emporary.file.could.not.be.opene
99c60 64 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 20 74 6f d.to.write.the.process.output.to
99c80 2c 20 76 65 72 69 66 79 20 74 68 61 74 20 79 6f 75 72 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e 6d ,.verify.that.your.TEMP.environm
99ca0 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 24 74 ent.variable.is.writable');.}.$t
99cc0 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 0a 50 72 6f 63 65 73 73 3a his->readBytes.=.array(.Process:
99ce0 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 20 3d 3e :STDOUT.=>.0,.Process::STDERR.=>
99d00 20 30 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 .0,.);.}.}..public.function.__de
99d20 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a struct().{.$this->close();.}....
99d40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 62 6c 6f 63 6b 28 29 0a 7b 0a 66 6f 72 .public.function.unblock().{.for
99d60 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 each.($this->pipes.as.$pipe).{.s
99d80 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 30 29 3b 0a 7d 0a tream_set_blocking($pipe,.0);.}.
99da0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a }.....public.function.close().{.
99dc0 24 74 68 69 73 2d 3e 63 6c 6f 73 65 55 6e 69 78 50 69 70 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 $this->closeUnixPipes();.foreach
99de0 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 61 73 20 24 6f 66 66 73 65 74 20 .($this->fileHandles.as.$offset.
99e00 3d 3e 20 24 68 61 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 7d =>.$handle).{.fclose($handle);.}
99e20 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d .$this->fileHandles.=.array();.}
99e40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 55 6e 69 78 .......public.function.closeUnix
99e60 50 69 70 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 Pipes().{.foreach.($this->pipes.
99e80 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 7d 0a 24 74 68 as.$pipe).{.fclose($pipe);.}.$th
99ea0 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 is->pipes.=.array();.}.......pub
99ec0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a lic.function.getDescriptors().{.
99ee0 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 if.($this->useFiles).{.return.ar
99f00 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 0a 24 74 68 69 73 2d 3e ray(.array('pipe',.'r'),.$this->
99f20 66 69 6c 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 5d 2c 0a 24 74 fileHandles[Process::STDOUT],.$t
99f40 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 his->fileHandles[Process::STDERR
99f60 5d 2c 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 ],.);.}..return.array(.array('pi
99f80 70 65 27 2c 20 27 72 27 29 2c 20 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c pe',.'r'),...array('pipe',.'w'),
99fa0 20 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 29 3b 0a 7d 0a 0a 0a ...array('pipe',.'w'),...);.}...
99fc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 6c 6f 63 ......public.function.read($bloc
99fe0 6b 69 6e 67 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 74 68 king).{.return.array_replace($th
9a000 69 73 2d 3e 72 65 61 64 53 74 72 65 61 6d 73 28 24 62 6c 6f 63 6b 69 6e 67 29 2c 20 24 74 68 69 is->readStreams($blocking),.$thi
9a020 73 2d 3e 72 65 61 64 46 69 6c 65 48 61 6e 64 6c 65 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->readFileHandles());.}........
9a040 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 43 6c 6f 73 65 48 61 6e .public.function.readAndCloseHan
9a060 64 6c 65 73 28 24 62 6c 6f 63 6b 69 6e 67 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 72 dles($blocking).{.return.array_r
9a080 65 70 6c 61 63 65 28 24 74 68 69 73 2d 3e 72 65 61 64 53 74 72 65 61 6d 73 28 24 62 6c 6f 63 6b eplace($this->readStreams($block
9a0a0 69 6e 67 2c 20 74 72 75 65 29 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 46 69 6c 65 48 61 6e 64 6c ing,.true),.$this->readFileHandl
9a0c0 65 73 28 74 72 75 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 es(true));.}.......public.functi
9a0e0 6f 6e 20 68 61 73 4f 70 65 6e 48 61 6e 64 6c 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d on.hasOpenHandles().{.if.($this-
9a100 3e 75 73 65 46 69 6c 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 >useFiles).{.return.(Boolean).$t
9a120 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 42 6f 6f his->fileHandles;.}..return.(Boo
9a140 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 lean).$this->pipes;.}........pub
9a160 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 73 lic.function.write($blocking,.$s
9a180 74 64 69 6e 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 64 69 6e 29 20 7b 0a 66 tdin).{.if.(null.===.$stdin).{.f
9a1a0 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 close($this->pipes[0]);.unset($t
9a1c0 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 72 69 his->pipes[0]);..return;.}..$wri
9a1e0 74 65 50 69 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 tePipes.=.array($this->pipes[0])
9a200 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 24 73 74 64 69 6e ;.unset($this->pipes[0]);.$stdin
9a220 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 73 74 64 69 6e 29 3b 0a 24 73 74 64 69 6e 4f 66 66 73 Len.=.strlen($stdin);.$stdinOffs
9a240 65 74 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 24 77 72 69 74 65 50 69 70 65 73 29 20 7b 0a 24 et.=.0;..while.($writePipes).{.$
9a260 72 20 3d 20 6e 75 6c 6c 3b 0a 24 77 20 3d 20 24 77 72 69 74 65 50 69 70 65 73 3b 0a 24 65 20 3d r.=.null;.$w.=.$writePipes;.$e.=
9a280 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d 20 40 73 74 72 65 .null;..if.(false.===.$n.=.@stre
9a2a0 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 24 62 6c 6f 63 6b 69 am_select($r,.$w,.$e,.0,.$blocki
9a2c0 6e 67 20 3f 20 63 65 69 6c 28 50 72 6f 63 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 ng.?.ceil(Process::TIMEOUT_PRECI
9a2e0 53 49 4f 4e 20 2a 20 31 45 36 29 20 3a 20 30 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d SION.*.1E6).:.0)).{...if.($this-
9a300 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 29 >hasSystemCallBeenInterrupted())
9a320 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 .{.continue;.}.break;.}....if.(0
9a340 20 3d 3d 3d 20 24 6e 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 29 20 .===.$n).{.continue;.}..if.($w).
9a360 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 74 65 28 24 77 72 69 74 65 50 69 70 65 73 5b {.$written.=.fwrite($writePipes[
9a380 30 5d 2c 20 28 62 69 6e 61 72 79 29 20 73 75 62 73 74 72 28 24 73 74 64 69 6e 2c 20 24 73 74 64 0],.(binary).substr($stdin,.$std
9a3a0 69 6e 4f 66 66 73 65 74 29 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 inOffset),.8192);.if.(false.!==.
9a3c0 24 77 72 69 74 74 65 6e 29 20 7b 0a 24 73 74 64 69 6e 4f 66 66 73 65 74 20 2b 3d 20 24 77 72 69 $written).{.$stdinOffset.+=.$wri
9a3e0 74 74 65 6e 3b 0a 7d 0a 69 66 20 28 24 73 74 64 69 6e 4f 66 66 73 65 74 20 3e 3d 20 24 73 74 64 tten;.}.if.($stdinOffset.>=.$std
9a400 69 6e 4c 65 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 29 3b inLen).{.fclose($writePipes[0]);
9a420 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a .$writePipes.=.null;.}.}.}.}....
9a440 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 46 69 6c 65 48 61 6e 64 ...private.function.readFileHand
9a460 6c 65 73 28 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 72 65 61 64 20 3d 20 61 72 les($close.=.false).{.$read.=.ar
9a480 72 61 79 28 29 3b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 3b ray();.$fh.=.$this->fileHandles;
9a4a0 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c 65 48 .foreach.($fh.as.$type.=>.$fileH
9a4c0 61 6e 64 6c 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 66 73 65 65 6b 28 24 66 69 6c 65 48 61 andle).{.if.(0.!==.fseek($fileHa
9a4e0 6e 64 6c 65 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 29 20 ndle,.$this->readBytes[$type])).
9a500 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 77 68 69 6c 65 20 {.continue;.}.$data.=.'';.while.
9a520 28 21 66 65 6f 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 (!feof($fileHandle)).{.if.(false
9a540 20 21 3d 3d 20 24 64 61 74 61 72 65 61 64 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 48 61 6e 64 .!==.$dataread.=.fread($fileHand
9a560 6c 65 2c 20 31 36 33 39 32 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 61 74 61 72 65 61 64 le,.16392)).{.$data..=.$dataread
9a580 3b 0a 7d 0a 7d 0a 69 66 20 28 30 20 3c 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 ;.}.}.if.(0.<.$length.=.strlen($
9a5a0 64 61 74 61 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d data)).{.$this->readBytes[$type]
9a5c0 20 2b 3d 20 24 6c 65 6e 67 74 68 3b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 24 64 61 74 .+=.$length;.$read[$type].=.$dat
9a5e0 61 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f a;.}..if.(true.===.$close.&&.feo
9a600 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e f($fileHandle)).{.fclose($this->
9a620 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 fileHandles[$type]);.unset($this
9a640 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ->fileHandles[$type]);.}.}..retu
9a660 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 rn.$read;.}.........private.func
9a680 74 69 6f 6e 20 72 65 61 64 53 74 72 65 61 6d 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f tion.readStreams($blocking,.$clo
9a6a0 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 72 65 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a se.=.false).{.$read.=.array();..
9a6c0 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 6e 75 6c 6c 3b 0a 24 65 $r.=.$this->pipes;.$w.=.null;.$e
9a6e0 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d 20 40 .=.null;....if.(false.===.$n.=.@
9a700 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 24 62 6c stream_select($r,.$w,.$e,.0,.$bl
9a720 6f 63 6b 69 6e 67 20 3f 20 63 65 69 6c 28 50 72 6f 63 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 ocking.?.ceil(Process::TIMEOUT_P
9a740 52 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 29 20 3a 20 30 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 RECISION.*.1E6).:.0)).{.....if.(
9a760 21 24 74 68 69 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 !$this->hasSystemCallBeenInterru
9a780 70 74 65 64 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 pted()).{.$this->pipes.=.array()
9a7a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d ;.}..return.$read;.}....if.(0.==
9a7c0 3d 20 24 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 =.$n).{.return.$read;.}..foreach
9a7e0 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 73 .($r.as.$pipe).{.$type.=.array_s
9a800 65 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 earch($pipe,.$this->pipes);.$dat
9a820 61 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 0a 69 66 20 28 73 74 72 a.=.fread($pipe,.8192);..if.(str
9a840 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d len($data).>.0).{.$read[$type].=
9a860 20 24 64 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 .$data;.}..if.(true.===.$close.&
9a880 26 20 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 &.feof($pipe)).{.fclose($this->p
9a8a0 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 ipes[$type]);.unset($this->pipes
9a8c0 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a [$type]);.}.}..return.$read;.}..
9a8e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 79 73 74 65 6d 43 .....private.function.hasSystemC
9a900 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 0a 7b 0a 24 6c 61 73 74 45 72 72 6f allBeenInterrupted().{.$lastErro
9a920 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 r.=.error_get_last();....return.
9a940 69 73 73 65 74 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 20 26 26 20 isset($lastError['message']).&&.
9a960 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 false.!==.stripos($lastError['me
9a980 73 73 61 67 65 27 5d 2c 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 73 79 73 74 65 6d 20 63 61 6c ssage'],.'interrupted.system.cal
9a9a0 6c 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 l');.}.}.<?php...........namespa
9a9c0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 ce.Symfony\Component\Process;..u
9a9e0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 se.Symfony\Component\Process\Exc
9aa00 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b eption\InvalidArgumentException;
9aa20 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 .use.Symfony\Component\Process\E
9aa40 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 xception\LogicException;.......c
9aa60 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 lass.ProcessBuilder.{.private.$a
9aa80 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 rguments;.private.$cwd;.private.
9aaa0 24 65 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 74 $env;.private.$stdin;.private.$t
9aac0 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 imeout;.private.$options;.privat
9aae0 65 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 20 3d e.$inheritEnv;.private.$prefix.=
9ab00 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e .array();..public.function.__con
9ab20 73 74 72 75 63 74 28 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 struct(array.$arguments.=.array(
9ab40 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e )).{.$this->arguments.=.$argumen
9ab60 74 73 3b 0a 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 36 30 3b 0a 24 74 68 69 73 2d ts;..$this->timeout.=.60;.$this-
9ab80 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d >options.=.array();.$this->env.=
9aba0 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 .array();.$this->inheritEnv.=.tr
9abc0 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 ue;.}..public.static.function.cr
9abe0 65 61 74 65 28 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 eate(array.$arguments.=.array())
9ac00 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 .{.return.new.static($arguments)
9ac20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 ;.}.........public.function.add(
9ac40 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 $argument).{.$this->arguments[].
9ac60 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a =.$argument;..return.$this;.}...
9ac80 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 69 ........public.function.setPrefi
9aca0 78 28 24 70 72 65 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 3d 20 69 73 5f x($prefix).{.$this->prefix.=.is_
9acc0 61 72 72 61 79 28 24 70 72 65 66 69 78 29 20 3f 20 24 70 72 65 66 69 78 20 3a 20 61 72 72 61 79 array($prefix).?.$prefix.:.array
9ace0 28 24 70 72 65 66 69 78 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ($prefix);..return.$this;.}.....
9ad00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 61 ..public.function.setArguments(a
9ad20 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 rray.$arguments).{.$this->argume
9ad40 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b nts.=.$arguments;..return.$this;
9ad60 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 .}..public.function.setWorkingDi
9ad80 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 rectory($cwd).{.$this->cwd.=.$cw
9ada0 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 d;..return.$this;.}..public.func
9adc0 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 tion.inheritEnvironmentVariables
9ade0 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e ($inheritEnv.=.true).{.$this->in
9ae00 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 heritEnv.=.$inheritEnv;..return.
9ae20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 $this;.}..public.function.setEnv
9ae40 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 ($name,.$value).{.$this->env[$na
9ae60 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a me].=.$value;..return.$this;.}..
9ae80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 public.function.setInput($stdin)
9aea0 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 .{.$this->stdin.=.$stdin;..retur
9aec0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$this;.}.............public.fu
9aee0 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 nction.setTimeout($timeout).{.if
9af00 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 74 69 .(null.===.$timeout).{.$this->ti
9af20 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a meout.=.null;..return.$this;.}..
9af40 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 $timeout.=.(float).$timeout;..if
9af60 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 .($timeout.<.0).{.throw.new.Inva
9af80 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 lidArgumentException('The.timeou
9afa0 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 t.value.must.be.a.valid.positive
9afc0 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a .integer.or.float.number.');.}..
9afe0 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 $this->timeout.=.$timeout;..retu
9b000 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 rn.$this;.}..public.function.set
9b020 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f Option($name,.$value).{.$this->o
9b040 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 ptions[$name].=.$value;..return.
9b060 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f $this;.}..public.function.getPro
9b080 63 65 73 73 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e cess().{.if.(0.===.count($this->
9b0a0 70 72 65 66 69 78 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 prefix).&&.0.===.count($this->ar
9b0c0 67 75 6d 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 guments)).{.throw.new.LogicExcep
9b0e0 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 tion('You.must.add().command.arg
9b100 75 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 uments.before.calling.getProcess
9b120 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 ().');.}..$options.=.$this->opti
9b140 6f 6e 73 3b 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 ons;..$arguments.=.array_merge($
9b160 74 68 69 73 2d 3e 70 72 65 66 69 78 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b this->prefix,.$this->arguments);
9b180 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 .$script.=.implode('.',.array_ma
9b1a0 70 28 61 72 72 61 79 28 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 2e 27 5c 5c 50 72 6f 63 65 73 73 p(array(__NAMESPACE__.'\\Process
9b1c0 55 74 69 6c 73 27 2c 20 27 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 27 29 2c 20 24 61 72 67 75 Utils',.'escapeArgument'),.$argu
9b1e0 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 ments));..if.($this->inheritEnv)
9b200 20 7b 0a 0a 20 24 65 6e 76 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 5f 45 4e 56 2c .{...$env.=.array_replace($_ENV,
9b220 20 24 5f 53 45 52 56 45 52 2c 20 24 74 68 69 73 2d 3e 65 6e 76 29 3b 20 0a 7d 20 65 6c 73 65 20 .$_SERVER,.$this->env);..}.else.
9b240 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e {.$env.=.$this->env;.}..return.n
9b260 65 77 20 50 72 6f 63 65 73 73 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 ew.Process($script,.$this->cwd,.
9b280 24 65 6e 76 2c 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f $env,.$this->stdin,.$this->timeo
9b2a0 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ut,.$options);.}.}.<?php........
9b2c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 ...namespace.Symfony\Component\P
9b2e0 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 55 74 69 rocess;.........class.ProcessUti
9b300 6c 73 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ls.{....private.function.__const
9b320 72 75 63 74 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ruct().{.}.........public.static
9b340 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 .function.escapeArgument($argume
9b360 6e 74 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 nt).{.........if.(defined('PHP_W
9b380 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 69 66 20 28 27 27 INDOWS_VERSION_BUILD')).{.if.(''
9b3a0 20 3d 3d 3d 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 .===.$argument).{.return.escapes
9b3c0 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 65 73 63 61 70 65 64 41 hellarg($argument);.}..$escapedA
9b3e0 72 67 75 6d 65 6e 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 rgument.=.'';.foreach.(preg_spli
9b400 74 28 27 2f 28 5b 25 22 5d 29 2f 69 27 2c 20 24 61 72 67 75 6d 65 6e 74 2c 20 2d 31 2c 20 50 52 t('/([%"])/i',.$argument,.-1,.PR
9b420 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 20 7c 20 50 52 45 47 5f 53 50 4c 49 54 5f 44 EG_SPLIT_NO_EMPTY.|.PREG_SPLIT_D
9b440 45 4c 49 4d 5f 43 41 50 54 55 52 45 29 20 61 73 20 24 70 61 72 74 29 20 7b 0a 69 66 20 28 27 22 ELIM_CAPTURE).as.$part).{.if.('"
9b460 27 20 3d 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 '.===.$part).{.$escapedArgument.
9b480 2e 3d 20 27 5c 5c 22 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 25 27 20 3d 3d 3d 20 24 70 61 72 .=.'\\"';.}.elseif.('%'.===.$par
9b4a0 74 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5e 25 27 3b 0a 7d t).{.$escapedArgument..=.'^%';.}
9b4c0 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 65 73 63 61 .else.{.$escapedArgument..=.esca
9b4e0 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 72 74 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 peshellarg($part);.}.}..return.$
9b500 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 73 63 61 70 escapedArgument;.}..return.escap
9b520 65 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a eshellarg($argument);.}.}.<?php.
9b540 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
9b560 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 onent\Process\Exception;..use.Sy
9b580 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b mfony\Component\Process\Process;
9b5a0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 .......class.ProcessTimedOutExce
9b5c0 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b ption.extends.RuntimeException.{
9b5e0 0a 63 6f 6e 73 74 20 54 59 50 45 5f 47 45 4e 45 52 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 .const.TYPE_GENERAL.=.1;.const.T
9b600 59 50 45 5f 49 44 4c 45 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b YPE_IDLE.=.2;..private.$process;
9b620 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 75 62 6c 69 63 20 66 .private.$timeoutType;..public.f
9b640 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 6f unction.__construct(Process.$pro
9b660 63 65 73 73 2c 20 24 74 69 6d 65 6f 75 74 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f cess,.$timeoutType).{.$this->pro
9b680 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 cess.=.$process;.$this->timeoutT
9b6a0 79 70 65 20 3d 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 ype.=.$timeoutType;..parent::__c
9b6c0 6f 6e 73 74 72 75 63 74 28 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 70 72 6f 63 65 73 73 20 22 onstruct(sprintf(.'The.process."
9b6e0 25 73 22 20 65 78 63 65 65 64 65 64 20 74 68 65 20 74 69 6d 65 6f 75 74 20 6f 66 20 25 73 20 73 %s".exceeded.the.timeout.of.%s.s
9b700 65 63 6f 6e 64 73 2e 27 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 econds.',.$process->getCommandLi
9b720 6e 65 28 29 2c 0a 24 74 68 69 73 2d 3e 67 65 74 45 78 63 65 65 64 65 64 54 69 6d 65 6f 75 74 28 ne(),.$this->getExceededTimeout(
9b740 29 0a 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 ).));.}..public.function.getProc
9b760 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d ess().{.return.$this->process;.}
9b780 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 47 65 6e 65 72 61 6c 54 69 6d 65 6f ..public.function.isGeneralTimeo
9b7a0 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 ut().{.return.$this->timeoutType
9b7c0 20 3d 3d 3d 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 45 4e 45 52 41 4c 3b 0a 7d 0a 0a 70 75 62 6c .===.self::TYPE_GENERAL;.}..publ
9b7e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 ic.function.isIdleTimeout().{.re
9b800 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 20 3d 3d 3d 20 73 65 6c 66 turn.$this->timeoutType.===.self
9b820 3a 3a 54 59 50 45 5f 49 44 4c 45 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ::TYPE_IDLE;.}..public.function.
9b840 67 65 74 45 78 63 65 65 64 65 64 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 getExceededTimeout().{.switch.($
9b860 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a this->timeoutType).{.case.self::
9b880 54 59 50 45 5f 47 45 4e 45 52 41 4c 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 TYPE_GENERAL:.return.$this->proc
9b8a0 65 73 73 2d 3e 67 65 74 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 54 ess->getTimeout();..case.self::T
9b8c0 59 50 45 5f 49 44 4c 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d YPE_IDLE:.return.$this->process-
9b8e0 3e 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 >getIdleTimeout();..default:.thr
9b900 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 ow.new.\LogicException(sprintf('
9b920 55 6e 6b 6e 6f 77 6e 20 74 69 6d 65 6f 75 74 20 74 79 70 65 20 22 25 64 22 2e 27 2c 20 24 74 68 Unknown.timeout.type."%d".',.$th
9b940 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a is->timeoutType));.}.}.}<?php...
9b960 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
9b980 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 ent\Process\Exception;.......int
9b9a0 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f erface.ExceptionInterface.{.}.<?
9b9c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
9b9e0 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a Component\Process\Exception;....
9ba00 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 ...class.RuntimeException.extend
9ba20 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 s.\RuntimeException.implements.E
9ba40 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a xceptionInterface.{.}.<?php.....
9ba60 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
9ba80 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 t\Process\Exception;.......class
9baa0 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 4c 6f 67 69 63 45 78 .LogicException.extends.\LogicEx
9bac0 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 ception.implements.ExceptionInte
9bae0 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 rface.{.}.<?php...........namesp
9bb00 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 ace.Symfony\Component\Process\Ex
9bb20 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ception;..use.Symfony\Component\
9bb40 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f Process\Process;.......class.Pro
9bb60 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 cessFailedException.extends.Runt
9bb80 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b imeException.{.private.$process;
9bba0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 ..public.function.__construct(Pr
9bbc0 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e ocess.$process).{.if.($process->
9bbe0 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 isSuccessful()).{.throw.new.Inva
9bc00 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 20 61 lidArgumentException('Expected.a
9bc20 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 74 68 65 20 67 69 76 65 6e 20 70 .failed.process,.but.the.given.p
9bc40 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 70 61 72 rocess.was.successful.');.}..par
9bc60 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 ent::__construct(.sprintf(.'The.
9bc80 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 66 61 69 6c 65 64 2e 27 2e 22 5c 6e 45 78 69 74 20 43 6f command."%s".failed.'."\nExit.Co
9bca0 64 65 3a 20 25 73 28 25 73 29 5c 6e 5c 6e 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d de:.%s(%s)\n\nOutput:\n=========
9bcc0 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 5c 6e 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 74 3a 5c 6e 3d 3d =======\n%s\n\nError.Output:\n==
9bce0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 22 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 ==============\n%s",.$process->g
9bd00 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 etCommandLine(),.$process->getEx
9bd20 69 74 43 6f 64 65 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 54 itCode(),.$process->getExitCodeT
9bd40 65 78 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 0a 24 70 ext(),.$process->getOutput(),.$p
9bd60 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 0a 29 3b 0a 0a 24 rocess->getErrorOutput().).);..$
9bd80 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 this->process.=.$process;.}..pub
9bda0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 lic.function.getProcess().{.retu
9bdc0 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a rn.$this->process;.}.}.<?php....
9bde0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
9be00 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 nt\Process\Exception;.......clas
9be20 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e s.InvalidArgumentException.exten
9be40 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 ds.\InvalidArgumentException.imp
9be60 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c lements.ExceptionInterface.{.}.<
9be80 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
9bea0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \Component\Process;........class
9bec0 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 .PhpExecutableFinder.{.private.$
9bee0 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 executableFinder;..public.functi
9bf00 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 on.__construct().{.$this->execut
9bf20 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 ableFinder.=.new.ExecutableFinde
9bf40 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e r();.}.......public.function.fin
9bf60 64 28 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 42 49 4e 41 52 59 27 d().{...if.(defined('PHP_BINARY'
9bf80 29 20 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 26 20 28 27 63 6c 69 27 20 3d 3d 3d 20 50 48 ).&&.PHP_BINARY.&&.('cli'.===.PH
9bfa0 50 5f 53 41 50 49 29 20 26 26 20 69 73 5f 66 69 6c 65 28 50 48 50 5f 42 49 4e 41 52 59 29 29 20 P_SAPI).&&.is_file(PHP_BINARY)).
9bfc0 7b 0a 72 65 74 75 72 6e 20 50 48 50 5f 42 49 4e 41 52 59 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 {.return.PHP_BINARY;.}..if.($php
9bfe0 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 41 54 48 27 29 29 20 7b 0a 69 66 20 28 21 69 73 .=.getenv('PHP_PATH')).{.if.(!is
9c000 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 _executable($php)).{.return.fals
9c020 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d e;.}..return.$php;.}..if.($php.=
9c040 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 45 41 52 5f 50 48 50 5f 42 49 4e 27 29 29 20 7b 0a 69 .getenv('PHP_PEAR_PHP_BIN')).{.i
9c060 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e f.(is_executable($php)).{.return
9c080 20 24 70 68 70 3b 0a 7d 0a 7d 0a 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 50 48 50 5f 42 49 .$php;.}.}..$dirs.=.array(PHP_BI
9c0a0 4e 44 49 52 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f NDIR);.if.(defined('PHP_WINDOWS_
9c0c0 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a VERSION_BUILD')).{.$dirs[].=.'C:
9c0e0 5c 78 61 6d 70 70 5c 70 68 70 5c 5c 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e \xampp\php\\';.}..return.$this->
9c100 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 61 executableFinder->find('php',.fa
9c120 6c 73 65 2c 20 24 64 69 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lse,.$dirs);.}.}.<?php..........
9c140 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c namespace.Symfony\Component\Yaml
9c160 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 ;..use.Symfony\Component\Yaml\Ex
9c180 63 65 70 74 69 6f 6e 5c 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ception\ParseException;.......cl
9c1a0 61 73 73 20 50 61 72 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 46 4f 4c 44 45 44 5f 53 43 41 4c 41 52 ass.Parser.{.const.FOLDED_SCALAR
9c1c0 5f 50 41 54 54 45 52 4e 20 3d 20 27 28 3f 50 3c 73 65 70 61 72 61 74 6f 72 3e 5c 7c 7c 3e 29 28 _PATTERN.=.'(?P<separator>\||>)(
9c1e0 3f 50 3c 6d 6f 64 69 66 69 65 72 73 3e 5c 2b 7c 5c 2d 7c 5c 64 2b 7c 5c 2b 5c 64 2b 7c 5c 2d 5c ?P<modifiers>\+|\-|\d+|\+\d+|\-\
9c200 64 2b 7c 5c 64 2b 5c 2b 7c 5c 64 2b 5c 2d 29 3f 28 3f 50 3c 63 6f 6d 6d 65 6e 74 73 3e 20 2b 23 d+|\d+\+|\d+\-)?(?P<comments>.+#
9c220 2e 2a 29 3f 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 70 72 69 .*)?';..private.$offset.=.0;.pri
9c240 76 61 74 65 20 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 vate.$lines.=.array();.private.$
9c260 63 75 72 72 65 6e 74 4c 69 6e 65 4e 62 20 3d 20 2d 31 3b 0a 70 72 69 76 61 74 65 20 24 63 75 72 currentLineNb.=.-1;.private.$cur
9c280 72 65 6e 74 4c 69 6e 65 20 3d 20 27 27 3b 0a 70 72 69 76 61 74 65 20 24 72 65 66 73 20 3d 20 61 rentLine.=.'';.private.$refs.=.a
9c2a0 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f rray();.......public.function.__
9c2c0 63 6f 6e 73 74 72 75 63 74 28 24 6f 66 66 73 65 74 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e construct($offset.=.0).{.$this->
9c2e0 6f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a offset.=.$offset;.}.............
9c300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 public.function.parse($value,.$e
9c320 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 xceptionOnInvalidType.=.false,.$
9c340 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e objectSupport.=.false).{.$this->
9c360 63 75 72 72 65 6e 74 4c 69 6e 65 4e 62 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 currentLineNb.=.-1;.$this->curre
9c380 6e 74 4c 69 6e 65 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6c 69 6e 65 73 20 3d 20 65 78 70 6c ntLine.=.'';.$this->lines.=.expl
9c3a0 6f 64 65 28 22 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 24 76 61 6c 75 65 29 ode("\n",.$this->cleanup($value)
9c3c0 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 64 65 74 65 );..if.(function_exists('mb_dete
9c3e0 63 74 5f 65 6e 63 6f 64 69 6e 67 27 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 6d 62 5f 64 65 ct_encoding').&&.false.===.mb_de
9c400 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 76 61 6c 75 65 2c 20 27 55 54 46 2d 38 27 2c 20 74 tect_encoding($value,.'UTF-8',.t
9c420 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e rue)).{.throw.new.ParseException
9c440 28 27 54 68 65 20 59 41 4d 4c 20 76 61 6c 75 65 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 ('The.YAML.value.does.not.appear
9c460 20 74 6f 20 62 65 20 76 61 6c 69 64 20 55 54 46 2d 38 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 .to.be.valid.UTF-8.');.}..if.(fu
9c480 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 nction_exists('mb_internal_encod
9c4a0 69 6e 67 27 29 20 26 26 20 28 28 69 6e 74 29 20 69 6e 69 5f 67 65 74 28 27 6d 62 73 74 72 69 6e ing').&&.((int).ini_get('mbstrin
9c4c0 67 2e 66 75 6e 63 5f 6f 76 65 72 6c 6f 61 64 27 29 29 20 26 20 32 29 20 7b 0a 24 6d 62 45 6e 63 g.func_overload')).&.2).{.$mbEnc
9c4e0 6f 64 69 6e 67 20 3d 20 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 29 3b 0a oding.=.mb_internal_encoding();.
9c500 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 27 55 54 46 2d 38 27 29 3b 0a 7d mb_internal_encoding('UTF-8');.}
9c520 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 74 65 78 74 20 3d 20 6e 75 ..$data.=.array();.$context.=.nu
9c540 6c 6c 3b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 ll;.while.($this->moveToNextLine
9c560 28 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d ()).{.if.($this->isCurrentLineEm
9c580 70 74 79 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 22 5c 74 22 pty()).{.continue;.}....if.("\t"
9c5a0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 5b 30 5d 29 20 7b 0a 74 68 .===.$this->currentLine[0]).{.th
9c5c0 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 59 41 4d 4c 20 66 row.new.ParseException('A.YAML.f
9c5e0 69 6c 65 20 63 61 6e 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 61 62 73 20 61 73 20 69 6e 64 65 6e ile.cannot.contain.tabs.as.inden
9c600 74 61 74 69 6f 6e 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c tation.',.$this->getRealCurrentL
9c620 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 ineNb().+.1,.$this->currentLine)
9c640 3b 0a 7d 0a 0a 24 69 73 52 65 66 20 3d 20 24 69 73 49 6e 50 6c 61 63 65 20 3d 20 24 69 73 50 72 ;.}..$isRef.=.$isInPlace.=.$isPr
9c660 6f 63 65 73 73 65 64 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 ocessed.=.false;.if.(preg_match(
9c680 27 23 5e 5c 2d 28 28 3f 50 3c 6c 65 61 64 73 70 61 63 65 73 3e 5c 73 2b 29 28 3f 50 3c 76 61 6c '#^\-((?P<leadspaces>\s+)(?P<val
9c6a0 75 65 3e 2e 2b 3f 29 29 3f 5c 73 2a 24 23 75 27 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 ue>.+?))?\s*$#u',.$this->current
9c6c0 4c 69 6e 65 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 69 66 20 28 24 63 6f 6e 74 65 78 74 20 26 Line,.$values)).{.if.($context.&
9c6e0 26 20 27 6d 61 70 70 69 6e 67 27 20 3d 3d 20 24 63 6f 6e 74 65 78 74 29 20 7b 0a 74 68 72 6f 77 &.'mapping'.==.$context).{.throw
9c700 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 6e 6f 74 20 .new.ParseException('You.cannot.
9c720 64 65 66 69 6e 65 20 61 20 73 65 71 75 65 6e 63 65 20 69 74 65 6d 20 77 68 65 6e 20 69 6e 20 61 define.a.sequence.item.when.in.a
9c740 20 6d 61 70 70 69 6e 67 27 29 3b 0a 7d 0a 24 63 6f 6e 74 65 78 74 20 3d 20 27 73 65 71 75 65 6e .mapping');.}.$context.=.'sequen
9c760 63 65 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d ce';..if.(isset($values['value']
9c780 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 26 28 3f 50 3c 72 65 66 3e 5b 5e 20 5d ).&&.preg_match('#^&(?P<ref>[^.]
9c7a0 2b 29 20 2a 28 3f 50 3c 76 61 6c 75 65 3e 2e 2a 29 23 75 27 2c 20 24 76 61 6c 75 65 73 5b 27 76 +).*(?P<value>.*)#u',.$values['v
9c7c0 61 6c 75 65 27 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 69 73 52 65 66 20 3d 20 24 6d alue'],.$matches)).{.$isRef.=.$m
9c7e0 61 74 63 68 65 73 5b 27 72 65 66 27 5d 3b 0a 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 20 atches['ref'];.$values['value'].
9c800 3d 20 24 6d 61 74 63 68 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 =.$matches['value'];.}....if.(!i
9c820 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 7c 7c 20 27 27 20 3d 3d 20 sset($values['value']).||.''.==.
9c840 74 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 20 27 29 20 7c 7c 20 30 trim($values['value'],.'.').||.0
9c860 20 3d 3d 3d 20 73 74 72 70 6f 73 28 6c 74 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 .===.strpos(ltrim($values['value
9c880 27 5d 2c 20 27 20 27 29 2c 20 27 23 27 29 29 20 7b 0a 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 '],.'.'),.'#')).{.$c.=.$this->ge
9c8a0 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b 0a 24 70 61 72 73 65 tRealCurrentLineNb().+.1;.$parse
9c8c0 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 66 r.=.new.Parser($c);.$parser->ref
9c8e0 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 3b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 70 61 72 s.=&.$this->refs;.$data[].=.$par
9c900 73 65 72 2d 3e 70 61 72 73 65 28 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c ser->parse($this->getNextEmbedBl
9c920 6f 63 6b 28 29 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 ock(),.$exceptionOnInvalidType,.
9c940 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 $objectSupport);.}.else.{.if.(is
9c960 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6c 65 61 64 73 70 61 63 65 73 27 5d 29 0a 26 26 20 27 20 set($values['leadspaces']).&&.'.
9c980 27 20 3d 3d 20 24 76 61 6c 75 65 73 5b 27 6c 65 61 64 73 70 61 63 65 73 27 5d 0a 26 26 20 70 72 '.==.$values['leadspaces'].&&.pr
9c9a0 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 50 3c 6b 65 79 3e 27 2e 49 6e 6c 69 6e 65 3a 3a 52 45 eg_match('#^(?P<key>'.Inline::RE
9c9c0 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 7c 5b 5e 20 5c 27 22 5c 7b 5c 5b 5d 2e GEX_QUOTED_STRING.'|[^.\'"\{\[].
9c9e0 2a 3f 29 20 2a 5c 3a 28 5c 73 2b 28 3f 50 3c 76 61 6c 75 65 3e 2e 2b 3f 29 29 3f 5c 73 2a 24 23 *?).*\:(\s+(?P<value>.+?))?\s*$#
9ca00 75 27 2c 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 24 6d 61 74 63 68 65 73 29 0a u',.$values['value'],.$matches).
9ca20 29 20 7b 0a 0a 20 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 ).{...$c.=.$this->getRealCurrent
9ca40 4c 69 6e 65 4e 62 28 29 3b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 LineNb();.$parser.=.new.Parser($
9ca60 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 66 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 c);.$parser->refs.=&.$this->refs
9ca80 3b 0a 0a 24 62 6c 6f 63 6b 20 3d 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 69 66 ;..$block.=.$values['value'];.if
9caa0 20 28 24 74 68 69 73 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 65 6e 74 65 64 28 29 29 20 7b .($this->isNextLineIndented()).{
9cac0 0a 24 62 6c 6f 63 6b 20 2e 3d 20 22 5c 6e 22 2e 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d .$block..=."\n".$this->getNextEm
9cae0 62 65 64 42 6c 6f 63 6b 28 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e bedBlock($this->getCurrentLineIn
9cb00 64 65 6e 74 61 74 69 6f 6e 28 29 20 2b 20 32 29 3b 0a 7d 0a 0a 24 64 61 74 61 5b 5d 20 3d 20 24 dentation().+.2);.}..$data[].=.$
9cb20 70 61 72 73 65 72 2d 3e 70 61 72 73 65 28 24 62 6c 6f 63 6b 2c 20 24 65 78 63 65 70 74 69 6f 6e parser->parse($block,.$exception
9cb40 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a OnInvalidType,.$objectSupport);.
9cb60 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 }.else.{.$data[].=.$this->parseV
9cb80 61 6c 75 65 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 24 65 78 63 65 70 74 69 6f alue($values['value'],.$exceptio
9cba0 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b nOnInvalidType,.$objectSupport);
9cbc0 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 50 .}.}.}.elseif.(preg_match('#^(?P
9cbe0 3c 6b 65 79 3e 27 2e 49 6e 6c 69 6e 65 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 <key>'.Inline::REGEX_QUOTED_STRI
9cc00 4e 47 2e 27 7c 5b 5e 20 5c 27 22 5c 5b 5c 7b 5d 2e 2a 3f 29 20 2a 5c 3a 28 5c 73 2b 28 3f 50 3c NG.'|[^.\'"\[\{].*?).*\:(\s+(?P<
9cc20 76 61 6c 75 65 3e 2e 2b 3f 29 29 3f 5c 73 2a 24 23 75 27 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 value>.+?))?\s*$#u',.$this->curr
9cc40 65 6e 74 4c 69 6e 65 2c 20 24 76 61 6c 75 65 73 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 entLine,.$values).&&.false.===.s
9cc60 74 72 70 6f 73 28 24 76 61 6c 75 65 73 5b 27 6b 65 79 27 5d 2c 27 20 23 27 29 29 20 7b 0a 69 66 trpos($values['key'],'.#')).{.if
9cc80 20 28 24 63 6f 6e 74 65 78 74 20 26 26 20 27 73 65 71 75 65 6e 63 65 27 20 3d 3d 20 24 63 6f 6e .($context.&&.'sequence'.==.$con
9cca0 74 65 78 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e text).{.throw.new.ParseException
9ccc0 28 27 59 6f 75 20 63 61 6e 6e 6f 74 20 64 65 66 69 6e 65 20 61 20 6d 61 70 70 69 6e 67 20 69 74 ('You.cannot.define.a.mapping.it
9cce0 65 6d 20 77 68 65 6e 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 27 29 3b 0a 7d 0a 24 63 6f 6e 74 em.when.in.a.sequence');.}.$cont
9cd00 65 78 74 20 3d 20 27 6d 61 70 70 69 6e 67 27 3b 0a 0a 0a 20 49 6e 6c 69 6e 65 3a 3a 70 61 72 73 ext.=.'mapping';....Inline::pars
9cd20 65 28 6e 75 6c 6c 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c e(null,.$exceptionOnInvalidType,
9cd40 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 74 72 79 20 7b 0a 24 6b 65 79 20 3d 20 49 .$objectSupport);.try.{.$key.=.I
9cd60 6e 6c 69 6e 65 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 28 24 76 61 6c 75 65 73 5b 27 6b 65 79 27 nline::parseScalar($values['key'
9cd80 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 ]);.}.catch.(ParseException.$e).
9cda0 7b 0a 24 65 2d 3e 73 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 52 65 {.$e->setParsedLine($this->getRe
9cdc0 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 2d 3e 73 65 74 53 alCurrentLineNb().+.1);.$e->setS
9cde0 6e 69 70 70 65 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 74 68 72 nippet($this->currentLine);..thr
9ce00 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3c 27 20 3d 3d 3d 20 24 6b 65 79 29 20 7b 0a 69 ow.$e;.}..if.('<<'.===.$key).{.i
9ce20 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 26 26 20 30 20 f.(isset($values['value']).&&.0.
9ce40 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 2a 27 ===.strpos($values['value'],.'*'
9ce60 29 29 20 7b 0a 24 69 73 49 6e 50 6c 61 63 65 20 3d 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 73 )).{.$isInPlace.=.substr($values
9ce80 5b 27 76 61 6c 75 65 27 5d 2c 20 31 29 3b 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 ['value'],.1);.if.(!array_key_ex
9cea0 69 73 74 73 28 24 69 73 49 6e 50 6c 61 63 65 2c 20 24 74 68 69 73 2d 3e 72 65 66 73 29 29 20 7b ists($isInPlace,.$this->refs)).{
9cec0 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 .throw.new.ParseException(sprint
9cee0 66 28 27 52 65 66 65 72 65 6e 63 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 f('Reference."%s".does.not.exist
9cf00 2e 27 2c 20 24 69 73 49 6e 50 6c 61 63 65 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 .',.$isInPlace),.$this->getRealC
9cf20 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 urrentLineNb().+.1,.$this->curre
9cf40 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 76 ntLine);.}.}.else.{.if.(isset($v
9cf60 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 26 26 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 alues['value']).&&.$values['valu
9cf80 65 27 5d 20 21 3d 3d 20 27 27 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 76 61 6c 75 65 73 5b 27 e'].!==.'').{.$value.=.$values['
9cfa0 76 61 6c 75 65 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 value'];.}.else.{.$value.=.$this
9cfc0 2d 3e 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c 6f 63 6b 28 29 3b 0a 7d 0a 24 63 20 3d 20 24 74 ->getNextEmbedBlock();.}.$c.=.$t
9cfe0 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b his->getRealCurrentLineNb().+.1;
9d000 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 .$parser.=.new.Parser($c);.$pars
9d020 65 72 2d 3e 72 65 66 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 3b 0a 24 70 61 72 73 65 64 er->refs.=&.$this->refs;.$parsed
9d040 20 3d 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 .=.$parser->parse($value,.$excep
9d060 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 tionOnInvalidType,.$objectSuppor
9d080 74 29 3b 0a 0a 24 6d 65 72 67 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 69 73 5f t);..$merged.=.array();.if.(!is_
9d0a0 61 72 72 61 79 28 24 70 61 72 73 65 64 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 array($parsed)).{.throw.new.Pars
9d0c0 65 45 78 63 65 70 74 69 6f 6e 28 27 59 41 4d 4c 20 6d 65 72 67 65 20 6b 65 79 73 20 75 73 65 64 eException('YAML.merge.keys.used
9d0e0 20 77 69 74 68 20 61 20 73 63 61 6c 61 72 20 76 61 6c 75 65 20 69 6e 73 74 65 61 64 20 6f 66 20 .with.a.scalar.value.instead.of.
9d100 61 6e 20 61 72 72 61 79 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e an.array.',.$this->getRealCurren
9d120 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e tLineNb().+.1,.$this->currentLin
9d140 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 70 61 72 73 65 64 5b 30 5d 29 29 e);.}.elseif.(isset($parsed[0]))
9d160 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 70 61 72 .{...foreach.(array_reverse($par
9d180 73 65 64 29 20 61 73 20 24 70 61 72 73 65 64 49 74 65 6d 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 sed).as.$parsedItem).{.if.(!is_a
9d1a0 72 72 61 79 28 24 70 61 72 73 65 64 49 74 65 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 rray($parsedItem)).{.throw.new.P
9d1c0 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 4d 65 72 67 65 20 69 74 65 6d 73 20 6d 75 73 74 20 arseException('Merge.items.must.
9d1e0 62 65 20 61 72 72 61 79 73 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 be.arrays.',.$this->getRealCurre
9d200 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 70 61 72 73 65 64 49 74 65 6d 29 3b 0a 7d 0a ntLineNb().+.1,.$parsedItem);.}.
9d220 24 6d 65 72 67 65 64 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 72 73 65 64 49 74 65 $merged.=.array_merge($parsedIte
9d240 6d 2c 20 24 6d 65 72 67 65 64 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6d 65 72 67 65 m,.$merged);.}.}.else.{...$merge
9d260 64 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 65 72 67 65 64 2c 20 24 70 61 72 73 65 64 d.=.array_merge($merged,.$parsed
9d280 29 3b 0a 7d 0a 0a 24 69 73 50 72 6f 63 65 73 73 65 64 20 3d 20 24 6d 65 72 67 65 64 3b 0a 7d 0a );.}..$isProcessed.=.$merged;.}.
9d2a0 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d }.elseif.(isset($values['value']
9d2c0 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 26 28 3f 50 3c 72 65 66 3e 5b 5e 20 5d ).&&.preg_match('#^&(?P<ref>[^.]
9d2e0 2b 29 20 2a 28 3f 50 3c 76 61 6c 75 65 3e 2e 2a 29 23 75 27 2c 20 24 76 61 6c 75 65 73 5b 27 76 +).*(?P<value>.*)#u',.$values['v
9d300 61 6c 75 65 27 5d 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 69 73 52 65 66 20 3d 20 24 6d alue'],.$matches)).{.$isRef.=.$m
9d320 61 74 63 68 65 73 5b 27 72 65 66 27 5d 3b 0a 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 20 atches['ref'];.$values['value'].
9d340 3d 20 24 6d 61 74 63 68 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 50 =.$matches['value'];.}..if.($isP
9d360 72 6f 63 65 73 73 65 64 29 20 7b 0a 0a 20 24 64 61 74 61 20 3d 20 24 69 73 50 72 6f 63 65 73 73 rocessed).{...$data.=.$isProcess
9d380 65 64 3b 0a 0a 20 7d 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 ed;...}.elseif.(!isset($values['
9d3a0 76 61 6c 75 65 27 5d 29 20 7c 7c 20 27 27 20 3d 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 value']).||.''.==.trim($values['
9d3c0 76 61 6c 75 65 27 5d 2c 20 27 20 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 6c 74 value'],.'.').||.0.===.strpos(lt
9d3e0 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 20 27 29 2c 20 27 23 27 29 rim($values['value'],.'.'),.'#')
9d400 29 20 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 65 ).{...if.(!$this->isNextLineInde
9d420 6e 74 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 55 6e 49 6e nted().&&.!$this->isNextLineUnIn
9d440 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 28 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 dentedCollection()).{.$data[$key
9d460 5d 20 3d 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 ].=.null;.}.else.{.$c.=.$this->g
9d480 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b 0a 24 70 61 72 73 etRealCurrentLineNb().+.1;.$pars
9d4a0 65 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 er.=.new.Parser($c);.$parser->re
9d4c0 66 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 3b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d fs.=&.$this->refs;.$data[$key].=
9d4e0 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 28 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d .$parser->parse($this->getNextEm
9d500 62 65 64 42 6c 6f 63 6b 28 29 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 bedBlock(),.$exceptionOnInvalidT
9d520 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b ype,.$objectSupport);.}.}.else.{
9d540 0a 69 66 20 28 24 69 73 49 6e 50 6c 61 63 65 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 .if.($isInPlace).{.$data.=.$this
9d560 2d 3e 72 65 66 73 5b 24 69 73 49 6e 50 6c 61 63 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 ->refs[$isInPlace];.}.else.{.$da
9d580 74 61 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 61 6c 75 65 28 24 76 61 ta[$key].=.$this->parseValue($va
9d5a0 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c lues['value'],.$exceptionOnInval
9d5c0 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 0a 7d 20 65 idType,.$objectSupport);.}.}.}.e
9d5e0 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 65 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 lse.{...$lineCount.=.count($this
9d600 2d 3e 6c 69 6e 65 73 29 3b 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 69 6e 65 43 6f 75 6e 74 20 7c ->lines);.if.(1.===.$lineCount.|
9d620 7c 20 28 32 20 3d 3d 3d 20 24 6c 69 6e 65 43 6f 75 6e 74 20 26 26 20 65 6d 70 74 79 28 24 74 68 |.(2.===.$lineCount.&&.empty($th
9d640 69 73 2d 3e 6c 69 6e 65 73 5b 31 5d 29 29 29 20 7b 0a 74 72 79 20 7b 0a 24 76 61 6c 75 65 20 3d is->lines[1]))).{.try.{.$value.=
9d660 20 49 6e 6c 69 6e 65 3a 3a 70 61 72 73 65 28 24 74 68 69 73 2d 3e 6c 69 6e 65 73 5b 30 5d 2c 20 .Inline::parse($this->lines[0],.
9d680 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 $exceptionOnInvalidType,.$object
9d6a0 53 75 70 70 6f 72 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f Support);.}.catch.(ParseExceptio
9d6c0 6e 20 24 65 29 20 7b 0a 24 65 2d 3e 73 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d n.$e).{.$e->setParsedLine($this-
9d6e0 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 >getRealCurrentLineNb().+.1);.$e
9d700 2d 3e 73 65 74 53 6e 69 70 70 65 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 ->setSnippet($this->currentLine)
9d720 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 ;..throw.$e;.}..if.(is_array($va
9d740 6c 75 65 29 29 20 7b 0a 24 66 69 72 73 74 20 3d 20 72 65 73 65 74 28 24 76 61 6c 75 65 29 3b 0a lue)).{.$first.=.reset($value);.
9d760 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 66 69 72 73 74 29 20 26 26 20 30 20 3d 3d 3d 20 73 if.(is_string($first).&&.0.===.s
9d780 74 72 70 6f 73 28 24 66 69 72 73 74 2c 20 27 2a 27 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 61 72 trpos($first,.'*')).{.$data.=.ar
9d7a0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 61 6c 69 61 73 ray();.foreach.($value.as.$alias
9d7c0 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 72 65 66 73 5b 73 75 62 73 74 72 ).{.$data[].=.$this->refs[substr
9d7e0 28 24 61 6c 69 61 73 2c 20 31 29 5d 3b 0a 7d 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 3b 0a ($alias,.1)];.}.$value.=.$data;.
9d800 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 29 20 7b 0a 6d }.}..if.(isset($mbEncoding)).{.m
9d820 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 b_internal_encoding($mbEncoding)
9d840 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 70 ;.}..return.$value;.}..switch.(p
9d860 72 65 67 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 50 52 45 47 5f 49 4e reg_last_error()).{.case.PREG_IN
9d880 54 45 52 4e 41 4c 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 49 6e 74 65 72 6e 61 6c TERNAL_ERROR:.$error.=.'Internal
9d8a0 20 50 43 52 45 20 65 72 72 6f 72 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 52 45 47 5f .PCRE.error.';.break;.case.PREG_
9d8c0 42 41 43 4b 54 52 41 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 BACKTRACK_LIMIT_ERROR:.$error.=.
9d8e0 27 70 63 72 65 2e 62 61 63 6b 74 72 61 63 6b 5f 6c 69 6d 69 74 20 72 65 61 63 68 65 64 2e 27 3b 'pcre.backtrack_limit.reached.';
9d900 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f 4e 5f 4c 49 4d 49 .break;.case.PREG_RECURSION_LIMI
9d920 54 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 70 63 72 65 2e 72 65 63 75 72 73 69 6f T_ERROR:.$error.=.'pcre.recursio
9d940 6e 5f 6c 69 6d 69 74 20 72 65 61 63 68 65 64 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 n_limit.reached.';.break;.case.P
9d960 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 4d 61 REG_BAD_UTF8_ERROR:.$error.=.'Ma
9d980 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 64 61 74 61 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 lformed.UTF-8.data.';.break;.cas
9d9a0 65 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f 46 46 53 45 54 5f 45 52 52 4f 52 3a 0a 24 65 e.PREG_BAD_UTF8_OFFSET_ERROR:.$e
9d9c0 72 72 6f 72 20 3d 20 27 4f 66 66 73 65 74 20 64 6f 65 73 6e 5c 27 74 20 63 6f 72 72 65 73 70 6f rror.=.'Offset.doesn\'t.correspo
9d9e0 6e 64 20 74 6f 20 74 68 65 20 62 65 67 69 6e 20 6f 66 20 61 20 76 61 6c 69 64 20 55 54 46 2d 38 nd.to.the.begin.of.a.valid.UTF-8
9da00 20 63 6f 64 65 20 70 6f 69 6e 74 2e 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 .code.point.';.break;.default:.$
9da20 65 72 72 6f 72 20 3d 20 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 2e 27 3b 0a 7d 0a 0a 74 error.=.'Unable.to.parse.';.}..t
9da40 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 2c 20 hrow.new.ParseException($error,.
9da60 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 $this->getRealCurrentLineNb().+.
9da80 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 1,.$this->currentLine);.}..if.($
9daa0 69 73 52 65 66 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 66 73 5b 24 69 73 52 65 66 5d 20 3d 20 65 isRef).{.$this->refs[$isRef].=.e
9dac0 6e 64 28 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 62 45 6e 63 nd($data);.}.}..if.(isset($mbEnc
9dae0 6f 64 69 6e 67 29 29 20 7b 0a 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 24 oding)).{.mb_internal_encoding($
9db00 6d 62 45 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 64 61 mbEncoding);.}..return.empty($da
9db20 74 61 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 ta).?.null.:.$data;.}.......priv
9db40 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e ate.function.getRealCurrentLineN
9db60 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 4e b().{.return.$this->currentLineN
9db80 62 20 2b 20 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 b.+.$this->offset;.}.......priva
9dba0 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 te.function.getCurrentLineIndent
9dbc0 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 63 ation().{.return.strlen($this->c
9dbe0 75 72 72 65 6e 74 4c 69 6e 65 29 20 2d 20 73 74 72 6c 65 6e 28 6c 74 72 69 6d 28 24 74 68 69 73 urrentLine).-.strlen(ltrim($this
9dc00 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 27 20 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ->currentLine,.'.'));.}.........
9dc20 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 78 74 45 6d 62 65 64 42 ..private.function.getNextEmbedB
9dc40 6c 6f 63 6b 28 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 lock($indentation.=.null).{.$thi
9dc60 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d s->moveToNextLine();..if.(null.=
9dc80 3d 3d 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 7b 0a 24 6e 65 77 49 6e 64 65 6e 74 20 3d 20 ==.$indentation).{.$newIndent.=.
9dca0 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e $this->getCurrentLineIndentation
9dcc0 28 29 3b 0a 0a 24 75 6e 69 6e 64 65 6e 74 65 64 45 6d 62 65 64 42 6c 6f 63 6b 20 3d 20 24 74 68 ();..$unindentedEmbedBlock.=.$th
9dce0 69 73 2d 3e 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e is->isStringUnIndentedCollection
9dd00 49 74 65 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 69 66 20 28 21 Item($this->currentLine);..if.(!
9dd20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 20 26 26 20 30 $this->isCurrentLineEmpty().&&.0
9dd40 20 3d 3d 3d 20 24 6e 65 77 49 6e 64 65 6e 74 20 26 26 20 21 24 75 6e 69 6e 64 65 6e 74 65 64 45 .===.$newIndent.&&.!$unindentedE
9dd60 6d 62 65 64 42 6c 6f 63 6b 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 mbedBlock).{.throw.new.ParseExce
9dd80 70 74 69 6f 6e 28 27 49 6e 64 65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 2e 27 2c 20 24 74 ption('Indentation.problem.',.$t
9dda0 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c his->getRealCurrentLineNb().+.1,
9ddc0 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b .$this->currentLine);.}.}.else.{
9dde0 0a 24 6e 65 77 49 6e 64 65 6e 74 20 3d 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 3b 0a 7d 0a 0a 24 .$newIndent.=.$indentation;.}..$
9de00 64 61 74 61 20 3d 20 61 72 72 61 79 28 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 data.=.array(substr($this->curre
9de20 6e 74 4c 69 6e 65 2c 20 24 6e 65 77 49 6e 64 65 6e 74 29 29 3b 0a 0a 24 69 73 49 74 55 6e 69 6e ntLine,.$newIndent));..$isItUnin
9de40 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 69 73 53 74 72 69 dentedCollection.=.$this->isStri
9de60 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 24 74 68 69 73 ngUnIndentedCollectionItem($this
9de80 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 0a 20 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e ->currentLine);....$removeCommen
9dea0 74 73 50 61 74 74 65 72 6e 20 3d 20 27 7e 27 2e 73 65 6c 66 3a 3a 46 4f 4c 44 45 44 5f 53 43 41 tsPattern.=.'~'.self::FOLDED_SCA
9dec0 4c 41 52 5f 50 41 54 54 45 52 4e 2e 27 24 7e 27 3b 0a 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 LAR_PATTERN.'$~';.$removeComment
9dee0 73 20 3d 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 50 s.=.!preg_match($removeCommentsP
9df00 61 74 74 65 72 6e 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 77 68 attern,.$this->currentLine);..wh
9df20 69 6c 65 20 28 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a ile.($this->moveToNextLine()).{.
9df40 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 if.($this->getCurrentLineIndenta
9df60 74 69 6f 6e 28 29 20 3d 3d 3d 20 24 6e 65 77 49 6e 64 65 6e 74 29 20 7b 0a 24 72 65 6d 6f 76 65 tion().===.$newIndent).{.$remove
9df80 43 6f 6d 6d 65 6e 74 73 20 3d 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 6d 6f 76 65 43 6f Comments.=.!preg_match($removeCo
9dfa0 6d 6d 65 6e 74 73 50 61 74 74 65 72 6e 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e mmentsPattern,.$this->currentLin
9dfc0 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 49 74 55 6e 69 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 e);.}..if.($isItUnindentedCollec
9dfe0 74 69 6f 6e 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 tion.&&.!$this->isStringUnIndent
9e000 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c edCollectionItem($this->currentL
9e020 69 6e 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e ine)).{.$this->moveToPreviousLin
9e040 65 28 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e e();.break;.}..if.($removeCommen
9e060 74 73 20 26 26 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 ts.&&.$this->isCurrentLineEmpty(
9e080 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 ).||.$this->isCurrentLineBlank()
9e0a0 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e ).{.if.($this->isCurrentLineBlan
9e0c0 6b 28 29 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 k()).{.$data[].=.substr($this->c
9e0e0 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6e 65 77 49 6e 64 65 6e 74 29 3b 0a 7d 0a 0a 63 6f 6e 74 urrentLine,.$newIndent);.}..cont
9e100 69 6e 75 65 3b 0a 7d 0a 0a 24 69 6e 64 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 inue;.}..$indent.=.$this->getCur
9e120 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 70 72 65 67 rentLineIndentation();..if.(preg
9e140 5f 6d 61 74 63 68 28 27 23 5e 28 3f 50 3c 74 65 78 74 3e 20 2a 29 24 23 27 2c 20 24 74 68 69 73 _match('#^(?P<text>.*)$#',.$this
9e160 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 64 61 74 ->currentLine,.$match)).{...$dat
9e180 61 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 27 74 65 78 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 a[].=.$match['text'];.}.elseif.(
9e1a0 24 69 6e 64 65 6e 74 20 3e 3d 20 24 6e 65 77 49 6e 64 65 6e 74 29 20 7b 0a 24 64 61 74 61 5b 5d $indent.>=.$newIndent).{.$data[]
9e1c0 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6e .=.substr($this->currentLine,.$n
9e1e0 65 77 49 6e 64 65 6e 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 20 24 69 6e 64 65 6e ewIndent);.}.elseif.(0.==.$inden
9e200 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 t).{.$this->moveToPreviousLine()
9e220 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 ;..break;.}.else.{.throw.new.Par
9e240 73 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 64 65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d seException('Indentation.problem
9e260 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 .',.$this->getRealCurrentLineNb(
9e280 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 7d 0a ).+.1,.$this->currentLine);.}.}.
9e2a0 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 64 61 74 61 29 3b 0a 7d 0a .return.implode("\n",.$data);.}.
9e2c0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 54 6f 4e 65 78 ......private.function.moveToNex
9e2e0 74 4c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 tLine().{.if.($this->currentLine
9e300 4e 62 20 3e 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 6e 65 73 29 20 2d 20 31 29 20 7b Nb.>=.count($this->lines).-.1).{
9e320 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 .return.false;.}..$this->current
9e340 4c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 6e 65 73 5b 2b 2b 24 74 68 69 73 2d 3e 63 75 72 Line.=.$this->lines[++$this->cur
9e360 72 65 6e 74 4c 69 6e 65 4e 62 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a rentLineNb];..return.true;.}....
9e380 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 .private.function.moveToPrevious
9e3a0 4c 69 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 20 3d 20 24 74 Line().{.$this->currentLine.=.$t
9e3c0 68 69 73 2d 3e 6c 69 6e 65 73 5b 2d 2d 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 4e his->lines[--$this->currentLineN
9e3e0 62 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 b];.}.............private.functi
9e400 6f 6e 20 70 61 72 73 65 56 61 6c 75 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e on.parseValue($value,.$exception
9e420 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 0a 7b OnInvalidType,.$objectSupport).{
9e440 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 27 2a 27 29 29 20 .if.(0.===.strpos($value,.'*')).
9e460 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 76 {.if.(false.!==.$pos.=.strpos($v
9e480 61 6c 75 65 2c 20 27 23 27 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 76 alue,.'#')).{.$value.=.substr($v
9e4a0 61 6c 75 65 2c 20 31 2c 20 24 70 6f 73 20 2d 20 32 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 alue,.1,.$pos.-.2);.}.else.{.$va
9e4c0 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 lue.=.substr($value,.1);.}..if.(
9e4e0 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 24 74 68 69 73 2d !array_key_exists($value,.$this-
9e500 3e 72 65 66 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 >refs)).{.throw.new.ParseExcepti
9e520 6f 6e 28 73 70 72 69 6e 74 66 28 27 52 65 66 65 72 65 6e 63 65 20 22 25 73 22 20 64 6f 65 73 20 on(sprintf('Reference."%s".does.
9e540 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 76 61 6c 75 65 29 2c 20 24 74 68 69 73 2d 3e 63 75 72 not.exist.',.$value),.$this->cur
9e560 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 73 rentLine);.}..return.$this->refs
9e580 5b 24 76 61 6c 75 65 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 27 [$value];.}..if.(preg_match('/^'
9e5a0 2e 73 65 6c 66 3a 3a 46 4f 4c 44 45 44 5f 53 43 41 4c 41 52 5f 50 41 54 54 45 52 4e 2e 27 24 2f .self::FOLDED_SCALAR_PATTERN.'$/
9e5c0 27 2c 20 24 76 61 6c 75 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 6f 64 69 66 69 65 ',.$value,.$matches)).{.$modifie
9e5e0 72 73 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 27 6d 6f 64 69 66 69 65 72 73 27 5d rs.=.isset($matches['modifiers']
9e600 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 27 6d 6f 64 69 66 69 65 72 73 27 5d 20 3a 20 27 27 3b 0a ).?.$matches['modifiers'].:.'';.
9e620 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 46 6f 6c 64 65 64 53 63 61 6c 61 72 .return.$this->parseFoldedScalar
9e640 28 24 6d 61 74 63 68 65 73 5b 27 73 65 70 61 72 61 74 6f 72 27 5d 2c 20 70 72 65 67 5f 72 65 70 ($matches['separator'],.preg_rep
9e660 6c 61 63 65 28 27 23 5c 64 2b 23 27 2c 20 27 27 2c 20 24 6d 6f 64 69 66 69 65 72 73 29 2c 20 69 lace('#\d+#',.'',.$modifiers),.i
9e680 6e 74 76 61 6c 28 61 62 73 28 24 6d 6f 64 69 66 69 65 72 73 29 29 29 3b 0a 7d 0a 0a 74 72 79 20 ntval(abs($modifiers)));.}..try.
9e6a0 7b 0a 72 65 74 75 72 6e 20 49 6e 6c 69 6e 65 3a 3a 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 {.return.Inline::parse($value,.$
9e6c0 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 exceptionOnInvalidType,.$objectS
9e6e0 75 70 70 6f 72 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e upport);.}.catch.(ParseException
9e700 20 24 65 29 20 7b 0a 24 65 2d 3e 73 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d 3e .$e).{.$e->setParsedLine($this->
9e720 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 2d getRealCurrentLineNb().+.1);.$e-
9e740 3e 73 65 74 53 6e 69 70 70 65 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b >setSnippet($this->currentLine);
9e760 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ..throw.$e;.}.}...........privat
9e780 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 46 6f 6c 64 65 64 53 63 61 6c 61 72 28 24 73 65 e.function.parseFoldedScalar($se
9e7a0 70 61 72 61 74 6f 72 2c 20 24 69 6e 64 69 63 61 74 6f 72 20 3d 20 27 27 2c 20 24 69 6e 64 65 6e parator,.$indicator.=.'',.$inden
9e7c0 74 61 74 69 6f 6e 20 3d 20 30 29 0a 7b 0a 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d tation.=.0).{.$notEOF.=.$this->m
9e7e0 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 69 66 20 28 21 24 6e 6f 74 45 4f 46 29 20 7b oveToNextLine();.if.(!$notEOF).{
9e800 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 .return.'';.}..$isCurrentLineBla
9e820 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 nk.=.$this->isCurrentLineBlank()
9e840 3b 0a 24 74 65 78 74 20 3d 20 27 27 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 6e 6f 74 45 4f 46 20 ;.$text.=.'';....while.($notEOF.
9e860 26 26 20 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 &&.$isCurrentLineBlank).{...if.(
9e880 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 $notEOF.=.$this->moveToNextLine(
9e8a0 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 22 3b 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 )).{.$text..=."\n";.$isCurrentLi
9e8c0 6e 65 42 6c 61 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c neBlank.=.$this->isCurrentLineBl
9e8e0 61 6e 6b 28 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 69 6e 64 65 6e 74 61 ank();.}.}....if.(0.===.$indenta
9e900 74 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 20 2b 2f 27 2c 20 tion).{.if.(preg_match('/^.+/',.
9e920 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b $this->currentLine,.$matches)).{
9e940 0a 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b .$indentation.=.strlen($matches[
9e960 30 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3e 20 30 29 20 0]);.}.}..if.($indentation.>.0).
9e980 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 27 2f 5e 20 7b 25 64 7d 28 2e 2a {.$pattern.=.sprintf('/^.{%d}(.*
9e9a0 29 24 2f 27 2c 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 29 3b 0a 0a 77 68 69 6c 65 20 28 0a 24 6e )$/',.$indentation);..while.(.$n
9e9c0 6f 74 45 4f 46 20 26 26 20 28 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 20 7c otEOF.&&.(.$isCurrentLineBlank.|
9e9e0 7c 0a 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 74 68 69 73 2d 3e 63 75 |.preg_match($pattern,.$this->cu
9ea00 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 0a 29 0a 29 20 7b 0a 69 66 20 28 24 rrentLine,.$matches).).).{.if.($
9ea20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 73 isCurrentLineBlank).{.$text..=.s
9ea40 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 69 6e 64 65 6e ubstr($this->currentLine,.$inden
9ea60 74 61 74 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 tation);.}.else.{.$text..=.$matc
9ea80 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 hes[1];.}....if.($notEOF.=.$this
9eaa0 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 ->moveToNextLine()).{.$text..=."
9eac0 5c 6e 22 3b 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 20 3d 20 24 74 68 69 73 \n";.$isCurrentLineBlank.=.$this
9eae0 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c ->isCurrentLineBlank();.}.}.}.el
9eb00 73 65 69 66 20 28 24 6e 6f 74 45 4f 46 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 22 3b 0a seif.($notEOF).{.$text..=."\n";.
9eb20 7d 0a 0a 69 66 20 28 24 6e 6f 74 45 4f 46 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 }..if.($notEOF).{.$this->moveToP
9eb40 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 3e 27 20 3d 3d 3d 20 reviousLine();.}....if.('>'.===.
9eb60 24 73 65 70 61 72 61 74 6f 72 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5c 6e 2a 29 $separator).{.preg_match('/(\n*)
9eb80 24 2f 27 2c 20 24 74 65 78 74 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 24 74 65 78 74 20 3d 20 70 $/',.$text,.$matches);.$text.=.p
9eba0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 3f 3c 21 5c 6e 29 5c 6e 28 3f 21 5c 6e 29 2f 27 2c reg_replace('/(?<!\n)\n(?!\n)/',
9ebc0 20 27 20 27 2c 20 72 74 72 69 6d 28 24 74 65 78 74 2c 20 22 5c 6e 22 29 29 3b 0a 24 74 65 78 74 .'.',.rtrim($text,."\n"));.$text
9ebe0 20 2e 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 27 20 3d 3d 3d ..=.$matches[1];.}....if.(''.===
9ec00 20 24 69 6e 64 69 63 61 74 6f 72 29 20 7b 0a 24 74 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c .$indicator).{.$text.=.preg_repl
9ec20 61 63 65 28 27 2f 5c 6e 2b 24 2f 73 27 2c 20 22 5c 6e 22 2c 20 24 74 65 78 74 29 3b 0a 7d 20 65 ace('/\n+$/s',."\n",.$text);.}.e
9ec40 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 69 6e 64 69 63 61 74 6f 72 29 20 7b 0a 24 74 65 lseif.('-'.===.$indicator).{.$te
9ec60 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 6e 2b 24 2f 73 27 2c 20 27 27 2c xt.=.preg_replace('/\n+$/s',.'',
9ec80 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a .$text);.}..return.$text;.}.....
9eca0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 ..private.function.isNextLineInd
9ecc0 65 6e 74 65 64 28 29 0a 7b 0a 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 ented().{.$currentIndentation.=.
9ece0 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e $this->getCurrentLineIndentation
9ed00 28 29 3b 0a 24 45 4f 46 20 3d 20 21 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e ();.$EOF.=.!$this->moveToNextLin
9ed20 65 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 45 4f 46 20 26 26 20 24 74 68 69 73 2d 3e 69 73 43 e();..while.(!$EOF.&&.$this->isC
9ed40 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 29 20 7b 0a 24 45 4f 46 20 3d 20 21 24 74 68 urrentLineEmpty()).{.$EOF.=.!$th
9ed60 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 45 4f is->moveToNextLine();.}..if.($EO
9ed80 46 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 66 61 6c F).{.return.false;.}..$ret.=.fal
9eda0 73 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 se;.if.($this->getCurrentLineInd
9edc0 65 6e 74 61 74 69 6f 6e 28 29 20 3e 20 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e entation().>.$currentIndentation
9ede0 29 20 7b 0a 24 72 65 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 ).{.$ret.=.true;.}..$this->moveT
9ee00 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d oPreviousLine();..return.$ret;.}
9ee20 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 75 72 72 65 6e .......private.function.isCurren
9ee40 74 4c 69 6e 65 45 6d 70 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 43 tLineEmpty().{.return.$this->isC
9ee60 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 43 75 urrentLineBlank().||.$this->isCu
9ee80 72 72 65 6e 74 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 rrentLineComment();.}.......priv
9eea0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 ate.function.isCurrentLineBlank(
9eec0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 20 3d 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 75 72 ).{.return.''.==.trim($this->cur
9eee0 72 65 6e 74 4c 69 6e 65 2c 20 27 20 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 rentLine,.'.');.}.......private.
9ef00 66 75 6e 63 74 69 6f 6e 20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 29 0a function.isCurrentLineComment().
9ef20 7b 0a 0a 20 24 6c 74 72 69 6d 6d 65 64 4c 69 6e 65 20 3d 20 6c 74 72 69 6d 28 24 74 68 69 73 2d {...$ltrimmedLine.=.ltrim($this-
9ef40 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 27 20 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 74 72 >currentLine,.'.');..return.$ltr
9ef60 69 6d 6d 65 64 4c 69 6e 65 5b 30 5d 20 3d 3d 3d 20 27 23 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a immedLine[0].===.'#';.}.........
9ef80 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 24 76 61 6c 75 65 29 private.function.cleanup($value)
9efa0 0a 7b 0a 24 76 61 6c 75 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 22 5c .{.$value.=.str_replace(array("\
9efc0 72 5c 6e 22 2c 20 22 5c 72 22 29 2c 20 22 5c 6e 22 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 20 24 r\n",."\r"),."\n",.$value);....$
9efe0 63 6f 75 6e 74 20 3d 20 30 3b 0a 24 76 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 count.=.0;.$value.=.preg_replace
9f000 28 27 23 5e 5c 25 59 41 4d 4c 5b 3a 20 5d 5b 5c 64 5c 2e 5d 2b 2e 2a 5c 6e 23 73 75 27 2c 20 27 ('#^\%YAML[:.][\d\.]+.*\n#su',.'
9f020 27 2c 20 24 76 61 6c 75 65 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 24 74 68 69 73 2d 3e 6f ',.$value,.-1,.$count);.$this->o
9f040 66 66 73 65 74 20 2b 3d 20 24 63 6f 75 6e 74 3b 0a 0a 0a 20 24 74 72 69 6d 6d 65 64 56 61 6c 75 ffset.+=.$count;....$trimmedValu
9f060 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 28 5c 23 2e 2a 3f 5c 6e 29 2b 23 73 e.=.preg_replace('#^(\#.*?\n)+#s
9f080 27 2c 20 27 27 2c 20 24 76 61 6c 75 65 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 ',.'',.$value,.-1,.$count);.if.(
9f0a0 24 63 6f 75 6e 74 20 3d 3d 20 31 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 20 2b $count.==.1).{...$this->offset.+
9f0c0 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 76 61 6c 75 65 2c 20 22 5c 6e 22 29 20 2d 20 73 =.substr_count($value,."\n").-.s
9f0e0 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 2c 20 22 5c 6e 22 29 ubstr_count($trimmedValue,."\n")
9f100 3b 0a 24 76 61 6c 75 65 20 3d 20 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 3b 0a 7d 0a 0a 0a 20 24 ;.$value.=.$trimmedValue;.}....$
9f120 74 72 69 6d 6d 65 64 56 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 5c trimmedValue.=.preg_replace('#^\
9f140 2d 5c 2d 5c 2d 2e 2a 3f 5c 6e 23 73 27 2c 20 27 27 2c 20 24 76 61 6c 75 65 2c 20 2d 31 2c 20 24 -\-\-.*?\n#s',.'',.$value,.-1,.$
9f160 63 6f 75 6e 74 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 3d 3d 20 31 29 20 7b 0a 0a 20 24 74 68 count);.if.($count.==.1).{...$th
9f180 69 73 2d 3e 6f 66 66 73 65 74 20 2b 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 76 61 6c 75 is->offset.+=.substr_count($valu
9f1a0 65 2c 20 22 5c 6e 22 29 20 2d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 74 72 69 6d 6d 65 64 e,."\n").-.substr_count($trimmed
9f1c0 56 61 6c 75 65 2c 20 22 5c 6e 22 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 74 72 69 6d 6d 65 64 56 Value,."\n");.$value.=.$trimmedV
9f1e0 61 6c 75 65 3b 0a 0a 0a 20 24 76 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 alue;....$value.=.preg_replace('
9f200 23 5c 2e 5c 2e 5c 2e 5c 73 2a 24 23 73 27 2c 20 27 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a #\.\.\.\s*$#s',.'',.$value);.}..
9f220 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 return.$value;.}.......private.f
9f240 75 6e 63 74 69 6f 6e 20 69 73 4e 65 78 74 4c 69 6e 65 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c unction.isNextLineUnIndentedColl
9f260 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 20 3d ection().{.$currentIndentation.=
9f280 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f .$this->getCurrentLineIndentatio
9f2a0 6e 28 29 3b 0a 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 n();.$notEOF.=.$this->moveToNext
9f2c0 4c 69 6e 65 28 29 3b 0a 0a 77 68 69 6c 65 20 28 24 6e 6f 74 45 4f 46 20 26 26 20 24 74 68 69 73 Line();..while.($notEOF.&&.$this
9f2e0 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 29 20 7b 0a 24 6e 6f 74 45 4f ->isCurrentLineEmpty()).{.$notEO
9f300 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 7d 0a 0a F.=.$this->moveToNextLine();.}..
9f320 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 6f 74 45 4f 46 29 20 7b 0a 72 65 74 75 72 6e 20 if.(false.===.$notEOF).{.return.
9f340 66 61 6c 73 65 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 0a 24 74 68 false;.}..$ret.=.false;.if.(.$th
9f360 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 20 is->getCurrentLineIndentation().
9f380 3d 3d 20 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 0a 26 26 0a 24 74 68 69 73 2d ==.$currentIndentation.&&.$this-
9f3a0 3e 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 >isStringUnIndentedCollectionIte
9f3c0 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 0a 29 20 7b 0a 24 72 65 74 20 3d m($this->currentLine).).{.$ret.=
9f3e0 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c .true;.}..$this->moveToPreviousL
9f400 69 6e 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 ine();..return.$ret;.}.......pri
9f420 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 vate.function.isStringUnIndented
9f440 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 30 20 3d 3d 3d CollectionItem().{.return.(0.===
9f460 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 27 2d 20 27 .strpos($this->currentLine,.'-.'
9f480 29 29 3b 0a 7d 0a 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ));.}..}.<?php..........namespac
9f4a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 0a 0a 0a 0a 0a e.Symfony\Component\Yaml;.......
9f4c0 0a 63 6c 61 73 73 20 55 6e 65 73 63 61 70 65 72 0a 7b 0a 0a 20 0a 20 63 6f 6e 73 74 20 45 4e 43 .class.Unescaper.{.....const.ENC
9f4e0 4f 44 49 4e 47 20 3d 20 27 55 54 46 2d 38 27 3b 0a 0a 0a 20 0a 20 63 6f 6e 73 74 20 52 45 47 45 ODING.=.'UTF-8';......const.REGE
9f500 58 5f 45 53 43 41 50 45 44 5f 43 48 41 52 41 43 54 45 52 20 3d 20 22 5c 5c 5c 5c 28 5b 30 61 62 X_ESCAPED_CHARACTER.=."\\\\([0ab
9f520 74 5c 74 6e 76 66 72 65 20 5c 5c 5c 22 5c 5c 2f 5c 5c 5c 5c 4e 5f 4c 50 5d 7c 78 5b 30 2d 39 61 t\tnvfre.\\\"\\/\\\\N_LP]|x[0-9a
9f540 2d 66 41 2d 46 5d 7b 32 7d 7c 75 5b 30 2d 39 61 2d 66 41 2d 46 5d 7b 34 7d 7c 55 5b 30 2d 39 61 -fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a
9f560 2d 66 41 2d 46 5d 7b 38 7d 29 22 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 -fA-F]{8})";.........public.func
9f580 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 53 69 6e 67 6c 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 tion.unescapeSingleQuotedString(
9f5a0 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 27 $value).{.return.str_replace('\'
9f5c0 5c 27 27 2c 20 27 5c 27 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 \'',.'\'',.$value);.}.........pu
9f5e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 44 6f 75 62 6c 65 51 75 6f 74 blic.function.unescapeDoubleQuot
9f600 65 64 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 edString($value).{.$self.=.$this
9f620 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 6d 61 74 63 68 29 20 75 ;.$callback.=.function($match).u
9f640 73 65 20 28 24 73 65 6c 66 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 75 6e 65 73 63 se.($self).{.return.$self->unesc
9f660 61 70 65 43 68 61 72 61 63 74 65 72 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 3b 0a 0a 0a 20 72 apeCharacter($match[0]);.};....r
9f680 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 2f 27 2e eturn.preg_replace_callback('/'.
9f6a0 73 65 6c 66 3a 3a 52 45 47 45 58 5f 45 53 43 41 50 45 44 5f 43 48 41 52 41 43 54 45 52 2e 27 2f self::REGEX_ESCAPED_CHARACTER.'/
9f6c0 75 27 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a u',.$callback,.$value);.}.......
9f6e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 43 68 61 72 61 63 ..public.function.unescapeCharac
9f700 74 65 72 28 24 76 61 6c 75 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 76 61 6c 75 65 7b 31 7d 29 ter($value).{.switch.($value{1})
9f720 20 7b 0a 63 61 73 65 20 27 30 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 30 22 3b 0a 63 61 73 65 20 .{.case.'0':.return."\x0";.case.
9f740 27 61 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 37 22 3b 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 'a':.return."\x7";.case.'b':.ret
9f760 75 72 6e 20 22 5c 78 38 22 3b 0a 63 61 73 65 20 27 74 27 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 urn."\x8";.case.'t':.return."\t"
9f780 3b 0a 63 61 73 65 20 22 5c 74 22 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 ;.case."\t":.return."\t";.case.'
9f7a0 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 76 27 3a 0a 72 65 74 75 72 n':.return."\n";.case.'v':.retur
9f7c0 6e 20 22 5c 78 62 22 3b 0a 63 61 73 65 20 27 66 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 63 22 3b n."\xb";.case.'f':.return."\xc";
9f7e0 0a 63 61 73 65 20 27 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 64 22 3b 0a 63 61 73 65 20 27 65 .case.'r':.return."\xd";.case.'e
9f800 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 31 62 22 3b 0a 63 61 73 65 20 27 20 27 3a 0a 72 65 74 75 ':.return."\x1b";.case.'.':.retu
9f820 72 6e 20 27 20 27 3b 0a 63 61 73 65 20 27 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 rn.'.';.case.'"':.return.'"';.ca
9f840 73 65 20 27 2f 27 3a 0a 72 65 74 75 72 6e 20 27 2f 27 3b 0a 63 61 73 65 20 27 5c 5c 27 3a 0a 72 se.'/':.return.'/';.case.'\\':.r
9f860 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 4e 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 eturn.'\\';.case.'N':...return.$
9f880 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 22 5c 78 30 30 5c 78 38 35 22 this->convertEncoding("\x00\x85"
9f8a0 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 ,.self::ENCODING,.'UCS-2BE');.ca
9f8c0 73 65 20 27 5f 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 se.'_':...return.$this->convertE
9f8e0 6e 63 6f 64 69 6e 67 28 22 5c 78 30 30 5c 78 41 30 22 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 ncoding("\x00\xA0",.self::ENCODI
9f900 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 4c 27 3a 0a 0a 20 72 65 74 75 NG,.'UCS-2BE');.case.'L':...retu
9f920 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 22 5c 78 32 30 5c rn.$this->convertEncoding("\x20\
9f940 78 32 38 22 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 x28",.self::ENCODING,.'UCS-2BE')
9f960 3b 0a 63 61 73 65 20 27 50 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 ;.case.'P':...return.$this->conv
9f980 65 72 74 45 6e 63 6f 64 69 6e 67 28 22 5c 78 32 30 5c 78 32 39 22 2c 20 73 65 6c 66 3a 3a 45 4e ertEncoding("\x20\x29",.self::EN
9f9a0 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 78 27 3a 0a 24 63 CODING,.'UCS-2BE');.case.'x':.$c
9f9c0 68 61 72 20 3d 20 70 61 63 6b 28 27 6e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 har.=.pack('n',.hexdec(substr($v
9f9e0 61 6c 75 65 2c 20 32 2c 20 32 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f alue,.2,.2)));..return.$this->co
9fa00 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 nvertEncoding($char,.self::ENCOD
9fa20 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 75 27 3a 0a 24 63 68 61 72 ING,.'UCS-2BE');.case.'u':.$char
9fa40 20 3d 20 70 61 63 6b 28 27 6e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 61 6c 75 .=.pack('n',.hexdec(substr($valu
9fa60 65 2c 20 32 2c 20 34 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 e,.2,.4)));..return.$this->conve
9fa80 72 74 45 6e 63 6f 64 69 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 rtEncoding($char,.self::ENCODING
9faa0 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 55 27 3a 0a 24 63 68 61 72 20 3d 20 ,.'UCS-2BE');.case.'U':.$char.=.
9fac0 70 61 63 6b 28 27 4e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 pack('N',.hexdec(substr($value,.
9fae0 32 2c 20 38 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 2,.8)));..return.$this->convertE
9fb00 6e 63 6f 64 69 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 ncoding($char,.self::ENCODING,.'
9fb20 55 43 53 2d 34 42 45 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 UCS-4BE');.}.}.............priva
9fb40 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 24 76 61 6c te.function.convertEncoding($val
9fb60 75 65 2c 20 24 74 6f 2c 20 24 66 72 6f 6d 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 ue,.$to,.$from).{.if.(function_e
9fb80 78 69 73 74 73 28 27 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 20 7b 0a xists('mb_convert_encoding')).{.
9fba0 72 65 74 75 72 6e 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 24 76 61 6c 75 return.mb_convert_encoding($valu
9fbc0 65 2c 20 24 74 6f 2c 20 24 66 72 6f 6d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 6e 63 74 69 e,.$to,.$from);.}.elseif.(functi
9fbe0 6f 6e 5f 65 78 69 73 74 73 28 27 69 63 6f 6e 76 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 69 63 6f on_exists('iconv')).{.return.ico
9fc00 6e 76 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 nv($from,.$to,.$value);.}..throw
9fc20 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 73 75 69 74 61 62 .new.RuntimeException('No.suitab
9fc40 6c 65 20 63 6f 6e 76 65 72 74 20 65 6e 63 6f 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 28 69 6e le.convert.encoding.function.(in
9fc60 73 74 61 6c 6c 20 74 68 65 20 69 63 6f 6e 76 20 6f 72 20 6d 62 73 74 72 69 6e 67 20 65 78 74 65 stall.the.iconv.or.mbstring.exte
9fc80 6e 73 69 6f 6e 29 2e 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e nsion).');.}.}.<?php...........n
9fca0 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b amespace.Symfony\Component\Yaml;
9fcc0 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 ..use.Symfony\Component\Yaml\Exc
9fce0 65 70 74 69 6f 6e 5c 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 eption\ParseException;.........c
9fd00 6c 61 73 73 20 59 61 6d 6c 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lass.Yaml.{.....................
9fd20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 ......public.static.function.par
9fd40 73 65 28 24 69 6e 70 75 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 se($input,.$exceptionOnInvalidTy
9fd60 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c pe.=.false,.$objectSupport.=.fal
9fd80 73 65 29 0a 7b 0a 0a 20 24 66 69 6c 65 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 se).{...$file.=.'';.if.(strpos($
9fda0 69 6e 70 75 74 2c 20 22 5c 6e 22 29 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 69 73 5f 66 69 6c input,."\n").===.false.&&.is_fil
9fdc0 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 69 73 5f 72 65 e($input)).{.if.(false.===.is_re
9fde0 61 64 61 62 6c 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 adable($input)).{.throw.new.Pars
9fe00 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 eException(sprintf('Unable.to.pa
9fe20 72 73 65 20 22 25 73 22 20 61 73 20 74 68 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 72 65 61 64 rse."%s".as.the.file.is.not.read
9fe40 61 62 6c 65 2e 27 2c 20 24 69 6e 70 75 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 24 69 6e able.',.$input));.}..$file.=.$in
9fe60 70 75 74 3b 0a 24 69 6e 70 75 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 put;.$input.=.file_get_contents(
9fe80 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 79 61 6d 6c 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 29 3b $file);.}..$yaml.=.new.Parser();
9fea0 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 79 61 6d 6c 2d 3e 70 61 72 73 65 28 24 69 6e 70 ..try.{.return.$yaml->parse($inp
9fec0 75 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 ut,.$exceptionOnInvalidType,.$ob
9fee0 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 jectSupport);.}.catch.(ParseExce
9ff00 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 29 20 7b 0a 24 65 2d 3e 73 65 74 ption.$e).{.if.($file).{.$e->set
9ff20 50 61 72 73 65 64 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a ParsedFile($file);.}..throw.$e;.
9ff40 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 }.}..................public.stat
9ff60 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 61 72 72 61 79 2c 20 24 69 6e 6c 69 6e 65 ic.function.dump($array,.$inline
9ff80 20 3d 20 32 2c 20 24 69 6e 64 65 6e 74 20 3d 20 34 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 .=.2,.$indent.=.4,.$exceptionOnI
9ffa0 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f nvalidType.=.false,.$objectSuppo
9ffc0 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 79 61 6d 6c 20 3d 20 6e 65 77 20 44 75 6d 70 65 72 rt.=.false).{.$yaml.=.new.Dumper
9ffe0 28 29 3b 0a 24 79 61 6d 6c 2d 3e 73 65 74 49 6e 64 65 6e 74 61 74 69 6f 6e 28 24 69 6e 64 65 6e ();.$yaml->setIndentation($inden
a0000 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 79 61 6d 6c 2d 3e 64 75 6d 70 28 24 61 72 72 61 79 2c 20 t);..return.$yaml->dump($array,.
a0020 24 69 6e 6c 69 6e 65 2c 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 $inline,.0,.$exceptionOnInvalidT
a0040 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ype,.$objectSupport);.}.}.<?php.
a0060 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
a0080 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 65 72 0a 7b onent\Yaml;.......class.Dumper.{
a00a0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 34 ......protected.$indentation.=.4
a00c0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 64 65 6e ;.......public.function.setInden
a00e0 74 61 74 69 6f 6e 28 24 6e 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 61 74 69 6f tation($num).{.$this->indentatio
a0100 6e 20 3d 20 28 69 6e 74 29 20 24 6e 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 n.=.(int).$num;.}.............pu
a0120 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 69 6e 70 75 74 2c 20 24 69 6e 6c 69 blic.function.dump($input,.$inli
a0140 6e 65 20 3d 20 30 2c 20 24 69 6e 64 65 6e 74 20 3d 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f ne.=.0,.$indent.=.0,.$exceptionO
a0160 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 nInvalidType.=.false,.$objectSup
a0180 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 70 port.=.false).{.$output.=.'';.$p
a01a0 72 65 66 69 78 20 3d 20 24 69 6e 64 65 6e 74 20 3f 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 refix.=.$indent.?.str_repeat('.'
a01c0 2c 20 24 69 6e 64 65 6e 74 29 20 3a 20 27 27 3b 0a 0a 69 66 20 28 24 69 6e 6c 69 6e 65 20 3c 3d ,.$indent).:.'';..if.($inline.<=
a01e0 20 30 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 69 6e 70 75 74 29 20 7c 7c 20 65 6d 70 74 79 .0.||.!is_array($input).||.empty
a0200 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 70 72 65 66 69 78 2e 49 ($input)).{.$output..=.$prefix.I
a0220 6e 6c 69 6e 65 3a 3a 64 75 6d 70 28 24 69 6e 70 75 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e nline::dump($input,.$exceptionOn
a0240 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 20 InvalidType,.$objectSupport);.}.
a0260 65 6c 73 65 20 7b 0a 24 69 73 41 48 61 73 68 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 69 6e else.{.$isAHash.=.array_keys($in
a0280 70 75 74 29 20 21 3d 3d 20 72 61 6e 67 65 28 30 2c 20 63 6f 75 6e 74 28 24 69 6e 70 75 74 29 20 put).!==.range(0,.count($input).
a02a0 2d 20 31 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 20 61 73 20 24 6b 65 79 20 3d -.1);..foreach.($input.as.$key.=
a02c0 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3d 20 24 69 6e >.$value).{.$willBeInlined.=.$in
a02e0 6c 69 6e 65 20 2d 20 31 20 3c 3d 20 30 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 line.-.1.<=.0.||.!is_array($valu
a0300 65 29 20 7c 7c 20 65 6d 70 74 79 28 24 76 61 6c 75 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 2e 3d e).||.empty($value);..$output..=
a0320 20 73 70 72 69 6e 74 66 28 27 25 73 25 73 25 73 25 73 27 2c 0a 24 70 72 65 66 69 78 2c 0a 24 69 .sprintf('%s%s%s%s',.$prefix,.$i
a0340 73 41 48 61 73 68 20 3f 20 49 6e 6c 69 6e 65 3a 3a 64 75 6d 70 28 24 6b 65 79 2c 20 24 65 78 63 sAHash.?.Inline::dump($key,.$exc
a0360 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 eptionOnInvalidType,.$objectSupp
a0380 6f 72 74 29 2e 27 3a 27 20 3a 20 27 2d 27 2c 0a 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f ort).':'.:.'-',.$willBeInlined.?
a03a0 20 27 20 27 20 3a 20 22 5c 6e 22 2c 0a 24 74 68 69 73 2d 3e 64 75 6d 70 28 24 76 61 6c 75 65 2c .'.'.:."\n",.$this->dump($value,
a03c0 20 24 69 6e 6c 69 6e 65 20 2d 20 31 2c 20 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f 20 30 .$inline.-.1,.$willBeInlined.?.0
a03e0 20 3a 20 24 69 6e 64 65 6e 74 20 2b 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 61 74 69 6f 6e 2c .:.$indent.+.$this->indentation,
a0400 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 .$exceptionOnInvalidType,.$objec
a0420 74 53 75 70 70 6f 72 74 29 0a 29 2e 28 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f 20 22 5c tSupport).).($willBeInlined.?."\
a0440 6e 22 20 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d n".:.'');.}.}..return.$output;.}
a0460 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
a0480 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a fony\Component\Yaml\Exception;..
a04a0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 .......class.ParseException.exte
a04c0 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 nds.RuntimeException.{.private.$
a04e0 70 61 72 73 65 64 46 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 4c 69 6e 65 3b parsedFile;.private.$parsedLine;
a0500 0a 70 72 69 76 61 74 65 20 24 73 6e 69 70 70 65 74 3b 0a 70 72 69 76 61 74 65 20 24 72 61 77 4d .private.$snippet;.private.$rawM
a0520 65 73 73 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f essage;...........public.functio
a0540 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 70 61 72 73 65 64 4c n.__construct($message,.$parsedL
a0560 69 6e 65 20 3d 20 2d 31 2c 20 24 73 6e 69 70 70 65 74 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 72 73 ine.=.-1,.$snippet.=.null,.$pars
a0580 65 64 46 69 6c 65 20 3d 20 6e 75 6c 6c 2c 20 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f edFile.=.null,.Exception.$previo
a05a0 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 20 3d us.=.null).{.$this->parsedFile.=
a05c0 20 24 70 61 72 73 65 64 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 20 .$parsedFile;.$this->parsedLine.
a05e0 3d 20 24 70 61 72 73 65 64 4c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 20 3d 20 =.$parsedLine;.$this->snippet.=.
a0600 24 73 6e 69 70 70 65 74 3b 0a 24 74 68 69 73 2d 3e 72 61 77 4d 65 73 73 61 67 65 20 3d 20 24 6d $snippet;.$this->rawMessage.=.$m
a0620 65 73 73 61 67 65 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 3b 0a 0a 70 essage;..$this->updateRepr();..p
a0640 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 arent::__construct($this->messag
a0660 65 2c 20 30 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e,.0,.$previous);.}.......public
a0680 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6e 69 70 70 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getSnippet().{.return.
a06a0 24 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this->snippet;.}.......public.f
a06c0 75 6e 63 74 69 6f 6e 20 73 65 74 53 6e 69 70 70 65 74 28 24 73 6e 69 70 70 65 74 29 0a 7b 0a 24 unction.setSnippet($snippet).{.$
a06e0 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 20 3d 20 24 73 6e 69 70 70 65 74 3b 0a 0a 24 74 68 69 73 this->snippet.=.$snippet;..$this
a0700 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->updateRepr();.}.........public
a0720 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 73 65 64 46 69 6c 65 28 29 0a 7b 0a 72 65 74 75 .function.getParsedFile().{.retu
a0740 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$this->parsedFile;.}.......pu
a0760 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 72 73 65 64 46 69 6c 65 28 24 70 61 72 blic.function.setParsedFile($par
a0780 73 65 64 46 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 20 3d 20 24 sedFile).{.$this->parsedFile.=.$
a07a0 70 61 72 73 65 64 46 69 6c 65 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 parsedFile;..$this->updateRepr()
a07c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 ;.}.......public.function.getPar
a07e0 73 65 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 64 sedLine().{.return.$this->parsed
a0800 4c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 Line;.}.......public.function.se
a0820 74 50 61 72 73 65 64 4c 69 6e 65 28 24 70 61 72 73 65 64 4c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 tParsedLine($parsedLine).{.$this
a0840 2d 3e 70 61 72 73 65 64 4c 69 6e 65 20 3d 20 24 70 61 72 73 65 64 4c 69 6e 65 3b 0a 0a 24 74 68 ->parsedLine.=.$parsedLine;..$th
a0860 69 73 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e is->updateRepr();.}..private.fun
a0880 63 74 69 6f 6e 20 75 70 64 61 74 65 52 65 70 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 ction.updateRepr().{.$this->mess
a08a0 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 61 77 4d 65 73 73 61 67 65 3b 0a 0a 24 64 6f 74 20 3d age.=.$this->rawMessage;..$dot.=
a08c0 20 66 61 6c 73 65 3b 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 .false;.if.('.'.===.substr($this
a08e0 2d 3e 6d 65 73 73 61 67 65 2c 20 2d 31 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 ->message,.-1)).{.$this->message
a0900 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 2c 20 30 2c 20 2d 31 29 .=.substr($this->message,.0,.-1)
a0920 3b 0a 24 64 6f 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ;.$dot.=.true;.}..if.(null.!==.$
a0940 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 this->parsedFile).{.$this->messa
a0960 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 20 69 6e 20 25 73 27 2c 20 6a 73 6f 6e 5f 65 6e 63 ge..=.sprintf('.in.%s',.json_enc
a0980 6f 64 65 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 ode($this->parsedFile));.}..if.(
a09a0 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 20 3e 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d $this->parsedLine.>=.0).{.$this-
a09c0 3e 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 20 61 74 20 6c 69 6e 65 20 25 64 >message..=.sprintf('.at.line.%d
a09e0 27 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 ',.$this->parsedLine);.}..if.($t
a0a00 68 69 73 2d 3e 73 6e 69 70 70 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 2e his->snippet).{.$this->message..
a0a20 3d 20 73 70 72 69 6e 74 66 28 27 20 28 6e 65 61 72 20 22 25 73 22 29 27 2c 20 24 74 68 69 73 2d =.sprintf('.(near."%s")',.$this-
a0a40 3e 73 6e 69 70 70 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 6f 74 29 20 7b 0a 24 74 68 69 73 2d >snippet);.}..if.($dot).{.$this-
a0a60 3e 6d 65 73 73 61 67 65 20 2e 3d 20 27 2e 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >message..=.'.';.}.}.}.<?php....
a0a80 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
a0aa0 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 nt\Yaml\Exception;.........inter
a0ac0 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 face.ExceptionInterface.{.}.<?ph
a0ae0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
a0b00 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a mponent\Yaml\Exception;.........
a0b20 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c class.RuntimeException.extends.\
a0b40 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 RuntimeException.implements.Exce
a0b60 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ptionInterface.{.}.<?php........
a0b80 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 ...namespace.Symfony\Component\Y
a0ba0 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d aml\Exception;.........class.Dum
a0bc0 70 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 pException.extends.RuntimeExcept
a0be0 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ion.{.}.<?php..........namespace
a0c00 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a .Symfony\Component\Yaml;........
a0c20 63 6c 61 73 73 20 45 73 63 61 70 65 72 0a 7b 0a 0a 20 63 6f 6e 73 74 20 52 45 47 45 58 5f 43 48 class.Escaper.{...const.REGEX_CH
a0c40 41 52 41 43 54 45 52 5f 54 4f 5f 45 53 43 41 50 45 20 3d 20 22 5b 5c 5c 78 30 30 2d 5c 5c 78 31 ARACTER_TO_ESCAPE.=."[\\x00-\\x1
a0c60 66 5d 7c 5c 78 63 32 5c 78 38 35 7c 5c 78 63 32 5c 78 61 30 7c 5c 78 65 32 5c 78 38 30 5c 78 61 f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa
a0c80 38 7c 5c 78 65 32 5c 78 38 30 5c 78 61 39 22 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 70 72 69 76 61 74 8|\xe2\x80\xa9";..........privat
a0ca0 65 20 73 74 61 74 69 63 20 24 65 73 63 61 70 65 65 73 20 3d 20 61 72 72 61 79 28 27 5c 5c 5c 5c e.static.$escapees.=.array('\\\\
a0cc0 27 2c 20 27 5c 5c 22 27 2c 20 27 22 27 2c 0a 22 5c 78 30 30 22 2c 20 22 5c 78 30 31 22 2c 20 22 ',.'\\"',.'"',."\x00",."\x01",."
a0ce0 5c 78 30 32 22 2c 20 22 5c 78 30 33 22 2c 20 22 5c 78 30 34 22 2c 20 22 5c 78 30 35 22 2c 20 22 \x02",."\x03",."\x04",."\x05",."
a0d00 5c 78 30 36 22 2c 20 22 5c 78 30 37 22 2c 0a 22 5c 78 30 38 22 2c 20 22 5c 78 30 39 22 2c 20 22 \x06",."\x07",."\x08",."\x09",."
a0d20 5c 78 30 61 22 2c 20 22 5c 78 30 62 22 2c 20 22 5c 78 30 63 22 2c 20 22 5c 78 30 64 22 2c 20 22 \x0a",."\x0b",."\x0c",."\x0d",."
a0d40 5c 78 30 65 22 2c 20 22 5c 78 30 66 22 2c 0a 22 5c 78 31 30 22 2c 20 22 5c 78 31 31 22 2c 20 22 \x0e",."\x0f",."\x10",."\x11",."
a0d60 5c 78 31 32 22 2c 20 22 5c 78 31 33 22 2c 20 22 5c 78 31 34 22 2c 20 22 5c 78 31 35 22 2c 20 22 \x12",."\x13",."\x14",."\x15",."
a0d80 5c 78 31 36 22 2c 20 22 5c 78 31 37 22 2c 0a 22 5c 78 31 38 22 2c 20 22 5c 78 31 39 22 2c 20 22 \x16",."\x17",."\x18",."\x19",."
a0da0 5c 78 31 61 22 2c 20 22 5c 78 31 62 22 2c 20 22 5c 78 31 63 22 2c 20 22 5c 78 31 64 22 2c 20 22 \x1a",."\x1b",."\x1c",."\x1d",."
a0dc0 5c 78 31 65 22 2c 20 22 5c 78 31 66 22 2c 0a 22 5c 78 63 32 5c 78 38 35 22 2c 20 22 5c 78 63 32 \x1e",."\x1f",."\xc2\x85",."\xc2
a0de0 5c 78 61 30 22 2c 20 22 5c 78 65 32 5c 78 38 30 5c 78 61 38 22 2c 20 22 5c 78 65 32 5c 78 38 30 \xa0",."\xe2\x80\xa8",."\xe2\x80
a0e00 5c 78 61 39 22 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 65 73 63 61 70 65 64 20 \xa9");.private.static.$escaped.
a0e20 3d 20 61 72 72 61 79 28 27 5c 5c 22 27 2c 20 27 5c 5c 5c 5c 27 2c 20 27 5c 5c 22 27 2c 0a 22 5c =.array('\\"',.'\\\\',.'\\"',."\
a0e40 5c 30 22 2c 20 22 5c 5c 78 30 31 22 2c 20 22 5c 5c 78 30 32 22 2c 20 22 5c 5c 78 30 33 22 2c 20 \0",."\\x01",."\\x02",."\\x03",.
a0e60 22 5c 5c 78 30 34 22 2c 20 22 5c 5c 78 30 35 22 2c 20 22 5c 5c 78 30 36 22 2c 20 22 5c 5c 61 22 "\\x04",."\\x05",."\\x06",."\\a"
a0e80 2c 0a 22 5c 5c 62 22 2c 20 22 5c 5c 74 22 2c 20 22 5c 5c 6e 22 2c 20 22 5c 5c 76 22 2c 20 22 5c ,."\\b",."\\t",."\\n",."\\v",."\
a0ea0 5c 66 22 2c 20 22 5c 5c 72 22 2c 20 22 5c 5c 78 30 65 22 2c 20 22 5c 5c 78 30 66 22 2c 0a 22 5c \f",."\\r",."\\x0e",."\\x0f",."\
a0ec0 5c 78 31 30 22 2c 20 22 5c 5c 78 31 31 22 2c 20 22 5c 5c 78 31 32 22 2c 20 22 5c 5c 78 31 33 22 \x10",."\\x11",."\\x12",."\\x13"
a0ee0 2c 20 22 5c 5c 78 31 34 22 2c 20 22 5c 5c 78 31 35 22 2c 20 22 5c 5c 78 31 36 22 2c 20 22 5c 5c ,."\\x14",."\\x15",."\\x16",."\\
a0f00 78 31 37 22 2c 0a 22 5c 5c 78 31 38 22 2c 20 22 5c 5c 78 31 39 22 2c 20 22 5c 5c 78 31 61 22 2c x17",."\\x18",."\\x19",."\\x1a",
a0f20 20 22 5c 5c 65 22 2c 20 22 5c 5c 78 31 63 22 2c 20 22 5c 5c 78 31 64 22 2c 20 22 5c 5c 78 31 65 ."\\e",."\\x1c",."\\x1d",."\\x1e
a0f40 22 2c 20 22 5c 5c 78 31 66 22 2c 0a 22 5c 5c 4e 22 2c 20 22 5c 5c 5f 22 2c 20 22 5c 5c 4c 22 2c ",."\\x1f",."\\N",."\\_",."\\L",
a0f60 20 22 5c 5c 50 22 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 ."\\P");.........public.static.f
a0f80 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 44 6f 75 62 6c 65 51 75 6f 74 69 6e 67 28 24 76 unction.requiresDoubleQuoting($v
a0fa0 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 alue).{.return.preg_match('/'.se
a0fc0 6c 66 3a 3a 52 45 47 45 58 5f 43 48 41 52 41 43 54 45 52 5f 54 4f 5f 45 53 43 41 50 45 2e 27 2f lf::REGEX_CHARACTER_TO_ESCAPE.'/
a0fe0 75 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 u',.$value);.}.........public.st
a1000 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 57 69 74 68 44 6f 75 62 6c 65 51 75 atic.function.escapeWithDoubleQu
a1020 6f 74 65 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 22 otes($value).{.return.sprintf('"
a1040 25 73 22 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 73 65 6c 66 3a 3a 24 65 73 63 61 70 65 65 %s"',.str_replace(self::$escapee
a1060 73 2c 20 73 65 6c 66 3a 3a 24 65 73 63 61 70 65 64 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 0a s,.self::$escaped,.$value));.}..
a1080 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 .......public.static.function.re
a10a0 71 75 69 72 65 73 53 69 6e 67 6c 65 51 75 6f 74 69 6e 67 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 quiresSingleQuoting($value).{.re
a10c0 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 20 5c 73 20 5c 27 20 22 20 5c 3a 20 5c turn.preg_match('/[.\s.\'.".\:.\
a10e0 7b 20 5c 7d 20 5c 5b 20 5c 5d 20 2c 20 26 20 5c 2a 20 5c 23 20 5c 3f 5d 20 7c 20 5c 41 5b 20 2d {.\}.\[.\].,.&.\*.\#.\?].|.\A[.-
a1100 20 3f 20 7c 20 3c 20 3e 20 3d 20 21 20 25 20 40 20 60 20 5d 2f 78 27 2c 20 24 76 61 6c 75 65 29 .?.|.<.>.=.!.%.@.`.]/x',.$value)
a1120 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 ;.}.........public.static.functi
a1140 6f 6e 20 65 73 63 61 70 65 57 69 74 68 53 69 6e 67 6c 65 51 75 6f 74 65 73 28 24 76 61 6c 75 65 on.escapeWithSingleQuotes($value
a1160 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 22 2c 20 73 74 72 5f 72 ).{.return.sprintf("'%s'",.str_r
a1180 65 70 6c 61 63 65 28 27 5c 27 27 2c 20 27 5c 27 5c 27 27 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d eplace('\'',.'\'\'',.$value));.}
a11a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 .}.<?php..........namespace.Symf
a11c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ony\Component\Yaml;..use.Symfony
a11e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 5c 50 61 72 73 65 45 \Component\Yaml\Exception\ParseE
a1200 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c xception;.use.Symfony\Component\
a1220 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 5c 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a Yaml\Exception\DumpException;...
a1240 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 6c 69 6e 65 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 ....class.Inline.{.const.REGEX_Q
a1260 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f UOTED_STRING.=.'(?:"([^"\\\\]*(?
a1280 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5d 2a 28 3f 3a :\\\\.[^"\\\\]*)*)"|\'([^\']*(?:
a12a0 5c 27 5c 27 5b 5e 5c 27 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 \'\'[^\']*)*)\')';..private.stat
a12c0 69 63 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c ic.$exceptionOnInvalidType.=.fal
a12e0 73 65 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 se;.private.static.$objectSuppor
a1300 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 t.=.false;.............public.st
a1320 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 atic.function.parse($value,.$exc
a1340 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 eptionOnInvalidType.=.false,.$ob
a1360 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 65 6c 66 3a 3a 24 65 78 jectSupport.=.false).{.self::$ex
a1380 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 24 65 78 63 65 70 74 69 6f ceptionOnInvalidType.=.$exceptio
a13a0 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 3b 0a 73 65 6c 66 3a 3a 24 6f 62 6a 65 63 74 53 75 70 nOnInvalidType;.self::$objectSup
a13c0 70 6f 72 74 20 3d 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 3b 0a 0a 24 76 61 6c 75 65 20 3d port.=.$objectSupport;..$value.=
a13e0 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 73 74 72 6c 65 6e 28 .trim($value);..if.(0.==.strlen(
a1400 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e $value)).{.return.'';.}..if.(fun
a1420 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 ction_exists('mb_internal_encodi
a1440 6e 67 27 29 20 26 26 20 28 28 69 6e 74 29 20 69 6e 69 5f 67 65 74 28 27 6d 62 73 74 72 69 6e 67 ng').&&.((int).ini_get('mbstring
a1460 2e 66 75 6e 63 5f 6f 76 65 72 6c 6f 61 64 27 29 29 20 26 20 32 29 20 7b 0a 24 6d 62 45 6e 63 6f .func_overload')).&.2).{.$mbEnco
a1480 64 69 6e 67 20 3d 20 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 29 3b 0a 6d ding.=.mb_internal_encoding();.m
a14a0 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 27 41 53 43 49 49 27 29 3b 0a 7d 0a b_internal_encoding('ASCII');.}.
a14c0 0a 24 69 20 3d 20 30 3b 0a 73 77 69 74 63 68 20 28 24 76 61 6c 75 65 5b 30 5d 29 20 7b 0a 63 61 .$i.=.0;.switch.($value[0]).{.ca
a14e0 73 65 20 27 5b 27 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 65 71 se.'[':.$result.=.self::parseSeq
a1500 75 65 6e 63 65 28 24 76 61 6c 75 65 2c 20 24 69 29 3b 0a 2b 2b 24 69 3b 0a 62 72 65 61 6b 3b 0a uence($value,.$i);.++$i;.break;.
a1520 63 61 73 65 20 27 7b 27 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 4d case.'{':.$result.=.self::parseM
a1540 61 70 70 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 69 29 3b 0a 2b 2b 24 69 3b 0a 62 72 65 61 6b 3b apping($value,.$i);.++$i;.break;
a1560 0a 64 65 66 61 75 6c 74 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 .default:.$result.=.self::parseS
a1580 63 61 6c 61 72 28 24 76 61 6c 75 65 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 calar($value,.null,.array('"',."
a15a0 27 22 29 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 '"),.$i);.}....if.(preg_replace(
a15c0 27 2f 5c 73 2b 23 2e 2a 24 2f 41 27 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c '/\s+#.*$/A',.'',.substr($value,
a15e0 20 24 69 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f .$i))).{.throw.new.ParseExceptio
a1600 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 65 78 70 65 63 74 65 64 20 63 68 61 72 61 63 74 65 72 73 n(sprintf('Unexpected.characters
a1620 20 6e 65 61 72 20 22 25 73 22 2e 27 2c 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 24 69 29 .near."%s".',.substr($value,.$i)
a1640 29 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 29 20 7b ));.}..if.(isset($mbEncoding)).{
a1660 0a 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 24 6d 62 45 6e 63 6f 64 69 6e .mb_internal_encoding($mbEncodin
a1680 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a g);.}..return.$result;.}........
a16a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 .....public.static.function.dump
a16c0 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 ($value,.$exceptionOnInvalidType
a16e0 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 .=.false,.$objectSupport.=.false
a1700 29 0a 7b 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 69 73 5f 72 65 73 6f ).{.switch.(true).{.case.is_reso
a1720 75 72 63 65 28 24 76 61 6c 75 65 29 3a 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e urce($value):.if.($exceptionOnIn
a1740 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 44 75 6d 70 45 78 63 65 70 validType).{.throw.new.DumpExcep
a1760 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 64 75 6d 70 20 50 48 50 tion(sprintf('Unable.to.dump.PHP
a1780 20 72 65 73 6f 75 72 63 65 73 20 69 6e 20 61 20 59 41 4d 4c 20 66 69 6c 65 20 28 22 25 73 22 29 .resources.in.a.YAML.file.("%s")
a17a0 2e 27 2c 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 76 61 6c 75 65 29 29 29 3b .',.get_resource_type($value)));
a17c0 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 6e 75 6c 6c 27 3b 0a 63 61 73 65 20 69 73 5f 6f 62 6a 65 63 .}..return.'null';.case.is_objec
a17e0 74 28 24 76 61 6c 75 65 29 3a 0a 69 66 20 28 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 20 7b t($value):.if.($objectSupport).{
a1800 0a 72 65 74 75 72 6e 20 27 21 21 70 68 70 2f 6f 62 6a 65 63 74 3a 27 2e 73 65 72 69 61 6c 69 7a .return.'!!php/object:'.serializ
a1820 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e e($value);.}..if.($exceptionOnIn
a1840 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 44 75 6d 70 45 78 63 65 70 validType).{.throw.new.DumpExcep
a1860 74 69 6f 6e 28 27 4f 62 6a 65 63 74 20 73 75 70 70 6f 72 74 20 77 68 65 6e 20 64 75 6d 70 69 6e tion('Object.support.when.dumpin
a1880 67 20 61 20 59 41 4d 4c 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e g.a.YAML.file.has.been.disabled.
a18a0 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 6e 75 6c 6c 27 3b 0a 63 61 73 65 20 69 73 5f 61 72 ');.}..return.'null';.case.is_ar
a18c0 72 61 79 28 24 76 61 6c 75 65 29 3a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 64 75 6d 70 41 72 ray($value):.return.self::dumpAr
a18e0 72 61 79 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 ray($value,.$exceptionOnInvalidT
a1900 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 63 61 73 65 20 6e 75 6c 6c 20 ype,.$objectSupport);.case.null.
a1920 3d 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 72 6e 20 27 6e 75 6c 6c 27 3b 0a 63 61 73 65 20 ===.$value:.return.'null';.case.
a1940 74 72 75 65 20 3d 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 72 6e 20 27 74 72 75 65 27 3b 0a true.===.$value:.return.'true';.
a1960 63 61 73 65 20 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 72 6e 20 27 66 case.false.===.$value:.return.'f
a1980 61 6c 73 65 27 3b 0a 63 61 73 65 20 63 74 79 70 65 5f 64 69 67 69 74 28 24 76 61 6c 75 65 29 3a alse';.case.ctype_digit($value):
a19a0 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 20 3f 20 22 27 24 76 .return.is_string($value).?."'$v
a19c0 61 6c 75 65 27 22 20 3a 20 28 69 6e 74 29 20 24 76 61 6c 75 65 3b 0a 63 61 73 65 20 69 73 5f 6e alue'".:.(int).$value;.case.is_n
a19e0 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 3a 0a 24 6c 6f 63 61 6c 65 20 3d 20 73 65 74 6c 6f 63 umeric($value):.$locale.=.setloc
a1a00 61 6c 65 28 4c 43 5f 4e 55 4d 45 52 49 43 2c 20 30 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d ale(LC_NUMERIC,.0);.if.(false.!=
a1a20 3d 20 24 6c 6f 63 61 6c 65 29 20 7b 0a 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f 4e 55 4d 45 52 49 =.$locale).{.setlocale(LC_NUMERI
a1a40 43 2c 20 27 43 27 29 3b 0a 7d 0a 24 72 65 70 72 20 3d 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 C,.'C');.}.$repr.=.is_string($va
a1a60 6c 75 65 29 20 3f 20 22 27 24 76 61 6c 75 65 27 22 20 3a 20 28 69 73 5f 69 6e 66 69 6e 69 74 65 lue).?."'$value'".:.(is_infinite
a1a80 28 24 76 61 6c 75 65 29 20 3f 20 73 74 72 5f 69 72 65 70 6c 61 63 65 28 27 49 4e 46 27 2c 20 27 ($value).?.str_ireplace('INF',.'
a1aa0 2e 49 6e 66 27 2c 20 73 74 72 76 61 6c 28 24 76 61 6c 75 65 29 29 20 3a 20 73 74 72 76 61 6c 28 .Inf',.strval($value)).:.strval(
a1ac0 24 76 61 6c 75 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 6c 6f 63 61 6c 65 $value));..if.(false.!==.$locale
a1ae0 29 20 7b 0a 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f 4e 55 4d 45 52 49 43 2c 20 24 6c 6f 63 61 6c ).{.setlocale(LC_NUMERIC,.$local
a1b00 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 72 3b 0a 63 61 73 65 20 45 73 63 61 70 65 e);.}..return.$repr;.case.Escape
a1b20 72 3a 3a 72 65 71 75 69 72 65 73 44 6f 75 62 6c 65 51 75 6f 74 69 6e 67 28 24 76 61 6c 75 65 29 r::requiresDoubleQuoting($value)
a1b40 3a 0a 72 65 74 75 72 6e 20 45 73 63 61 70 65 72 3a 3a 65 73 63 61 70 65 57 69 74 68 44 6f 75 62 :.return.Escaper::escapeWithDoub
a1b60 6c 65 51 75 6f 74 65 73 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 45 73 63 61 70 65 72 3a 3a leQuotes($value);.case.Escaper::
a1b80 72 65 71 75 69 72 65 73 53 69 6e 67 6c 65 51 75 6f 74 69 6e 67 28 24 76 61 6c 75 65 29 3a 0a 72 requiresSingleQuoting($value):.r
a1ba0 65 74 75 72 6e 20 45 73 63 61 70 65 72 3a 3a 65 73 63 61 70 65 57 69 74 68 53 69 6e 67 6c 65 51 eturn.Escaper::escapeWithSingleQ
a1bc0 75 6f 74 65 73 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 27 20 3d 3d 20 24 76 61 6c 75 65 uotes($value);.case.''.==.$value
a1be0 3a 0a 72 65 74 75 72 6e 20 22 27 27 22 3b 0a 63 61 73 65 20 70 72 65 67 5f 6d 61 74 63 68 28 73 :.return."''";.case.preg_match(s
a1c00 65 6c 66 3a 3a 67 65 74 54 69 6d 65 73 74 61 6d 70 52 65 67 65 78 28 29 2c 20 24 76 61 6c 75 65 elf::getTimestampRegex(),.$value
a1c20 29 3a 0a 63 61 73 65 20 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 61 6c ):.case.in_array(strtolower($val
a1c40 75 65 29 2c 20 61 72 72 61 79 28 27 6e 75 6c 6c 27 2c 20 27 7e 27 2c 20 27 74 72 75 65 27 2c 20 ue),.array('null',.'~',.'true',.
a1c60 27 66 61 6c 73 65 27 29 29 3a 0a 72 65 74 75 72 6e 20 22 27 24 76 61 6c 75 65 27 22 3b 0a 64 65 'false')):.return."'$value'";.de
a1c80 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a fault:.return.$value;.}.}.......
a1ca0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 ....private.static.function.dump
a1cc0 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 Array($value,.$exceptionOnInvali
a1ce0 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 0a 7b 0a 0a 20 24 6b 65 79 73 dType,.$objectSupport).{...$keys
a1d00 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 76 61 6c 75 65 29 3b 0a 69 66 20 28 28 31 20 3d 3d .=.array_keys($value);.if.((1.==
a1d20 20 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 26 26 20 27 30 27 20 3d 3d 20 24 6b 65 79 73 5b 30 5d .count($keys).&&.'0'.==.$keys[0]
a1d40 29 0a 7c 7c 20 28 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 3e 20 31 20 26 26 20 61 72 72 61 79 5f ).||.(count($keys).>.1.&&.array_
a1d60 72 65 64 75 63 65 28 24 6b 65 79 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 2c 20 24 77 29 20 reduce($keys,.function.($v,.$w).
a1d80 7b 20 72 65 74 75 72 6e 20 28 69 6e 74 65 67 65 72 29 20 24 76 20 2b 20 24 77 3b 20 7d 2c 20 30 {.return.(integer).$v.+.$w;.},.0
a1da0 29 20 3d 3d 20 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 2a 20 28 63 6f 75 6e 74 28 24 6b 65 79 73 ).==.count($keys).*.(count($keys
a1dc0 29 20 2d 20 31 29 20 2f 20 32 29 0a 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 61 72 72 61 79 28 ).-.1)./.2).).{.$output.=.array(
a1de0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 76 61 6c 29 20 7b 0a 24 6f );.foreach.($value.as.$val).{.$o
a1e00 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a 3a 64 75 6d 70 28 24 76 61 6c 2c 20 24 65 78 63 65 utput[].=.self::dump($val,.$exce
a1e20 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f ptionOnInvalidType,.$objectSuppo
a1e40 72 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 27 2c 20 69 rt);.}..return.sprintf('[%s]',.i
a1e60 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6f 75 74 70 75 74 29 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 mplode(',.',.$output));.}....$ou
a1e80 74 70 75 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 tput.=.array();.foreach.($value.
a1ea0 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 as.$key.=>.$val).{.$output[].=.s
a1ec0 70 72 69 6e 74 66 28 27 25 73 3a 20 25 73 27 2c 20 73 65 6c 66 3a 3a 64 75 6d 70 28 24 6b 65 79 printf('%s:.%s',.self::dump($key
a1ee0 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 ,.$exceptionOnInvalidType,.$obje
a1f00 63 74 53 75 70 70 6f 72 74 29 2c 20 73 65 6c 66 3a 3a 64 75 6d 70 28 24 76 61 6c 2c 20 24 65 78 ctSupport),.self::dump($val,.$ex
a1f20 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 ceptionOnInvalidType,.$objectSup
a1f40 70 6f 72 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 7b 20 25 73 20 port));.}..return.sprintf('{.%s.
a1f60 7d 27 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6f 75 74 70 75 74 29 29 3b 0a 7d 0a 0a }',.implode(',.',.$output));.}..
a1f80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 .............public.static.funct
a1fa0 69 6f 6e 20 70 61 72 73 65 53 63 61 6c 61 72 28 24 73 63 61 6c 61 72 2c 20 24 64 65 6c 69 6d 69 ion.parseScalar($scalar,.$delimi
a1fc0 74 65 72 73 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 72 69 6e 67 44 65 6c 69 6d 69 74 65 72 73 20 3d ters.=.null,.$stringDelimiters.=
a1fe0 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c 20 26 24 69 20 3d 20 30 2c 20 24 65 76 61 6c .array('"',."'"),.&$i.=.0,.$eval
a2000 75 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 73 63 61 uate.=.true).{.if.(in_array($sca
a2020 6c 61 72 5b 24 69 5d 2c 20 24 73 74 72 69 6e 67 44 65 6c 69 6d 69 74 65 72 73 29 29 20 7b 0a 0a lar[$i],.$stringDelimiters)).{..
a2040 20 24 6f 75 74 70 75 74 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 51 75 6f 74 65 64 53 63 61 6c .$output.=.self::parseQuotedScal
a2060 61 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ar($scalar,.$i);..if.(null.!==.$
a2080 64 65 6c 69 6d 69 74 65 72 73 29 20 7b 0a 24 74 6d 70 20 3d 20 6c 74 72 69 6d 28 73 75 62 73 74 delimiters).{.$tmp.=.ltrim(subst
a20a0 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 2c 20 27 20 27 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 r($scalar,.$i),.'.');.if.(!in_ar
a20c0 72 61 79 28 24 74 6d 70 5b 30 5d 2c 20 24 64 65 6c 69 6d 69 74 65 72 73 29 29 20 7b 0a 74 68 72 ray($tmp[0],.$delimiters)).{.thr
a20e0 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 ow.new.ParseException(sprintf('U
a2100 6e 65 78 70 65 63 74 65 64 20 63 68 61 72 61 63 74 65 72 73 20 28 25 73 29 2e 27 2c 20 73 75 62 nexpected.characters.(%s).',.sub
a2120 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 29 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b str($scalar,.$i)));.}.}.}.else.{
a2140 0a 0a 20 69 66 20 28 21 24 64 65 6c 69 6d 69 74 65 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d ...if.(!$delimiters).{.$output.=
a2160 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 3b 0a 24 69 20 2b 3d 20 73 74 72 6c .substr($scalar,.$i);.$i.+=.strl
a2180 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 en($output);....if.(false.!==.$s
a21a0 74 72 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 20 23 27 29 29 20 7b trpos.=.strpos($output,.'.#')).{
a21c0 0a 24 6f 75 74 70 75 74 20 3d 20 72 74 72 69 6d 28 73 75 62 73 74 72 28 24 6f 75 74 70 75 74 2c .$output.=.rtrim(substr($output,
a21e0 20 30 2c 20 24 73 74 72 70 6f 73 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f .0,.$strpos));.}.}.elseif.(preg_
a2200 6d 61 74 63 68 28 27 2f 5e 28 2e 2b 3f 29 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 64 match('/^(.+?)('.implode('|',.$d
a2220 65 6c 69 6d 69 74 65 72 73 29 2e 27 29 2f 27 2c 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c elimiters).')/',.substr($scalar,
a2240 20 24 69 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 6d 61 74 63 .$i),.$match)).{.$output.=.$matc
a2260 68 5b 31 5d 3b 0a 24 69 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 h[1];.$i.+=.strlen($output);.}.e
a2280 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 lse.{.throw.new.ParseException(s
a22a0 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 6e 6c 69 6e 65 20 59 41 4d 4c 20 73 74 printf('Malformed.inline.YAML.st
a22c0 72 69 6e 67 20 28 25 73 29 2e 27 2c 20 24 73 63 61 6c 61 72 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 ring.(%s).',.$scalar));.}..$outp
a22e0 75 74 20 3d 20 24 65 76 61 6c 75 61 74 65 20 3f 20 73 65 6c 66 3a 3a 65 76 61 6c 75 61 74 65 53 ut.=.$evaluate.?.self::evaluateS
a2300 63 61 6c 61 72 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 72 65 74 calar($output).:.$output;.}..ret
a2320 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 urn.$output;.}............privat
a2340 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 51 75 6f 74 65 64 53 63 61 e.static.function.parseQuotedSca
a2360 6c 61 72 28 24 73 63 61 6c 61 72 2c 20 26 24 69 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 lar($scalar,.&$i).{.if.(!preg_ma
a2380 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e tch('/'.self::REGEX_QUOTED_STRIN
a23a0 47 2e 27 2f 41 75 27 2c 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 2c 20 24 6d G.'/Au',.substr($scalar,.$i),.$m
a23c0 61 74 63 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f atch)).{.throw.new.ParseExceptio
a23e0 6e 28 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 6e 6c 69 6e 65 20 59 41 4d 4c n(sprintf('Malformed.inline.YAML
a2400 20 73 74 72 69 6e 67 20 28 25 73 29 2e 27 2c 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 .string.(%s).',.substr($scalar,.
a2420 24 69 29 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 6d 61 74 63 $i)));.}..$output.=.substr($matc
a2440 68 5b 30 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 3b h[0],.1,.strlen($match[0]).-.2);
a2460 0a 0a 24 75 6e 65 73 63 61 70 65 72 20 3d 20 6e 65 77 20 55 6e 65 73 63 61 70 65 72 28 29 3b 0a ..$unescaper.=.new.Unescaper();.
a2480 69 66 20 28 27 22 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b 24 69 5d 29 20 7b 0a 24 6f 75 74 70 75 if.('"'.==.$scalar[$i]).{.$outpu
a24a0 74 20 3d 20 24 75 6e 65 73 63 61 70 65 72 2d 3e 75 6e 65 73 63 61 70 65 44 6f 75 62 6c 65 51 75 t.=.$unescaper->unescapeDoubleQu
a24c0 6f 74 65 64 53 74 72 69 6e 67 28 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f otedString($output);.}.else.{.$o
a24e0 75 74 70 75 74 20 3d 20 24 75 6e 65 73 63 61 70 65 72 2d 3e 75 6e 65 73 63 61 70 65 53 69 6e 67 utput.=.$unescaper->unescapeSing
a2500 6c 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 20 2b leQuotedString($output);.}..$i.+
a2520 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 =.strlen($match[0]);..return.$ou
a2540 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 tput;.}............private.stati
a2560 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 75 65 6e c.function.parseSequence($sequen
a2580 63 65 2c 20 26 24 69 20 3d 20 30 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 61 72 72 61 79 28 29 ce,.&$i.=.0).{.$output.=.array()
a25a0 3b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 73 65 71 75 65 6e 63 65 29 3b 0a 24 69 20 2b ;.$len.=.strlen($sequence);.$i.+
a25c0 3d 20 31 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 69 20 3c 20 24 6c 65 6e 29 20 7b 0a 73 77 69 74 =.1;....while.($i.<.$len).{.swit
a25e0 63 68 20 28 24 73 65 71 75 65 6e 63 65 5b 24 69 5d 29 20 7b 0a 63 61 73 65 20 27 5b 27 3a 0a 0a ch.($sequence[$i]).{.case.'[':..
a2600 20 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 65 71 75 65 6e 63 65 .$output[].=.self::parseSequence
a2620 28 24 73 65 71 75 65 6e 63 65 2c 20 24 69 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 7b 27 ($sequence,.$i);.break;.case.'{'
a2640 3a 0a 0a 20 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 4d 61 70 70 69 :...$output[].=.self::parseMappi
a2660 6e 67 28 24 73 65 71 75 65 6e 63 65 2c 20 24 69 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 ng($sequence,.$i);.break;.case.'
a2680 5d 27 3a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 63 61 73 65 20 27 2c 27 3a 0a 63 61 ]':.return.$output;.case.',':.ca
a26a0 73 65 20 27 20 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 69 73 51 75 6f 74 65 se.'.':.break;.default:.$isQuote
a26c0 64 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 73 65 71 75 65 6e 63 65 5b 24 69 5d 2c 20 61 72 72 61 d.=.in_array($sequence[$i],.arra
a26e0 79 28 27 22 27 2c 20 22 27 22 29 29 3b 0a 24 76 61 6c 75 65 20 3d 20 73 65 6c 66 3a 3a 70 61 72 y('"',."'"));.$value.=.self::par
a2700 73 65 53 63 61 6c 61 72 28 24 73 65 71 75 65 6e 63 65 2c 20 61 72 72 61 79 28 27 2c 27 2c 20 27 seScalar($sequence,.array(',',.'
a2720 5d 27 29 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c 20 24 69 29 3b 0a 0a 69 66 20 28 ]'),.array('"',."'"),.$i);..if.(
a2740 21 24 69 73 51 75 6f 74 65 64 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 !$isQuoted.&&.false.!==.strpos($
a2760 76 61 6c 75 65 2c 20 27 3a 20 27 29 29 20 7b 0a 0a 20 74 72 79 20 7b 0a 24 76 61 6c 75 65 20 3d value,.':.')).{...try.{.$value.=
a2780 20 73 65 6c 66 3a 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 27 7b 27 2e 24 76 61 6c 75 65 2e 27 .self::parseMapping('{'.$value.'
a27a0 7d 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 }');.}.catch.(\InvalidArgumentEx
a27c0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 5b 5d 20 3d ception.$e).{...}.}..$output[].=
a27e0 20 24 76 61 6c 75 65 3b 0a 0a 2d 2d 24 69 3b 0a 7d 0a 0a 2b 2b 24 69 3b 0a 7d 0a 0a 74 68 72 6f .$value;..--$i;.}..++$i;.}..thro
a2800 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 61 w.new.ParseException(sprintf('Ma
a2820 6c 66 6f 72 6d 65 64 20 69 6e 6c 69 6e 65 20 59 41 4d 4c 20 73 74 72 69 6e 67 20 25 73 27 2c 20 lformed.inline.YAML.string.%s',.
a2840 24 73 65 71 75 65 6e 63 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 $sequence));.}............privat
a2860 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4d 61 70 70 69 6e 67 28 24 e.static.function.parseMapping($
a2880 6d 61 70 70 69 6e 67 2c 20 26 24 69 20 3d 20 30 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 61 72 mapping,.&$i.=.0).{.$output.=.ar
a28a0 72 61 79 28 29 3b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6d 61 70 70 69 6e 67 29 3b 0a ray();.$len.=.strlen($mapping);.
a28c0 24 69 20 2b 3d 20 31 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 69 20 3c 20 24 6c 65 6e 29 20 7b 0a $i.+=.1;....while.($i.<.$len).{.
a28e0 73 77 69 74 63 68 20 28 24 6d 61 70 70 69 6e 67 5b 24 69 5d 29 20 7b 0a 63 61 73 65 20 27 20 27 switch.($mapping[$i]).{.case.'.'
a2900 3a 0a 63 61 73 65 20 27 2c 27 3a 0a 2b 2b 24 69 3b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 63 61 :.case.',':.++$i;.continue.2;.ca
a2920 73 65 20 27 7d 27 3a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 6b 65 se.'}':.return.$output;.}....$ke
a2940 79 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 28 24 6d 61 70 70 69 6e 67 2c 20 y.=.self::parseScalar($mapping,.
a2960 61 72 72 61 79 28 27 3a 27 2c 20 27 20 27 29 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 array(':',.'.'),.array('"',."'")
a2980 2c 20 24 69 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a ,.$i,.false);....$done.=.false;.
a29a0 77 68 69 6c 65 20 28 24 69 20 3c 20 24 6c 65 6e 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 70 while.($i.<.$len).{.switch.($map
a29c0 70 69 6e 67 5b 24 69 5d 29 20 7b 0a 63 61 73 65 20 27 5b 27 3a 0a 0a 20 24 6f 75 74 70 75 74 5b ping[$i]).{.case.'[':...$output[
a29e0 24 6b 65 79 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 65 71 75 65 6e 63 65 28 24 6d 61 70 $key].=.self::parseSequence($map
a2a00 70 69 6e 67 2c 20 24 69 29 3b 0a 24 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a ping,.$i);.$done.=.true;.break;.
a2a20 63 61 73 65 20 27 7b 27 3a 0a 0a 20 24 6f 75 74 70 75 74 5b 24 6b 65 79 5d 20 3d 20 73 65 6c 66 case.'{':...$output[$key].=.self
a2a40 3a 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 24 6d 61 70 70 69 6e 67 2c 20 24 69 29 3b 0a 24 64 ::parseMapping($mapping,.$i);.$d
a2a60 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3a 27 3a 0a 63 61 73 one.=.true;.break;.case.':':.cas
a2a80 65 20 27 20 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 6f 75 74 70 75 74 5b 24 e.'.':.break;.default:.$output[$
a2aa0 6b 65 79 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 28 24 6d 61 70 70 69 6e key].=.self::parseScalar($mappin
a2ac0 67 2c 20 61 72 72 61 79 28 27 2c 27 2c 20 27 7d 27 29 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 g,.array(',',.'}'),.array('"',."
a2ae0 27 22 29 2c 20 24 69 29 3b 0a 24 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 2d 2d 24 69 3b 0a 7d 0a '"),.$i);.$done.=.true;.--$i;.}.
a2b00 0a 2b 2b 24 69 3b 0a 0a 69 66 20 28 24 64 6f 6e 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b .++$i;..if.($done).{.continue.2;
a2b20 0a 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e .}.}.}..throw.new.ParseException
a2b40 28 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 6e 6c 69 6e 65 20 59 41 4d 4c 20 (sprintf('Malformed.inline.YAML.
a2b60 73 74 72 69 6e 67 20 25 73 27 2c 20 24 6d 61 70 70 69 6e 67 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a string.%s',.$mapping));.}.......
a2b80 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 76 61 6c 75 61 ..private.static.function.evalua
a2ba0 74 65 53 63 61 6c 61 72 28 24 73 63 61 6c 61 72 29 0a 7b 0a 24 73 63 61 6c 61 72 20 3d 20 74 72 teScalar($scalar).{.$scalar.=.tr
a2bc0 69 6d 28 24 73 63 61 6c 61 72 29 3b 0a 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 7b 0a 63 61 im($scalar);..switch.(true).{.ca
a2be0 73 65 20 27 6e 75 6c 6c 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 63 61 6c 61 72 29 se.'null'.==.strtolower($scalar)
a2c00 3a 0a 63 61 73 65 20 27 27 20 3d 3d 20 24 73 63 61 6c 61 72 3a 0a 63 61 73 65 20 27 7e 27 20 3d :.case.''.==.$scalar:.case.'~'.=
a2c20 3d 20 24 73 63 61 6c 61 72 3a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 63 61 73 65 20 30 20 3d =.$scalar:.return.null;.case.0.=
a2c40 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 61 6c 61 72 2c 20 27 21 73 74 72 27 29 3a 0a 72 65 74 75 ==.strpos($scalar,.'!str'):.retu
a2c60 72 6e 20 28 73 74 72 69 6e 67 29 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 35 29 3b 0a rn.(string).substr($scalar,.5);.
a2c80 63 61 73 65 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 61 6c 61 72 2c 20 27 21 20 27 29 case.0.===.strpos($scalar,.'!.')
a2ca0 3a 0a 72 65 74 75 72 6e 20 69 6e 74 76 61 6c 28 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 :.return.intval(self::parseScala
a2cc0 72 28 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 32 29 29 29 3b 0a 63 61 73 65 20 30 20 3d r(substr($scalar,.2)));.case.0.=
a2ce0 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 61 6c 61 72 2c 20 27 21 21 70 68 70 2f 6f 62 6a 65 63 74 ==.strpos($scalar,.'!!php/object
a2d00 3a 27 29 3a 0a 69 66 20 28 73 65 6c 66 3a 3a 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 20 7b :'):.if.(self::$objectSupport).{
a2d20 0a 72 65 74 75 72 6e 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 73 75 62 73 74 72 28 24 73 63 61 6c .return.unserialize(substr($scal
a2d40 61 72 2c 20 31 33 29 29 3b 0a 7d 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 24 65 78 63 65 70 74 69 6f ar,.13));.}..if.(self::$exceptio
a2d60 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 nOnInvalidType).{.throw.new.Pars
a2d80 65 45 78 63 65 70 74 69 6f 6e 28 27 4f 62 6a 65 63 74 20 73 75 70 70 6f 72 74 20 77 68 65 6e 20 eException('Object.support.when.
a2da0 70 61 72 73 69 6e 67 20 61 20 59 41 4d 4c 20 66 69 6c 65 20 68 61 73 20 62 65 65 6e 20 64 69 73 parsing.a.YAML.file.has.been.dis
a2dc0 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 63 61 73 65 20 63 abled.');.}..return.null;.case.c
a2de0 74 79 70 65 5f 64 69 67 69 74 28 24 73 63 61 6c 61 72 29 3a 0a 24 72 61 77 20 3d 20 24 73 63 61 type_digit($scalar):.$raw.=.$sca
a2e00 6c 61 72 3b 0a 24 63 61 73 74 20 3d 20 69 6e 74 76 61 6c 28 24 73 63 61 6c 61 72 29 3b 0a 0a 72 lar;.$cast.=.intval($scalar);..r
a2e20 65 74 75 72 6e 20 27 30 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b 30 5d 20 3f 20 6f 63 74 64 65 63 eturn.'0'.==.$scalar[0].?.octdec
a2e40 28 24 73 63 61 6c 61 72 29 20 3a 20 28 28 28 73 74 72 69 6e 67 29 20 24 72 61 77 20 3d 3d 20 28 ($scalar).:.(((string).$raw.==.(
a2e60 73 74 72 69 6e 67 29 20 24 63 61 73 74 29 20 3f 20 24 63 61 73 74 20 3a 20 24 72 61 77 29 3b 0a string).$cast).?.$cast.:.$raw);.
a2e80 63 61 73 65 20 27 2d 27 20 3d 3d 3d 20 24 73 63 61 6c 61 72 5b 30 5d 20 26 26 20 63 74 79 70 65 case.'-'.===.$scalar[0].&&.ctype
a2ea0 5f 64 69 67 69 74 28 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 31 29 29 3a 0a 24 72 61 77 _digit(substr($scalar,.1)):.$raw
a2ec0 20 3d 20 24 73 63 61 6c 61 72 3b 0a 24 63 61 73 74 20 3d 20 69 6e 74 76 61 6c 28 24 73 63 61 6c .=.$scalar;.$cast.=.intval($scal
a2ee0 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 27 30 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b 31 5d 20 3f ar);..return.'0'.==.$scalar[1].?
a2f00 20 6f 63 74 64 65 63 28 24 73 63 61 6c 61 72 29 20 3a 20 28 28 28 73 74 72 69 6e 67 29 20 24 72 .octdec($scalar).:.(((string).$r
a2f20 61 77 20 3d 3d 20 28 73 74 72 69 6e 67 29 20 24 63 61 73 74 29 20 3f 20 24 63 61 73 74 20 3a 20 aw.==.(string).$cast).?.$cast.:.
a2f40 24 72 61 77 29 3b 0a 63 61 73 65 20 27 74 72 75 65 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 $raw);.case.'true'.===.strtolowe
a2f60 72 28 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 63 61 73 65 20 27 66 r($scalar):.return.true;.case.'f
a2f80 61 6c 73 65 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 63 61 6c 61 72 29 3a 0a 72 alse'.===.strtolower($scalar):.r
a2fa0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 63 61 73 65 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 63 eturn.false;.case.is_numeric($sc
a2fc0 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 27 30 78 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b 30 5d alar):.return.'0x'.==.$scalar[0]
a2fe0 2e 24 73 63 61 6c 61 72 5b 31 5d 20 3f 20 68 65 78 64 65 63 28 24 73 63 61 6c 61 72 29 20 3a 20 .$scalar[1].?.hexdec($scalar).:.
a3000 66 6c 6f 61 74 76 61 6c 28 24 73 63 61 6c 61 72 29 3b 0a 63 61 73 65 20 30 20 3d 3d 20 73 74 72 floatval($scalar);.case.0.==.str
a3020 63 61 73 65 63 6d 70 28 24 73 63 61 6c 61 72 2c 20 27 2e 69 6e 66 27 29 3a 0a 63 61 73 65 20 30 casecmp($scalar,.'.inf'):.case.0
a3040 20 3d 3d 20 73 74 72 63 61 73 65 63 6d 70 28 24 73 63 61 6c 61 72 2c 20 27 2e 4e 61 4e 27 29 3a .==.strcasecmp($scalar,.'.NaN'):
a3060 0a 72 65 74 75 72 6e 20 2d 6c 6f 67 28 30 29 3b 0a 63 61 73 65 20 30 20 3d 3d 20 73 74 72 63 61 .return.-log(0);.case.0.==.strca
a3080 73 65 63 6d 70 28 24 73 63 61 6c 61 72 2c 20 27 2d 2e 69 6e 66 27 29 3a 0a 72 65 74 75 72 6e 20 secmp($scalar,.'-.inf'):.return.
a30a0 6c 6f 67 28 30 29 3b 0a 63 61 73 65 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2d 7c 5c 2b log(0);.case.preg_match('/^(-|\+
a30c0 29 3f 5b 30 2d 39 2c 5d 2b 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 24 2f 27 2c 20 24 73 63 61 6c 61 72 )?[0-9,]+(\.[0-9]+)?$/',.$scalar
a30e0 29 3a 0a 72 65 74 75 72 6e 20 66 6c 6f 61 74 76 61 6c 28 73 74 72 5f 72 65 70 6c 61 63 65 28 27 ):.return.floatval(str_replace('
a3100 2c 27 2c 20 27 27 2c 20 24 73 63 61 6c 61 72 29 29 3b 0a 63 61 73 65 20 70 72 65 67 5f 6d 61 74 ,',.'',.$scalar));.case.preg_mat
a3120 63 68 28 73 65 6c 66 3a 3a 67 65 74 54 69 6d 65 73 74 61 6d 70 52 65 67 65 78 28 29 2c 20 24 73 ch(self::getTimestampRegex(),.$s
a3140 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 73 74 72 74 6f 74 69 6d 65 28 24 73 63 61 6c 61 72 calar):.return.strtotime($scalar
a3160 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 24 73 63 61 );.default:.return.(string).$sca
a3180 6c 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 lar;.}.}.........private.static.
a31a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 73 74 61 6d 70 52 65 67 65 78 28 29 0a 7b 0a 72 function.getTimestampRegex().{.r
a31c0 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 20 20 20 20 20 20 20 20 7e 5e 0a 20 20 20 20 20 20 20 20 eturn.<<<EOF.........~^.........
a31e0 28 3f 50 3c 79 65 61 72 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 2d 39 5d 29 0a 20 (?P<year>[0-9][0-9][0-9][0-9])..
a3200 20 20 20 20 20 20 20 2d 28 3f 50 3c 6d 6f 6e 74 68 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 3f 29 0a 20 .......-(?P<month>[0-9][0-9]?)..
a3220 20 20 20 20 20 20 20 2d 28 3f 50 3c 64 61 79 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 3f 29 0a 20 20 20 .......-(?P<day>[0-9][0-9]?)....
a3240 20 20 20 20 20 28 3f 3a 28 3f 3a 5b 54 74 5d 7c 5b 20 5c 74 5d 2b 29 0a 20 20 20 20 20 20 20 20 .....(?:(?:[Tt]|[.\t]+).........
a3260 28 3f 50 3c 68 6f 75 72 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 3f 29 0a 20 20 20 20 20 20 20 20 3a 28 (?P<hour>[0-9][0-9]?).........:(
a3280 3f 50 3c 6d 69 6e 75 74 65 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 29 0a 20 20 20 20 20 20 20 20 3a 28 ?P<minute>[0-9][0-9]).........:(
a32a0 3f 50 3c 73 65 63 6f 6e 64 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 29 0a 20 20 20 20 20 20 20 20 28 3f ?P<second>[0-9][0-9]).........(?
a32c0 3a 5c 2e 28 3f 50 3c 66 72 61 63 74 69 6f 6e 3e 5b 30 2d 39 5d 2a 29 29 3f 0a 20 20 20 20 20 20 :\.(?P<fraction>[0-9]*))?.......
a32e0 20 20 28 3f 3a 5b 20 5c 74 5d 2a 28 3f 50 3c 74 7a 3e 5a 7c 28 3f 50 3c 74 7a 5f 73 69 67 6e 3e ..(?:[.\t]*(?P<tz>Z|(?P<tz_sign>
a3300 5b 2d 2b 5d 29 28 3f 50 3c 74 7a 5f 68 6f 75 72 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 3f 29 0a 20 20 [-+])(?P<tz_hour>[0-9][0-9]?)...
a3320 20 20 20 20 20 20 28 3f 3a 3a 28 3f 50 3c 74 7a 5f 6d 69 6e 75 74 65 3e 5b 30 2d 39 5d 5b 30 2d ......(?::(?P<tz_minute>[0-9][0-
a3340 39 5d 29 29 3f 29 29 3f 29 3f 0a 20 20 20 20 20 20 20 20 24 7e 78 0a 45 4f 46 3b 0a 7d 0a 7d 0a 9]))?))?)?.........$~x.EOF;.}.}.
a3360 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
a3380 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 y\Component\Console\Command;..us
a33a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 e.Symfony\Component\Console\Help
a33c0 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 er\DescriptorHelper;.use.Symfony
a33e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 \Component\Console\Input\InputAr
a3400 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f gument;.use.Symfony\Component\Co
a3420 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d nsole\Input\InputOption;.use.Sym
a3440 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
a3460 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
a3480 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 nt\Console\Output\OutputInterfac
a34a0 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e e;.......class.HelpCommand.exten
a34c0 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a ds.Command.{.private.$command;..
a34e0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 ...protected.function.configure(
a3500 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 ).{.$this->ignoreValidationError
a3520 73 28 29 3b 0a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e s();..$this.->setName('help').->
a3540 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 setDefinition(array(.new.InputAr
a3560 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 gument('command_name',.InputArgu
a3580 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d ment::OPTIONAL,.'The.command.nam
a35a0 65 27 2c 20 27 68 65 6c 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d e',.'help'),.new.InputOption('xm
a35c0 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e l',.null,.InputOption::VALUE_NON
a35e0 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 E,.'To.output.help.as.XML'),.new
a3600 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 .InputOption('format',.null,.Inp
a3620 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 6f 20 6f 75 utOption::VALUE_REQUIRED,.'To.ou
a3640 74 70 75 74 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 29 2c 0a 6e 65 tput.help.in.other.formats'),.ne
a3660 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 w.InputOption('raw',.null,.Input
a3680 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 Option::VALUE_NONE,.'To.output.r
a36a0 61 77 20 63 6f 6d 6d 61 6e 64 20 68 65 6c 70 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 aw.command.help'),.)).->setDescr
a36c0 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 63 6f 6d 6d iption('Displays.help.for.a.comm
a36e0 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f and').->setHelp(<<<EOF.The.<info
a3700 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 64 >%command.name%</info>.command.d
a3720 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d 6d 61 6e 64 isplays.help.for.a.given.command
a3740 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d :....<info>php.%command.full_nam
a3760 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 e%.list</info>..You.can.also.out
a3780 70 75 74 20 74 68 65 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 put.the.help.in.other.formats.by
a37a0 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f .using.the.<comment>--format</co
a37c0 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d mment>.option:....<info>php.%com
a37e0 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 20 6c 69 73 mand.full_name%.--format=xml.lis
a3800 74 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 69 73 74 20 6f 66 t</info>..To.display.the.list.of
a3820 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 70 6c 65 61 73 65 20 75 73 65 20 .available.commands,.please.use.
a3840 74 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 45 the.<info>list</info>.command..E
a3860 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 OF.).;.}.......public.function.s
a3880 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 etCommand(Command.$command).{.$t
a38a0 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 his->command.=.$command;.}.....p
a38c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 rotected.function.execute(InputI
a38e0 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 nterface.$input,.OutputInterface
a3900 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .$output).{.if.(null.===.$this->
a3920 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 command).{.$this->command.=.$thi
a3940 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 66 69 6e 64 28 24 69 6e 70 75 74 s->getApplication()->find($input
a3960 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 29 29 3b 0a ->getArgument('command_name'));.
a3980 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 }..if.($input->getOption('xml'))
a39a0 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 .{.$input->setOption('format',.'
a39c0 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 xml');.}..$helper.=.new.Descript
a39e0 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f orHelper();.$helper->describe($o
a3a00 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2d 3e 67 utput,.$this->command,.$input->g
a3a20 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f etOption('format'),.$input->getO
a3a40 70 74 69 6f 6e 28 27 72 61 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 ption('raw'));.$this->command.=.
a3a60 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 null;.}.}.<?php...........namesp
a3a80 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f ace.Symfony\Component\Console\Co
a3aa0 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f mmand;..use.Symfony\Component\Co
a3ac0 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b nsole\Descriptor\TextDescriptor;
a3ae0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 .use.Symfony\Component\Console\D
a3b00 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d escriptor\XmlDescriptor;.use.Sym
a3b20 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
a3b40 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e utDefinition;.use.Symfony\Compon
a3b60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 ent\Console\Input\InputOption;.u
a3b80 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
a3ba0 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ut\InputArgument;.use.Symfony\Co
a3bc0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 mponent\Console\Input\InputInter
a3be0 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 face;.use.Symfony\Component\Cons
a3c00 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
a3c20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 Symfony\Component\Console\Applic
a3c40 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ation;.use.Symfony\Component\Con
a3c60 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 sole\Helper\HelperSet;.........c
a3c80 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 lass.Command.{.private.$applicat
a3ca0 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 ion;.private.$name;.private.$ali
a3cc0 61 73 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 ases;.private.$definition;.priva
a3ce0 74 65 20 24 68 65 6c 70 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a te.$help;.private.$description;.
a3d00 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 3b private.$ignoreValidationErrors;
a3d20 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d .private.$applicationDefinitionM
a3d40 65 72 67 65 64 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e erged;.private.$applicationDefin
a3d60 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f itionMergedWithArgs;.private.$co
a3d80 64 65 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6e 6f 70 73 69 73 3b 0a 70 72 69 76 61 74 65 20 24 de;.private.$synopsis;.private.$
a3da0 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 helperSet;...........public.func
a3dc0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b tion.__construct($name.=.null).{
a3de0 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 .$this->definition.=.new.InputDe
a3e00 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 finition();.$this->ignoreValidat
a3e20 69 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 ionErrors.=.false;.$this->applic
a3e40 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 24 ationDefinitionMerged.=.false;.$
a3e60 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 this->applicationDefinitionMerge
a3e80 64 57 69 74 68 41 72 67 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 dWithArgs.=.false;.$this->aliase
a3ea0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 s.=.array();..if.(null.!==.$name
a3ec0 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 ).{.$this->setName($name);.}..$t
a3ee0 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e his->configure();..if.(!$this->n
a3f00 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e ame).{.throw.new.\LogicException
a3f20 28 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 ('The.command.name.cannot.be.emp
a3f40 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ty.');.}.}.......public.function
a3f60 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 0a 7b 0a 24 74 68 69 .ignoreValidationErrors().{.$thi
a3f80 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 74 72 75 65 s->ignoreValidationErrors.=.true
a3fa0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 ;.}.........public.function.setA
a3fc0 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 pplication(Application.$applicat
a3fe0 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e ion.=.null).{.$this->application
a4000 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f .=.$application;.if.($applicatio
a4020 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 61 70 70 6c 69 63 n).{.$this->setHelperSet($applic
a4040 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b ation->getHelperSet());.}.else.{
a4060 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a .$this->helperSet.=.null;.}.}...
a4080 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 ....public.function.setHelperSet
a40a0 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e (HelperSet.$helperSet).{.$this->
a40c0 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a helperSet.=.$helperSet;.}.......
a40e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b public.function.getHelperSet().{
a4100 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a .return.$this->helperSet;.}.....
a4120 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 ....public.function.getApplicati
a4140 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e on().{.return.$this->application
a4160 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 ;.}..........public.function.isE
a4180 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 nabled().{.return.true;.}.....pr
a41a0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 7d otected.function.configure().{.}
a41c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ..................protected.func
a41e0 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 tion.execute(InputInterface.$inp
a4200 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 ut,.OutputInterface.$output).{.t
a4220 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 hrow.new.\LogicException('You.mu
a4240 73 74 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 65 78 65 63 75 74 65 28 29 20 6d 65 74 68 6f 64 st.override.the.execute().method
a4260 20 69 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 65 20 63 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 2e 27 .in.the.concrete.command.class.'
a4280 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 );.}........protected.function.i
a42a0 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f nteract(InputInterface.$input,.O
a42c0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a utputInterface.$output).{.}.....
a42e0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c ......protected.function.initial
a4300 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 ize(InputInterface.$input,.Outpu
a4320 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a tInterface.$output).{.}.........
a4340 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 ............public.function.run(
a4360 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
a4380 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 67 65 74 53 79 erface.$output).{...$this->getSy
a43a0 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 nopsis();....$this->mergeApplica
a43c0 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 0a 20 74 72 79 20 7b 0a 24 69 6e 70 75 tionDefinition();....try.{.$inpu
a43e0 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 20 63 61 t->bind($this->definition);.}.ca
a4400 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 tch.(\Exception.$e).{.if.(!$this
a4420 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f ->ignoreValidationErrors).{.thro
a4440 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e w.$e;.}.}..$this->initialize($in
a4460 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e put,.$output);..if.($input->isIn
a4480 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 teractive()).{.$this->interact($
a44a0 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 input,.$output);.}..$input->vali
a44c0 64 61 74 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 64 65 29 20 7b 0a 24 73 74 61 date();..if.($this->code).{.$sta
a44e0 74 75 73 43 6f 64 65 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e tusCode.=.call_user_func($this->
a4500 63 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b code,.$input,.$output);.}.else.{
a4520 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 .$statusCode.=.$this->execute($i
a4540 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d nput,.$output);.}..return.is_num
a4560 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 3f 20 28 69 6e 74 29 20 24 73 74 61 74 75 eric($statusCode).?.(int).$statu
a4580 73 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 sCode.:.0;.}..................pu
a45a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 24 63 6f 64 65 29 0a 7b 0a 69 blic.function.setCode($code).{.i
a45c0 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 6f 64 65 29 29 20 7b 0a 74 68 72 6f 77 20 f.(!is_callable($code)).{.throw.
a45e0 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 new.\InvalidArgumentException('I
a4600 6e 76 61 6c 69 64 20 63 61 6c 6c 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 6f 20 43 6f 6d 6d nvalid.callable.provided.to.Comm
a4620 61 6e 64 3a 3a 73 65 74 43 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 and::setCode.');.}..$this->code.
a4640 3d 20 24 63 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a =.$code;..return.$this;.}.......
a4660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 ..public.function.mergeApplicati
a4680 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a onDefinition($mergeArgs.=.true).
a46a0 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f {.if.(null.===.$this->applicatio
a46c0 6e 20 7c 7c 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f n.||.(true.===.$this->applicatio
a46e0 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 26 26 20 28 24 74 68 69 73 2d 3e 61 70 70 nDefinitionMerged.&&.($this->app
a4700 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 licationDefinitionMergedWithArgs
a4720 20 7c 7c 20 21 24 6d 65 72 67 65 41 72 67 73 29 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a .||.!$mergeArgs))).{.return;.}..
a4740 69 66 20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 if.($mergeArgs).{.$currentArgume
a4760 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 nts.=.$this->definition->getArgu
a4780 6d 65 6e 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 ments();.$this->definition->setA
a47a0 72 67 75 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 rguments($this->application->get
a47c0 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 Definition()->getArguments());.$
a47e0 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 this->definition->addArguments($
a4800 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 currentArguments);.}..$this->def
a4820 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 inition->addOptions($this->appli
a4840 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 cation->getDefinition()->getOpti
a4860 6f 6e 73 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e ons());..$this->applicationDefin
a4880 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 6d 65 72 67 65 41 72 itionMerged.=.true;.if.($mergeAr
a48a0 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 gs).{.$this->applicationDefiniti
a48c0 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a onMergedWithArgs.=.true;.}.}....
a48e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 .......public.function.setDefini
a4900 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 tion($definition).{.if.($definit
a4920 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 ion.instanceof.InputDefinition).
a4940 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f {.$this->definition.=.$definitio
a4960 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 n;.}.else.{.$this->definition->s
a4980 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 etDefinition($definition);.}..$t
a49a0 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 his->applicationDefinitionMerged
a49c0 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .=.false;..return.$this;.}......
a49e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e ...public.function.getDefinition
a4a00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d ().{.return.$this->definition;.}
a4a20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e ............public.function.getN
a4a40 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ativeDefinition().{.return.$this
a4a60 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->getDefinition();.}............
a4a80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e ..public.function.addArgument($n
a4aa0 61 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 ame,.$mode.=.null,.$description.
a4ac0 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e =.'',.$default.=.null).{.$this->
a4ae0 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 6e 65 77 20 49 6e 70 75 definition->addArgument(new.Inpu
a4b00 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 tArgument($name,.$mode,.$descrip
a4b20 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b tion,.$default));..return.$this;
a4b40 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .}...............public.function
a4b60 20 61 64 64 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 .addOption($name,.$shortcut.=.nu
a4b80 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d ll,.$mode.=.null,.$description.=
a4ba0 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 .'',.$default.=.null).{.$this->d
a4bc0 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 efinition->addOption(new.InputOp
a4be0 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6d 6f 64 65 2c 20 24 64 tion($name,.$shortcut,.$mode,.$d
a4c00 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 escription,.$default));..return.
a4c20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $this;.}..................public
a4c40 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 .function.setName($name).{.$this
a4c60 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e ->validateName($name);..$this->n
a4c80 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a ame.=.$name;..return.$this;.}...
a4ca0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a ......public.function.getName().
a4cc0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a {.return.$this->name;.}.........
a4ce0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e ..public.function.setDescription
a4d00 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 ($description).{.$this->descript
a4d20 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ion.=.$description;..return.$thi
a4d40 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 s;.}.........public.function.get
a4d60 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 Description().{.return.$this->de
a4d80 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 scription;.}...........public.fu
a4da0 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 28 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 nction.setHelp($help).{.$this->h
a4dc0 65 6c 70 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a elp.=.$help;..return.$this;.}...
a4de0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a ......public.function.getHelp().
a4e00 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 {.return.$this->help;.}........p
a4e20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 ublic.function.getProcessedHelp(
a4e40 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 ).{.$name.=.$this->name;..$place
a4e60 68 6f 6c 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 holders.=.array(.'%command.name%
a4e80 27 2c 0a 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 27 0a 29 3b 0a 24 72 65 70 ',.'%command.full_name%'.);.$rep
a4ea0 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 lacements.=.array(.$name,.$_SERV
a4ec0 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 20 27 2e 24 6e 61 6d 65 0a 29 3b 0a 0a 72 65 74 ER['PHP_SELF'].'.'.$name.);..ret
a4ee0 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 urn.str_replace($placeholders,.$
a4f00 72 65 70 6c 61 63 65 6d 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 29 3b replacements,.$this->getHelp());
a4f20 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .}...........public.function.set
a4f40 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c Aliases($aliases).{.foreach.($al
a4f60 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 iases.as.$alias).{.$this->valida
a4f80 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 teName($alias);.}..$this->aliase
a4fa0 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a s.=.$aliases;..return.$this;.}..
a4fc0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 .......public.function.getAliase
a4fe0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a s().{.return.$this->aliases;.}..
a5000 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 .....public.function.getSynopsis
a5020 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 ().{.if.(null.===.$this->synopsi
a5040 73 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 20 3d 20 74 72 69 6d 28 73 70 72 69 s).{.$this->synopsis.=.trim(spri
a5060 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 74 68 69 73 2d ntf('%s.%s',.$this->name,.$this-
a5080 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 29 29 3b 0a 7d 0a >definition->getSynopsis()));.}.
a50a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->synopsis;.}......
a50c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 .......public.function.getHelper
a50e0 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 ($name).{.return.$this->helperSe
a5100 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 t->get($name);.}.........public.
a5120 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 function.asText().{.$descriptor.
a5140 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 =.new.TextDescriptor();..return.
a5160 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 29 3b 0a 7d 0a $descriptor->describe($this);.}.
a5180 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 ..........public.function.asXml(
a51a0 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 $asDom.=.false).{.$descriptor.=.
a51c0 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 new.XmlDescriptor();..return.$de
a51e0 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 scriptor->describe($this,.array(
a5200 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 24 61 73 44 6f 6d 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 'as_dom'.=>.$asDom));.}..private
a5220 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a .function.validateName($name).{.
a5240 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5e 5c 3a 5d 2b 28 5c 3a 5b 5e 5c 3a if.(!preg_match('/^[^\:]+(\:[^\:
a5260 5d 2b 29 2a 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ]+)*$/',.$name)).{.throw.new.\In
a5280 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
a52a0 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 2e 27 2c 20 Command.name."%s".is.invalid.',.
a52c0 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e $name));.}.}.}.<?php...........n
a52e0 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f amespace.Symfony\Component\Conso
a5300 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 le\Command;..use.Symfony\Compone
a5320 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 nt\Console\Helper\DescriptorHelp
a5340 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c er;.use.Symfony\Component\Consol
a5360 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f e\Input\InputArgument;.use.Symfo
a5380 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
a53a0 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
a53c0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
a53e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 Symfony\Component\Console\Output
a5400 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \OutputInterface;.use.Symfony\Co
a5420 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e mponent\Console\Input\InputDefin
a5440 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 20 65 ition;.......class.ListCommand.e
a5460 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 xtends.Command.{....protected.fu
a5480 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
a54a0 4e 61 6d 65 28 27 6c 69 73 74 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 74 68 Name('list').->setDefinition($th
a54c0 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 44 65 73 is->createDefinition()).->setDes
a54e0 63 72 69 70 74 69 6f 6e 28 27 4c 69 73 74 73 20 63 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e 73 65 74 cription('Lists.commands').->set
a5500 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e Help(<<<EOF.The.<info>%command.n
a5520 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 73 20 61 6c 6c 20 63 6f ame%</info>.command.lists.all.co
a5540 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 mmands:....<info>php.%command.fu
a5560 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 69 ll_name%</info>..You.can.also.di
a5580 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 splay.the.commands.for.a.specifi
a55a0 63 20 6e 61 6d 65 73 70 61 63 65 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 c.namespace:....<info>php.%comma
a55c0 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 74 65 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 nd.full_name%.test</info>..You.c
a55e0 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 an.also.output.the.information.i
a5600 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f n.other.formats.by.using.the.<co
a5620 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a mment>--format</comment>.option:
a5640 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
a5660 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 3c 2f 69 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f %.--format=xml</info>..It's.also
a5680 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d .possible.to.get.raw.list.of.com
a56a0 6d 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d mands.(useful.for.embedding.comm
a56c0 61 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 and.runner):....<info>php.%comma
a56e0 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 nd.full_name%.--raw</info>.EOF.)
a5700 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 .;.}.....public.function.getNati
a5720 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 veDefinition().{.return.$this->c
a5740 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 reateDefinition();.}.....protect
a5760 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 ed.function.execute(InputInterfa
a5780 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 ce.$input,.OutputInterface.$outp
a57a0 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c ut).{.if.($input->getOption('xml
a57c0 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 ')).{.$input->setOption('format'
a57e0 2c 20 27 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 ,.'xml');.}..$helper.=.new.Descr
a5800 69 70 74 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 iptorHelper();.$helper->describe
a5820 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 ($output,.$this->getApplication(
a5840 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 20 ),.$input->getOption('format'),.
a5860 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 20 24 69 6e 70 75 74 $input->getOption('raw'),.$input
a5880 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 3b 0a 7d 0a 0a ->getArgument('namespace'));.}..
a58a0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 69 6e 69 ...private.function.createDefini
a58c0 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 tion().{.return.new.InputDefinit
a58e0 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 ion(array(.new.InputArgument('na
a5900 6d 65 73 70 61 63 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 mespace',.InputArgument::OPTIONA
a5920 4c 2c 20 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e L,.'The.namespace.name'),.new.In
a5940 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 putOption('xml',.null,.InputOpti
a5960 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 6c 69 73 74 20 on::VALUE_NONE,.'To.output.list.
a5980 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c as.XML'),.new.InputOption('raw',
a59a0 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 .null,.InputOption::VALUE_NONE,.
a59c0 27 54 6f 20 6f 75 74 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 27 29 2c 0a 6e 'To.output.raw.command.list'),.n
a59e0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c 20 49 ew.InputOption('format',.null,.I
a5a00 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 6f 20 nputOption::VALUE_REQUIRED,.'To.
a5a20 6f 75 74 70 75 74 20 6c 69 73 74 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 29 2c 0a output.list.in.other.formats'),.
a5a40 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ));.}.}.<?php...........namespac
a5a60 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 e.Symfony\Component\Console\Test
a5a80 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f er;..use.Symfony\Component\Conso
a5aa0 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 le\Application;.use.Symfony\Comp
a5ac0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a onent\Console\Input\ArrayInput;.
a5ae0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
a5b00 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
a5b20 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 Component\Console\Output\OutputI
a5b40 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
a5b60 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a 0a Console\Output\StreamOutput;....
a5b80 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 0a ........class.ApplicationTester.
a5ba0 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 {.private.$application;.private.
a5bc0 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 $input;.private.$output;.......p
a5be0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 ublic.function.__construct(Appli
a5c00 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 cation.$application).{.$this->ap
a5c20 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a plication.=.$application;.}.....
a5c40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 61 ...........public.function.run(a
a5c60 72 72 61 79 20 24 69 6e 70 75 74 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 rray.$input,.$options.=.array())
a5c80 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 .{.$this->input.=.new.ArrayInput
a5ca0 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e ($input);.if.(isset($options['in
a5cc0 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 teractive'])).{.$this->input->se
a5ce0 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 tInteractive($options['interacti
a5d00 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 ve']);.}..$this->output.=.new.St
a5d20 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c reamOutput(fopen('php://memory',
a5d40 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e .'w',.false));.if.(isset($option
a5d60 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 s['decorated'])).{.$this->output
a5d80 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 ->setDecorated($options['decorat
a5da0 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 ed']);.}.if.(isset($options['ver
a5dc0 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 bosity'])).{.$this->output->setV
a5de0 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b erbosity($options['verbosity']);
a5e00 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 .}..return.$this->application->r
a5e20 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b un($this->input,.$this->output);
a5e40 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 .}.........public.function.getDi
a5e60 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 77 69 splay($normalize.=.false).{.rewi
a5e80 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a nd($this->output->getStream());.
a5ea0 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 .$display.=.stream_get_contents(
a5ec0 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 69 66 $this->output->getStream());..if
a5ee0 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 .($normalize).{.$display.=.str_r
a5f00 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 29 3b eplace(PHP_EOL,."\n",.$display);
a5f20 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .}..return.$display;.}.......pub
a5f40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e lic.function.getInput().{.return
a5f60 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$this->input;.}.......public.fu
a5f80 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 nction.getOutput().{.return.$thi
a5fa0 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e s->output;.}.}.<?php...........n
a5fc0 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f amespace.Symfony\Component\Conso
a5fe0 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e le\Tester;..use.Symfony\Componen
a6000 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 t\Console\Command\Command;.use.S
a6020 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 ymfony\Component\Console\Input\A
a6040 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 rrayInput;.use.Symfony\Component
a6060 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a \Console\Output\StreamOutput;...
a6080 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 ....class.CommandTester.{.privat
a60a0 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 e.$command;.private.$input;.priv
a60c0 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ate.$output;.......public.functi
a60e0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 on.__construct(Command.$command)
a6100 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a .{.$this->command.=.$command;.}.
a6120 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 ...............public.function.e
a6140 78 65 63 75 74 65 28 61 72 72 61 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 xecute(array.$input,.array.$opti
a6160 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 ons.=.array()).{.$this->input.=.
a6180 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 new.ArrayInput($input);.if.(isse
a61a0 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 t($options['interactive'])).{.$t
a61c0 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 his->input->setInteractive($opti
a61e0 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f ons['interactive']);.}..$this->o
a6200 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 utput.=.new.StreamOutput(fopen('
a6220 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 php://memory',.'w',.false));.if.
a6240 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b (isset($options['decorated'])).{
a6260 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 .$this->output->setDecorated($op
a6280 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 tions['decorated']);.}.if.(isset
a62a0 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 ($options['verbosity'])).{.$this
a62c0 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b ->output->setVerbosity($options[
a62e0 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 'verbosity']);.}..return.$this->
a6300 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 command->run($this->input,.$this
a6320 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->output);.}.........public.func
a6340 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c tion.getDisplay($normalize.=.fal
a6360 73 65 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 se).{.rewind($this->output->getS
a6380 74 72 65 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 tream());..$display.=.stream_get
a63a0 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 _contents($this->output->getStre
a63c0 61 6d 28 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c am());..if.($normalize).{.$displ
a63e0 61 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 ay.=.str_replace(PHP_EOL,."\n",.
a6400 24 64 69 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d $display);.}..return.$display;.}
a6420 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 .......public.function.getInput(
a6440 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a ).{.return.$this->input;.}......
a6460 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 .public.function.getOutput().{.r
a6480 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a eturn.$this->output;.}.}.<?php..
a64a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
a64c0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 nent\Console\Formatter;.....clas
a64e0 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 0a 7b 0a 0a 0a s.OutputFormatterStyleStack.{...
a6500 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 .private.$styles;.....private.$e
a6520 6d 70 74 79 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e mptyStyle;.......public.function
a6540 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c .__construct(OutputFormatterStyl
a6560 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b eInterface.$emptyStyle.=.null).{
a6580 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 74 79 53 74 79 6c 65 .$this->emptyStyle.=.$emptyStyle
a65a0 20 3f 3a 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a .?:.new.OutputFormatterStyle();.
a65c0 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->reset();.}.....public.fun
a65e0 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 ction.reset().{.$this->styles.=.
a6600 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e array();.}.......public.function
a6620 20 70 75 73 68 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 .push(OutputFormatterStyleInterf
a6640 61 63 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 5d 20 3d 20 ace.$style).{.$this->styles[].=.
a6660 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $style;.}...........public.funct
a6680 69 6f 6e 20 70 6f 70 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 ion.pop(OutputFormatterStyleInte
a66a0 72 66 61 63 65 20 24 73 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 rface.$style.=.null).{.if.(empty
a66c0 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ($this->styles)).{.return.$this-
a66e0 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 >emptyStyle;.}..if.(null.===.$st
a6700 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 73 yle).{.return.array_pop($this->s
a6720 74 79 6c 65 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 tyles);.}..foreach.(array_revers
a6740 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 74 72 75 65 29 20 61 73 20 24 69 6e 64 65 78 e($this->styles,.true).as.$index
a6760 20 3d 3e 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 29 20 7b 0a 69 66 20 28 24 73 74 79 6c 65 2d .=>.$stackedStyle).{.if.($style-
a6780 3e 61 70 70 6c 79 28 27 27 29 20 3d 3d 3d 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 2d 3e 61 70 >apply('').===.$stackedStyle->ap
a67a0 70 6c 79 28 27 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 ply('')).{.$this->styles.=.array
a67c0 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 30 2c 20 24 69 6e 64 65 78 29 _slice($this->styles,.0,.$index)
a67e0 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 0a 74 68 ;..return.$stackedStyle;.}.}..th
a6800 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
a6820 6e 28 27 49 6e 63 6f 72 72 65 63 74 6c 79 20 6e 65 73 74 65 64 20 73 74 79 6c 65 20 74 61 67 20 n('Incorrectly.nested.style.tag.
a6840 66 6f 75 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f found.');.}.......public.functio
a6860 6e 20 67 65 74 43 75 72 72 65 6e 74 28 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 n.getCurrent().{.if.(empty($this
a6880 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 ->styles)).{.return.$this->empty
a68a0 53 74 79 6c 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 63 Style;.}..return.$this->styles[c
a68c0 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 2d 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ount($this->styles)-1];.}.......
a68e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 53 74 79 6c 65 28 4f 75 public.function.setEmptyStyle(Ou
a6900 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 tputFormatterStyleInterface.$emp
a6920 74 79 53 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 tyStyle).{.$this->emptyStyle.=.$
a6940 65 6d 70 74 79 53 74 79 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a emptyStyle;..return.$this;.}....
a6960 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6d 70 74 79 53 74 79 6c 65 28 29 .public.function.getEmptyStyle()
a6980 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 7d .{.return.$this->emptyStyle;.}.}
a69a0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
a69c0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a ny\Component\Console\Formatter;.
a69e0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 ........class.OutputFormatterSty
a6a00 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 le.implements.OutputFormatterSty
a6a20 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 leInterface.{.private.static.$av
a6a40 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 ailableForegroundColors.=.array(
a6a60 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 33 30 2c 0a 27 72 65 64 27 20 3d 3e 20 33 31 2c 0a 27 67 72 .'black'.=>.30,.'red'.=>.31,.'gr
a6a80 65 65 6e 27 20 3d 3e 20 33 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 33 33 2c 0a 27 62 6c 75 een'.=>.32,.'yellow'.=>.33,.'blu
a6aa0 65 27 20 3d 3e 20 33 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 33 35 2c 0a 27 63 79 61 6e e'.=>.34,.'magenta'.=>.35,.'cyan
a6ac0 27 20 3d 3e 20 33 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 33 37 0a 29 3b 0a 70 72 69 76 61 74 '.=>.36,.'white'.=>.37.);.privat
a6ae0 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c e.static.$availableBackgroundCol
a6b00 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 34 30 2c 0a 27 72 65 64 ors.=.array(.'black'.=>.40,.'red
a6b20 27 20 3d 3e 20 34 31 2c 0a 27 67 72 65 65 6e 27 20 3d 3e 20 34 32 2c 0a 27 79 65 6c 6c 6f 77 27 '.=>.41,.'green'.=>.42,.'yellow'
a6b40 20 3d 3e 20 34 33 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 34 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 .=>.43,.'blue'.=>.44,.'magenta'.
a6b60 3d 3e 20 34 35 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 34 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 =>.45,.'cyan'.=>.46,.'white'.=>.
a6b80 34 37 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 47.);.private.static.$availableO
a6ba0 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6f 6c 64 27 20 3d 3e 20 31 2c 0a 27 75 6e ptions.=.array(.'bold'.=>.1,.'un
a6bc0 64 65 72 73 63 6f 72 65 27 20 3d 3e 20 34 2c 0a 27 62 6c 69 6e 6b 27 20 3d 3e 20 35 2c 0a 27 72 derscore'.=>.4,.'blink'.=>.5,.'r
a6be0 65 76 65 72 73 65 27 20 3d 3e 20 37 2c 0a 27 63 6f 6e 63 65 61 6c 27 20 3d 3e 20 38 0a 29 3b 0a everse'.=>.7,.'conceal'.=>.8.);.
a6c00 0a 70 72 69 76 61 74 65 20 24 66 6f 72 65 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 62 .private.$foreground;.private.$b
a6c20 61 63 6b 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 ackground;.private.$options.=.ar
a6c40 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ray();...........public.function
a6c60 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c .__construct($foreground.=.null,
a6c80 20 24 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 6f 70 74 69 .$background.=.null,.array.$opti
a6ca0 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 66 ons.=.array()).{.if.(null.!==.$f
a6cc0 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e oreground).{.$this->setForegroun
a6ce0 64 28 24 66 6f 72 65 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 d($foreground);.}.if.(null.!==.$
a6d00 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 background).{.$this->setBackgrou
a6d20 6e 64 28 24 62 61 63 6b 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 6f 70 nd($background);.}.if.(count($op
a6d40 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 tions)).{.$this->setOptions($opt
a6d60 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ions);.}.}...........public.func
a6d80 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c tion.setForeground($color.=.null
a6da0 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 ).{.if.(null.===.$color).{.$this
a6dc0 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a ->foreground.=.null;..return;.}.
a6de0 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f .if.(!isset(static::$availableFo
a6e00 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 regroundColors[$color])).{.throw
a6e20 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
a6e40 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f printf(.'Invalid.foreground.colo
a6e60 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 r.specified:."%s"..Expected.one.
a6e80 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 of.(%s)',.$color,.implode(',.',.
a6ea0 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 array_keys(static::$availableFor
a6ec0 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 6f egroundColors)).));.}..$this->fo
a6ee0 72 65 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 reground.=.static::$availableFor
a6f00 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a egroundColors[$color];.}........
a6f20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 ...public.function.setBackground
a6f40 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ($color.=.null).{.if.(null.===.$
a6f60 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c color).{.$this->background.=.nul
a6f80 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 l;..return;.}..if.(!isset(static
a6fa0 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f ::$availableBackgroundColors[$co
a6fc0 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d lor])).{.throw.new.\InvalidArgum
a6fe0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 62 entException(sprintf(.'Invalid.b
a7000 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e ackground.color.specified:."%s".
a7020 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a .Expected.one.of.(%s)',.$color,.
a7040 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a implode(',.',.array_keys(static:
a7060 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 :$availableBackgroundColors)).))
a7080 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a ;.}..$this->background.=.static:
a70a0 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c :$availableBackgroundColors[$col
a70c0 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e or];.}...........public.function
a70e0 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 .setOption($option).{.if.(!isset
a7100 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 (static::$availableOptions[$opti
a7120 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 on])).{.throw.new.\InvalidArgume
a7140 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 ntException(sprintf(.'Invalid.op
a7160 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f tion.specified:."%s"..Expected.o
a7180 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c ne.of.(%s)',.$option,.implode(',
a71a0 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c .',.array_keys(static::$availabl
a71c0 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 eOptions)).));.}..if.(false.===.
a71e0 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f array_search(static::$availableO
a7200 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 ptions[$option],.$this->options)
a7220 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 73 74 61 74 69 63 3a 3a 24 ).{.$this->options[].=.static::$
a7240 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a 0a availableOptions[$option];.}.}..
a7260 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 ........public.function.unsetOpt
a7280 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 ion($option).{.if.(!isset(static
a72a0 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b ::$availableOptions[$option])).{
a72c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
a72e0 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 tion(sprintf(.'Invalid.option.sp
a7300 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 ecified:."%s"..Expected.one.of.(
a7320 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 %s)',.$option,.implode(',.',.arr
a7340 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e ay_keys(static::$availableOption
a7360 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 70 6f 73 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 s)).));.}..$pos.=.array_search(s
a7380 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e tatic::$availableOptions[$option
a73a0 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d ],.$this->options);.if.(false.!=
a73c0 3d 20 24 70 6f 73 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 =.$pos).{.unset($this->options[$
a73e0 70 6f 73 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e pos]);.}.}.......public.function
a7400 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 .setOptions(array.$options).{.$t
a7420 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 his->options.=.array();..foreach
a7440 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e .($options.as.$option).{.$this->
a7460 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a setOption($option);.}.}.........
a7480 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 0a 7b 0a 24 public.function.apply($text).{.$
a74a0 63 6f 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 codes.=.array();..if.(null.!==.$
a74c0 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 this->foreground).{.$codes[].=.$
a74e0 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d this->foreground;.}.if.(null.!==
a7500 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d .$this->background).{.$codes[].=
a7520 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 .$this->background;.}.if.(count(
a7540 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 63 6f 64 65 73 20 3d 20 61 72 72 61 $this->options)).{.$codes.=.arra
a7560 79 5f 6d 65 72 67 65 28 24 63 6f 64 65 73 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b y_merge($codes,.$this->options);
a7580 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 64 65 73 29 29 20 7b 0a 72 .}..if.(0.===.count($codes)).{.r
a75a0 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 eturn.$text;.}..return.sprintf("
a75c0 5c 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b 30 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c \033[%sm%s\033[0m",.implode(';',
a75e0 20 24 63 6f 64 65 73 29 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$codes),.$text);.}.}.<?php.....
a7600 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
a7620 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 t\Console\Formatter;.........int
a7640 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 erface.OutputFormatterStyleInter
a7660 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 face.{........public.function.se
a7680 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a tForeground($color.=.null);.....
a76a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e ....public.function.setBackgroun
a76c0 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 d($color.=.null);.........public
a76e0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a .function.setOption($option);...
a7700 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 ....public.function.unsetOption(
a7720 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $option);.......public.function.
a7740 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a setOptions(array.$options);.....
a7760 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 ....public.function.apply($text)
a7780 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 ;.}.<?php...........namespace.Sy
a77a0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 mfony\Component\Console\Formatte
a77c0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 r;.........class.OutputFormatter
a77e0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 .implements.OutputFormatterInter
a7800 66 61 63 65 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 3d face.{....const.FORMAT_PATTERN.=
a7820 20 27 23 28 5c 5c 5c 5c 3f 29 3c 28 2f 3f 29 28 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d .'#(\\\\?)<(/?)([a-z][a-z0-9_=;-
a7840 5d 2b 29 3f 3e 28 28 3f 3a 20 5b 5e 3c 5c 5c 5c 5c 5d 2b 20 7c 20 28 3f 21 3c 28 3f 3a 2f 3f 5b ]+)?>((?:.[^<\\\\]+.|.(?!<(?:/?[
a7860 61 2d 7a 5d 7c 2f 3e 29 29 2e 20 7c 20 2e 28 3f 3c 3d 5c 5c 5c 5c 3c 29 20 29 2a 29 23 69 73 78 a-z]|/>))..|..(?<=\\\\<).)*)#isx
a7880 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 70 72 69 76 61 74 65 20 ';..private.$decorated;.private.
a78a0 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c $styles.=.array();.private.$styl
a78c0 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 eStack;.........public.static.fu
a78e0 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 nction.escape($text).{.return.pr
a7900 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 69 73 27 2c 20 27 24 eg_replace('/([^\\\\]?)</is',.'$
a7920 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 1\\<',.$text);.}..........public
a7940 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 64 .function.__construct($decorated
a7960 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 .=.null,.array.$styles.=.array()
a7980 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 ).{.$this->decorated.=.(Boolean)
a79a0 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 65 .$decorated;..$this->setStyle('e
a79c0 72 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 rror',.new.OutputFormatterStyle(
a79e0 27 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 'white',.'red'));.$this->setStyl
a7a00 65 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 e('info',.new.OutputFormatterSty
a7a20 6c 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 63 le('green'));.$this->setStyle('c
a7a40 6f 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c omment',.new.OutputFormatterStyl
a7a60 65 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 71 e('yellow'));.$this->setStyle('q
a7a80 75 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 uestion',.new.OutputFormatterSty
a7aa0 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 le('black',.'cyan'));..foreach.(
a7ac0 24 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 74 79 6c 65 29 20 7b 0a 24 74 $styles.as.$name.=>.$style).{.$t
a7ae0 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a his->setStyle($name,.$style);.}.
a7b00 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 .$this->styleStack.=.new.OutputF
a7b20 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ormatterStyleStack();.}.........
a7b40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 public.function.setDecorated($de
a7b60 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 corated).{.$this->decorated.=.(B
a7b80 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 oolean).$decorated;.}.........pu
a7ba0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 blic.function.isDecorated().{.re
a7bc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->decorated;.}........
a7be0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 ..public.function.setStyle($name
a7c00 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 ,.OutputFormatterStyleInterface.
a7c20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 $style).{.$this->styles[strtolow
a7c40 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a er($name)].=.$style;.}..........
a7c60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 .public.function.hasStyle($name)
a7c80 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 .{.return.isset($this->styles[st
a7ca0 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rtolower($name)]);.}............
a7cc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 .public.function.getStyle($name)
a7ce0 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 29 20 .{.if.(!$this->hasStyle($name)).
a7d00 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
a7d20 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 ption(sprintf('Undefined.style:.
a7d40 25 73 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 %s',.$name));.}..return.$this->s
a7d60 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a tyles[strtolower($name)];.}.....
a7d80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 ......public.function.format($me
a7da0 73 73 61 67 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 ssage).{.$message.=.preg_replace
a7dc0 5f 63 61 6c 6c 62 61 63 6b 28 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 2c 20 _callback(self::FORMAT_PATTERN,.
a7de0 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 72 65 70 6c 61 63 65 53 74 79 6c 65 27 29 2c 20 24 6d array($this,.'replaceStyle'),.$m
a7e00 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c essage);..return.str_replace('\\
a7e20 3c 27 2c 20 27 3c 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 <',.'<',.$message);.}.....public
a7e40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 6b 28 29 0a 7b 0a 72 65 74 75 .function.getStyleStack().{.retu
a7e60 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$this->styleStack;.}.........
a7e80 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 53 74 79 6c 65 28 24 6d private.function.replaceStyle($m
a7ea0 61 74 63 68 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d atch).{...if.('\\'.===.$match[1]
a7ec0 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 ).{.return.$this->applyCurrentSt
a7ee0 79 6c 65 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 6d yle($match[0]);.}..if.(''.===.$m
a7f00 61 74 63 68 5b 33 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d atch[3]).{.if.('/'.===.$match[2]
a7f20 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a ).{...$this->styleStack->pop();.
a7f40 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 .return.$this->applyCurrentStyle
a7f60 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 3c 3e 27 2e 24 74 ($match[4]);.}....return.'<>'.$t
a7f80 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d his->applyCurrentStyle($match[4]
a7fa0 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 );.}..if.(isset($this->styles[st
a7fc0 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d 29 5d 29 29 20 7b 0a 24 73 74 79 6c 65 20 rtolower($match[3])])).{.$style.
a7fe0 3d 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 =.$this->styles[strtolower($matc
a8000 68 5b 33 5d 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d h[3])];.}.else.{.$style.=.$this-
a8020 3e 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 6d 61 74 63 68 5b 33 5d >createStyleFromString($match[3]
a8040 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a 72 65 74 75 );..if.(false.===.$style).{.retu
a8060 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 rn.$this->applyCurrentStyle($mat
a8080 63 68 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b ch[0]);.}.}..if.('/'.===.$match[
a80a0 32 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 24 73 74 2]).{.$this->styleStack->pop($st
a80c0 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b yle);.}.else.{.$this->styleStack
a80e0 2d 3e 70 75 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ->push($style);.}..return.$this-
a8100 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d >applyCurrentStyle($match[4]);.}
a8120 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 .........private.function.create
a8140 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 StyleFromString($string).{.if.(!
a8160 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 preg_match_all('/([^=]+)=([^;]+)
a8180 28 3b 7c 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 29 2c 20 24 6d (;|$)/',.strtolower($string),.$m
a81a0 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a 72 65 74 75 72 atches,.PREG_SET_ORDER)).{.retur
a81c0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 n.false;.}..$style.=.new.OutputF
a81e0 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 ormatterStyle();.foreach.($match
a8200 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 6d 61 74 es.as.$match).{.array_shift($mat
a8220 63 68 29 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 ch);..if.('fg'.==.$match[0]).{.$
a8240 73 74 79 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b style->setForeground($match[1]);
a8260 0a 7d 20 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a .}.elseif.('bg'.==.$match[0]).{.
a8280 24 73 74 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 $style->setBackground($match[1])
a82a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 ;.}.else.{.$style->setOption($ma
a82c0 74 63 68 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a tch[1]);.}.}..return.$style;.}..
a82e0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 43 75 72 .......private.function.applyCur
a8300 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d rentStyle($text).{.return.$this-
a8320 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 20 >isDecorated().&&.strlen($text).
a8340 3e 20 30 20 3f 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 43 75 72 72 >.0.?.$this->styleStack->getCurr
a8360 65 6e 74 28 29 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d ent()->apply($text).:.$text;.}.}
a8380 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
a83a0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a ny\Component\Console\Formatter;.
a83c0 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 ........interface.OutputFormatte
a83e0 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rInterface.{........public.funct
a8400 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a ion.setDecorated($decorated);...
a8420 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 ......public.function.isDecorate
a8440 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 d();..........public.function.se
a8460 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 tStyle($name,.OutputFormatterSty
a8480 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 leInterface.$style);...........p
a84a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a ublic.function.hasStyle($name);.
a84c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 ..........public.function.getSty
a84e0 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 le($name);...........public.func
a8500 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a tion.format($message);.}.<?php..
a8520 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
a8540 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nent\Console;..use.Symfony\Compo
a8560 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 nent\Console\Descriptor\TextDesc
a8580 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f riptor;.use.Symfony\Component\Co
a85a0 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a nsole\Descriptor\XmlDescriptor;.
a85c0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
a85e0 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
a8600 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 67 76 49 6e 70 75 Component\Console\Input\ArgvInpu
a8620 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 t;.use.Symfony\Component\Console
a8640 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \Input\ArrayInput;.use.Symfony\C
a8660 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 omponent\Console\Input\InputDefi
a8680 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f nition;.use.Symfony\Component\Co
a86a0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d nsole\Input\InputOption;.use.Sym
a86c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
a86e0 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e utArgument;.use.Symfony\Componen
a8700 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
a8720 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
a8740 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e Output\ConsoleOutput;.use.Symfon
a8760 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f y\Component\Console\Output\Conso
a8780 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 leOutputInterface;.use.Symfony\C
a87a0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 omponent\Console\Command\Command
a87c0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
a87e0 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Command\HelpCommand;.use.Symfony
a8800 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 4c 69 73 74 43 \Component\Console\Command\ListC
a8820 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ommand;.use.Symfony\Component\Co
a8840 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 nsole\Helper\HelperSet;.use.Symf
a8860 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 46 6f 72 ony\Component\Console\Helper\For
a8880 6d 61 74 74 65 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e matterHelper;.use.Symfony\Compon
a88a0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b ent\Console\Helper\DialogHelper;
a88c0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 .use.Symfony\Component\Console\H
a88e0 65 6c 70 65 72 5c 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e elper\ProgressHelper;.use.Symfon
a8900 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 y\Component\Console\Helper\Table
a8920 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Helper;.use.Symfony\Component\Co
a8940 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b nsole\Event\ConsoleCommandEvent;
a8960 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 .use.Symfony\Component\Console\E
a8980 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 3b 0a 75 73 65 20 vent\ConsoleExceptionEvent;.use.
a89a0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c Symfony\Component\Console\Event\
a89c0 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f ConsoleTerminateEvent;.use.Symfo
a89e0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 ny\Component\EventDispatcher\Eve
a8a00 6e 74 44 69 73 70 61 74 63 68 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ntDispatcherInterface;..........
a8a20 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 72 69 .........class.Application.{.pri
a8a40 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e 74 48 65 6c vate.$commands;.private.$wantHel
a8a60 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 43 6f 6d 6d ps.=.false;.private.$runningComm
a8a80 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 and;.private.$name;.private.$ver
a8aa0 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 3b 0a sion;.private.$catchExceptions;.
a8ac0 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 78 69 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 private.$autoExit;.private.$defi
a8ae0 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 69 76 nition;.private.$helperSet;.priv
a8b00 61 74 65 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ate.$dispatcher;..........public
a8b20 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 27 55 .function.__construct($name.=.'U
a8b40 4e 4b 4e 4f 57 4e 27 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 0a 7b NKNOWN',.$version.=.'UNKNOWN').{
a8b60 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 76 65 72 .$this->name.=.$name;.$this->ver
a8b80 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 sion.=.$version;.$this->catchExc
a8ba0 65 70 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 eptions.=.true;.$this->autoExit.
a8bc0 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 =.true;.$this->commands.=.array(
a8be0 29 3b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 );.$this->helperSet.=.$this->get
a8c00 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e DefaultHelperSet();.$this->defin
a8c20 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 ition.=.$this->getDefaultInputDe
a8c40 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 finition();..foreach.($this->get
a8c60 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b DefaultCommands().as.$command).{
a8c80 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c .$this->add($command);.}.}..publ
a8ca0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 ic.function.setDispatcher(EventD
a8cc0 69 73 70 61 74 63 68 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 69 73 70 61 74 63 68 65 72 29 0a ispatcherInterface.$dispatcher).
a8ce0 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 20 3d 20 24 64 69 73 70 61 74 63 68 65 {.$this->dispatcher.=.$dispatche
a8d00 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f r;.}..............public.functio
a8d20 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 n.run(InputInterface.$input.=.nu
a8d40 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 ll,.OutputInterface.$output.=.nu
a8d60 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e ll).{.if.(null.===.$input).{.$in
a8d80 70 75 74 20 3d 20 6e 65 77 20 41 72 67 76 49 6e 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 put.=.new.ArgvInput();.}..if.(nu
a8da0 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 ll.===.$output).{.$output.=.new.
a8dc0 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ConsoleOutput();.}..$this->confi
a8de0 67 75 72 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 74 72 79 20 7b 0a gureIO($input,.$output);..try.{.
a8e00 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c $exitCode.=.$this->doRun($input,
a8e20 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 .$output);.}.catch.(\Exception.$
a8e40 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 e).{.if.(!$this->catchExceptions
a8e60 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 ).{.throw.$e;.}..if.($output.ins
a8e80 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 tanceof.ConsoleOutputInterface).
a8ea0 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 {.$this->renderException($e,.$ou
a8ec0 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 tput->getErrorOutput());.}.else.
a8ee0 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 {.$this->renderException($e,.$ou
a8f00 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 tput);.}..$exitCode.=.$e->getCod
a8f20 65 28 29 3b 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 65 78 69 74 43 6f 64 65 29 29 20 e();.if.(is_numeric($exitCode)).
a8f40 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 69 {.$exitCode.=.(int).$exitCode;.i
a8f60 66 20 28 30 20 3d 3d 3d 20 24 65 78 69 74 43 6f 64 65 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 f.(0.===.$exitCode).{.$exitCode.
a8f80 3d 20 31 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d =.1;.}.}.else.{.$exitCode.=.1;.}
a8fa0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 .}..if.($this->autoExit).{.if.($
a8fc0 65 78 69 74 43 6f 64 65 20 3e 20 32 35 35 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 32 35 exitCode.>.255).{.$exitCode.=.25
a8fe0 35 3b 0a 7d 0a 0a 20 65 78 69 74 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 0a 20 7d 0a 0a 72 65 74 5;.}...exit($exitCode);...}..ret
a9000 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$exitCode;.}..........public
a9020 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 .function.doRun(InputInterface.$
a9040 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a input,.OutputInterface.$output).
a9060 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 {.if.(true.===.$input->hasParame
a9080 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 terOption(array('--version',.'-V
a90a0 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 '))).{.$output->writeln($this->g
a90c0 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a etLongVersion());..return.0;.}..
a90e0 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 $name.=.$this->getCommandName($i
a9100 6e 70 75 74 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 nput);.if.(true.===.$input->hasP
a9120 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 2c 20 27 arameterOption(array('--help',.'
a9140 2d 68 27 29 29 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 -h'))).{.if.(!$name).{.$name.=.'
a9160 68 65 6c 70 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 help';.$input.=.new.ArrayInput(a
a9180 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 68 65 6c 70 27 29 29 3b 0a 7d 20 65 6c rray('command'.=>.'help'));.}.el
a91a0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 74 72 75 65 3b 0a 7d 0a se.{.$this->wantHelps.=.true;.}.
a91c0 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 6c 69 73 74 27 3b }..if.(!$name).{.$name.=.'list';
a91e0 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 .$input.=.new.ArrayInput(array('
a9200 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 6c 69 73 74 27 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d command'.=>.'list'));.}....$comm
a9220 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 and.=.$this->find($name);..$this
a9240 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 65 78 ->runningCommand.=.$command;.$ex
a9260 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f itCode.=.$this->doRunCommand($co
a9280 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e mmand,.$input,.$output);.$this->
a92a0 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 runningCommand.=.null;..return.$
a92c0 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 exitCode;.}.........public.funct
a92e0 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 ion.setHelperSet(HelperSet.$help
a9300 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c erSet).{.$this->helperSet.=.$hel
a9320 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f perSet;.}.........public.functio
a9340 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getHelperSet().{.return.$this-
a9360 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >helperSet;.}.........public.fun
a9380 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 ction.setDefinition(InputDefinit
a93a0 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 ion.$definition).{.$this->defini
a93c0 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tion.=.$definition;.}.......publ
a93e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 ic.function.getDefinition().{.re
a9400 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a turn.$this->definition;.}.......
a9420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 24 6d 65 73 public.function.getHelp().{.$mes
a9440 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 sages.=.array(.$this->getLongVer
a9460 73 69 6f 6e 28 29 2c 0a 27 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f sion(),.'',.'<comment>Usage:</co
a9480 6d 6d 65 6e 74 3e 27 2c 0a 27 20 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d 6d 61 6e 64 20 5b 61 mment>',.'..[options].command.[a
a94a0 72 67 75 6d 65 6e 74 73 5d 27 2c 0a 27 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e rguments]',.'',.'<comment>Option
a94c0 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 s:</comment>',.);..foreach.($thi
a94e0 73 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 s->getDefinition()->getOptions()
a9500 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 .as.$option).{.$messages[].=.spr
a9520 69 6e 74 66 28 27 20 20 25 2d 32 39 73 20 25 73 20 25 73 27 2c 0a 27 3c 69 6e 66 6f 3e 2d 2d 27 intf('..%-29s.%s.%s',.'<info>--'
a9540 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 .$option->getName().'</info>',.$
a9560 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 3c 69 6e 66 6f 3e 2d option->getShortcut().?.'<info>-
a9580 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2e 27 3c 2f 69 6e 66 6f '.$option->getShortcut().'</info
a95a0 3e 27 20 3a 20 27 20 20 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 >'.:.'..',.$option->getDescripti
a95c0 6f 6e 28 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f on().);.}..return.implode(PHP_EO
a95e0 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 L,.$messages);.}.........public.
a9600 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f function.setCatchExceptions($boo
a9620 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d lean).{.$this->catchExceptions.=
a9640 20 28 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .(Boolean).$boolean;.}.........p
a9660 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c ublic.function.setAutoExit($bool
a9680 65 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 42 6f 6f 6c 65 61 ean).{.$this->autoExit.=.(Boolea
a96a0 6e 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n).$boolean;.}.........public.fu
a96c0 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getName().{.return.$this-
a96e0 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >name;.}.........public.function
a9700 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 .setName($name).{.$this->name.=.
a9720 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $name;.}.........public.function
a9740 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 .getVersion().{.return.$this->ve
a9760 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rsion;.}.........public.function
a9780 20 73 65 74 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 .setVersion($version).{.$this->v
a97a0 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ersion.=.$version;.}.........pub
a97c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a lic.function.getLongVersion().{.
a97e0 69 66 20 28 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 if.('UNKNOWN'.!==.$this->getName
a9800 28 29 20 26 26 20 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 ().&&.'UNKNOWN'.!==.$this->getVe
a9820 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f rsion()).{.return.sprintf('<info
a9840 3e 25 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f >%s</info>.version.<comment>%s</
a9860 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 comment>',.$this->getName(),.$th
a9880 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 is->getVersion());.}..return.'<i
a98a0 6e 66 6f 3e 43 6f 6e 73 6f 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a nfo>Console.Tool</info>';.}.....
a98c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 ......public.function.register($
a98e0 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f name).{.return.$this->add(new.Co
a9900 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 mmand($name));.}.........public.
a9920 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d function.addCommands(array.$comm
a9940 61 6e 64 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 ands).{.foreach.($commands.as.$c
a9960 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a ommand).{.$this->add($command);.
a9980 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 }.}.............public.function.
a99a0 61 64 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 add(Command.$command).{.$command
a99c0 2d 3e 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 ->setApplication($this);..if.(!$
a99e0 63 6f 6d 6d 61 6e 64 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 command->isEnabled()).{.$command
a9a00 2d 3e 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b ->setApplication(null);..return;
a9a20 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 .}..$this->commands[$command->ge
a9a40 74 4e 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 tName()].=.$command;..foreach.($
a9a60 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 command->getAliases().as.$alias)
a9a80 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 63 6f .{.$this->commands[$alias].=.$co
a9aa0 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a mmand;.}..return.$command;.}....
a9ac0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 .........public.function.get($na
a9ae0 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 me).{.if.(!isset($this->commands
a9b00 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 [$name])).{.throw.new.\InvalidAr
a9b20 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 6f 6d gumentException(sprintf('The.com
a9b40 6d 61 6e 64 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d mand."%s".does.not.exist.',.$nam
a9b60 65 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e e));.}..$command.=.$this->comman
a9b80 64 73 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 ds[$name];..if.($this->wantHelps
a9ba0 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 ).{.$this->wantHelps.=.false;..$
a9bc0 68 65 6c 70 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 68 65 6c 70 27 29 helpCommand.=.$this->get('help')
a9be0 3b 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d ;.$helpCommand->setCommand($comm
a9c00 61 6e 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 and);..return.$helpCommand;.}..r
a9c20 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c eturn.$command;.}...........publ
a9c40 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 ic.function.has($name).{.return.
a9c60 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d isset($this->commands[$name]);.}
a9c80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 .........public.function.getName
a9ca0 73 70 61 63 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 spaces().{.$namespaces.=.array()
a9cc0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 ;.foreach.($this->commands.as.$c
a9ce0 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d ommand).{.$namespaces[].=.$this-
a9d00 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e >extractNamespace($command->getN
a9d20 61 6d 65 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 ame());..foreach.($command->getA
a9d40 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 liases().as.$alias).{.$namespace
a9d60 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 61 s[].=.$this->extractNamespace($a
a9d80 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 lias);.}.}..return.array_values(
a9da0 61 72 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 73 array_unique(array_filter($names
a9dc0 70 61 63 65 73 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e paces)));.}...........public.fun
a9de0 63 74 69 6f 6e 20 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 0a ction.findNamespace($namespace).
a9e00 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d {.$allNamespaces.=.$this->getNam
a9e20 65 73 70 61 63 65 73 28 29 3b 0a 24 66 6f 75 6e 64 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 espaces();.$found.=.'';.foreach.
a9e40 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 20 61 73 20 24 69 20 (explode(':',.$namespace).as.$i.
a9e60 3d 3e 20 24 70 61 72 74 29 20 7b 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 =>.$part).{...$namespaces.=.arra
a9e80 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 61 73 20 y();.foreach.($allNamespaces.as.
a9ea0 24 6e 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 66 6f 75 6e 64 20 7c 7c 20 30 20 3d 3d 3d $n).{.if.(''.===.$found.||.0.===
a9ec0 20 73 74 72 70 6f 73 28 24 6e 2c 20 24 66 6f 75 6e 64 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 .strpos($n,.$found)).{.$namespac
a9ee0 65 73 5b 24 6e 5d 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 29 3b 0a 7d 0a 7d 0a 0a es[$n].=.explode(':',.$n);.}.}..
a9f00 24 61 62 62 72 65 76 73 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 $abbrevs.=.static::getAbbreviati
a9f20 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 ons(array_unique(array_values(ar
a9f40 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 ray_filter(array_map(function.($
a9f60 70 29 20 75 73 65 20 28 24 69 29 20 7b 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 70 5b 24 69 p).use.($i).{.return.isset($p[$i
a9f80 5d 29 20 3f 20 24 70 5b 24 69 5d 20 3a 20 27 27 3b 20 7d 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 ]).?.$p[$i].:.'';.},.$namespaces
a9fa0 29 29 29 29 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 )))));..if.(!isset($abbrevs[$par
a9fc0 74 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 72 65 t])).{.$message.=.sprintf('There
a9fe0 20 61 72 65 20 6e 6f 20 63 6f 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 .are.no.commands.defined.in.the.
aa000 22 25 73 22 20 6e 61 6d 65 73 70 61 63 65 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a "%s".namespace.',.$namespace);..
aa020 69 66 20 28 31 20 3c 3d 20 24 69 29 20 7b 0a 24 70 61 72 74 20 3d 20 24 66 6f 75 6e 64 2e 27 3a if.(1.<=.$i).{.$part.=.$found.':
aa040 27 2e 24 70 61 72 74 3b 0a 7d 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 '.$part;.}..if.($alternatives.=.
aa060 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e 61 6d 65 73 70 61 63 65 28 $this->findAlternativeNamespace(
aa080 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 $part,.$abbrevs)).{.if.(1.==.cou
aa0a0 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d nt($alternatives)).{.$message..=
aa0c0 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b ."\n\nDid.you.mean.this?\n....";
aa0e0 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 .}.else.{.$message..=."\n\nDid.y
aa100 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a ou.mean.one.of.these?\n....";.}.
aa120 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 .$message..=.implode("\n....",.$
aa140 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 alternatives);.}..throw.new.\Inv
aa160 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b alidArgumentException($message);
aa180 0a 7d 0a 0a 0a 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 .}....if.(in_array($part,.$abbre
aa1a0 76 73 5b 24 70 61 72 74 5d 29 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 20 3d 20 vs[$part])).{.$abbrevs[$part].=.
aa1c0 61 72 72 61 79 28 24 70 61 72 74 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 62 62 72 array($part);.}..if.(count($abbr
aa1e0 65 76 73 5b 24 70 61 72 74 5d 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e evs[$part]).>.1).{.throw.new.\In
aa200 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
aa220 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 The.namespace."%s".is.ambiguous.
aa240 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 (%s).',.$namespace,.$this->getAb
aa260 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 5b 24 breviationSuggestions($abbrevs[$
aa280 70 61 72 74 5d 29 29 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 20 2e 3d 20 24 66 6f 75 6e 64 20 3f 20 part])));.}..$found..=.$found.?.
aa2a0 27 3a 27 20 2e 20 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 5b 30 5d 20 3a 20 24 61 62 62 72 ':'...$abbrevs[$part][0].:.$abbr
aa2c0 65 76 73 5b 24 70 61 72 74 5d 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 6f 75 6e 64 3b evs[$part][0];.}..return.$found;
aa2e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .}................public.functio
aa300 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 n.find($name).{...$namespace.=.'
aa320 27 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 69 66 20 28 66 61 6c 73 ';.$searchName.=.$name;.if.(fals
aa340 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 e.!==.$pos.=.strrpos($name,.':')
aa360 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 ).{.$namespace.=.$this->findName
aa380 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 space(substr($name,.0,.$pos));.$
aa3a0 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 2e 73 75 62 73 74 72 28 24 searchName.=.$namespace.substr($
aa3c0 6e 61 6d 65 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 name,.$pos);.}....$commands.=.ar
aa3e0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 ray();.foreach.($this->commands.
aa400 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 as.$command).{.$extractedNamespa
aa420 63 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 63 6f ce.=.$this->extractNamespace($co
aa440 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 69 66 20 28 24 65 78 74 72 61 63 74 65 mmand->getName());.if.($extracte
aa460 64 4e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 0a 7c 7c 20 21 65 6d dNamespace.===.$namespace.||.!em
aa480 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 pty($namespace).&&.0.===.strpos(
aa4a0 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 $extractedNamespace,.$namespace)
aa4c0 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 .).{.$commands[].=.$command->get
aa4e0 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 61 62 62 72 65 76 73 20 3d 20 73 74 61 74 69 63 3a 3a Name();.}.}..$abbrevs.=.static::
aa500 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 getAbbreviations(array_unique($c
aa520 6f 6d 6d 61 6e 64 73 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 ommands));.if.(isset($abbrevs[$s
aa540 65 61 72 63 68 4e 61 6d 65 5d 29 20 26 26 20 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 62 62 72 65 earchName]).&&.1.==.count($abbre
aa560 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 vs[$searchName])).{.return.$this
aa580 2d 3e 67 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d 29 3b ->get($abbrevs[$searchName][0]);
aa5a0 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 .}..if.(isset($abbrevs[$searchNa
aa5c0 6d 65 5d 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 73 65 61 72 63 68 4e 61 6d 65 2c 20 24 61 me]).&&.in_array($searchName,.$a
aa5e0 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 bbrevs[$searchName])).{.return.$
aa600 74 68 69 73 2d 3e 67 65 74 28 24 73 65 61 72 63 68 4e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 this->get($searchName);.}..if.(i
aa620 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 26 26 20 63 sset($abbrevs[$searchName]).&&.c
aa640 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 31 29 ount($abbrevs[$searchName]).>.1)
aa660 20 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 .{.$suggestions.=.$this->getAbbr
aa680 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 5b 24 73 65 eviationSuggestions($abbrevs[$se
aa6a0 61 72 63 68 4e 61 6d 65 5d 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 archName]);..throw.new.\InvalidA
aa6c0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e rgumentException(sprintf('Comman
aa6e0 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d d."%s".is.ambiguous.(%s).',.$nam
aa700 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 0a 20 24 61 6c 69 61 73 65 73 e,.$suggestions));.}....$aliases
aa720 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d .=.array();.foreach.($this->comm
aa740 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f ands.as.$command).{.foreach.($co
aa760 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b mmand->getAliases().as.$alias).{
aa780 0a 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 .$extractedNamespace.=.$this->ex
aa7a0 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 61 6c 69 61 73 29 3b 0a 69 66 20 28 24 65 78 74 tractNamespace($alias);.if.($ext
aa7c0 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 0a 7c ractedNamespace.===.$namespace.|
aa7e0 7c 20 21 65 6d 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 |.!empty($namespace).&&.0.===.st
aa800 72 70 6f 73 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 rpos($extractedNamespace,.$names
aa820 70 61 63 65 29 0a 29 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d pace).).{.$aliases[].=.$alias;.}
aa840 0a 7d 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 .}.}..$aliases.=.static::getAbbr
aa860 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 61 6c 69 61 73 65 73 29 eviations(array_unique($aliases)
aa880 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 );.if.(!isset($aliases[$searchNa
aa8a0 6d 65 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d me])).{.$message.=.sprintf('Comm
aa8c0 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 and."%s".is.not.defined.',.$name
aa8e0 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 );..if.($alternatives.=.$this->f
aa900 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 43 6f 6d 6d 61 6e 64 73 28 24 73 65 61 72 63 68 4e 61 indAlternativeCommands($searchNa
aa920 6d 65 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 me,.$abbrevs)).{.if.(1.==.count(
aa940 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c $alternatives)).{.$message..=."\
aa960 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 n\nDid.you.mean.this?\n....";.}.
aa980 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 else.{.$message..=."\n\nDid.you.
aa9a0 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 24 6d 65 mean.one.of.these?\n....";.}.$me
aa9c0 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 ssage..=.implode("\n....",.$alte
aa9e0 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 rnatives);.}..throw.new.\Invalid
aaa00 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a ArgumentException($message);.}..
aaa20 69 66 20 28 63 6f 75 6e 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 if.(count($aliases[$searchName])
aaa40 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 .>.1).{.throw.new.\InvalidArgume
aaa60 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 ntException(sprintf('Command."%s
aaa80 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 74 ".is.ambiguous.(%s).',.$name,.$t
aaaa0 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 his->getAbbreviationSuggestions(
aaac0 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 29 3b 0a 7d 0a 0a 72 65 74 $aliases[$searchName])));.}..ret
aaae0 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e urn.$this->get($aliases[$searchN
aab00 61 6d 65 5d 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ame][0]);.}.............public.f
aab20 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b unction.all($namespace.=.null).{
aab40 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 72 65 74 75 .if.(null.===.$namespace).{.retu
aab60 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 73 rn.$this->commands;.}..$commands
aab80 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d .=.array();.foreach.($this->comm
aaba0 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 ands.as.$name.=>.$command).{.if.
aabc0 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 ($namespace.===.$this->extractNa
aabe0 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 6e 61 6d mespace($name,.substr_count($nam
aac00 65 73 70 61 63 65 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 24 espace,.':').+.1)).{.$commands[$
aac20 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 name].=.$command;.}.}..return.$c
aac40 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ommands;.}.........public.static
aac60 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 24 6e 61 6d 65 .function.getAbbreviations($name
aac80 73 29 0a 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 s).{.$abbrevs.=.array();.foreach
aaca0 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 20 28 24 6c 65 6e 20 3d .($names.as.$name).{.for.($len.=
aacc0 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e .strlen($name);.$len.>.0;.--$len
aace0 29 20 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 ).{.$abbrev.=.substr($name,.0,.$
aad00 6c 65 6e 29 3b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 3d 20 24 6e 61 6d len);.$abbrevs[$abbrev][].=.$nam
aad20 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b 0a 7d 0a 0a 0a 0a 0a 0a e;.}.}..return.$abbrevs;.}......
aad40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 24 6e 61 ......public.function.asText($na
aad60 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a mespace.=.null,.$raw.=.false).{.
aad80 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 $descriptor.=.new.TextDescriptor
aada0 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 ();..return.$descriptor->describ
aadc0 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 6e e($this,.array('namespace'.=>.$n
aade0 61 6d 65 73 70 61 63 65 2c 20 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 72 61 77 29 29 3b 0a amespace,.'raw_text'.=>.$raw));.
aae00 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 }............public.function.asX
aae20 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 61 73 44 6f 6d 20 3d 20 66 ml($namespace.=.null,.$asDom.=.f
aae40 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 alse).{.$descriptor.=.new.XmlDes
aae60 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e criptor();..return.$descriptor->
aae80 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 describe($this,.array('namespace
aaea0 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 24 61 73 '.=>.$namespace,.'as_dom'.=>.$as
aaec0 44 6f 6d 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Dom));.}........public.function.
aaee0 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 renderException($e,.$output).{.$
aaf00 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 72 69 6e 67 29 20 7b 0a 69 66 strlen.=.function.($string).{.if
aaf20 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 29 .(!function_exists('mb_strlen'))
aaf40 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 .{.return.strlen($string);.}..if
aaf60 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 .(false.===.$encoding.=.mb_detec
aaf80 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 t_encoding($string)).{.return.st
aafa0 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c rlen($string);.}..return.mb_strl
aafc0 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 6f 20 7b en($string,.$encoding);.};..do.{
aafe0 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 65 .$title.=.sprintf('..[%s]..',.ge
ab000 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 24 6c 65 6e 20 3d 20 24 73 74 72 6c 65 6e 28 24 74 69 t_class($e));.$len.=.$strlen($ti
ab020 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 tle);.$width.=.$this->getTermina
ab040 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 lWidth().?.$this->getTerminalWid
ab060 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 24 6c 69 6e 65 73 20 3d th().-.1.:.PHP_INT_MAX;.$lines.=
ab080 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f .array();.foreach.(preg_split('/
ab0a0 5c 72 3f 5c 6e 2f 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 20 24 6c \r?\n/',.$e->getMessage()).as.$l
ab0c0 69 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 73 74 72 5f 73 70 6c 69 74 28 24 6c 69 6e 65 2c ine).{.foreach.(str_split($line,
ab0e0 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 73 5b .$width.-.4).as.$line).{.$lines[
ab100 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 25 73 20 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 6c ].=.sprintf('..%s..',.$line);.$l
ab120 65 6e 20 3d 20 6d 61 78 28 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 20 2b 20 34 2c 20 24 6c 65 en.=.max($strlen($line).+.4,.$le
ab140 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 73 74 72 5f 72 n);.}.}..$messages.=.array(str_r
ab160 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 2c 20 24 74 69 74 6c 65 2e 73 74 72 5f 72 65 70 epeat('.',.$len),.$title.str_rep
ab180 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 eat('.',.max(0,.$len.-.$strlen($
ab1a0 74 69 74 6c 65 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 title))));..foreach.($lines.as.$
ab1c0 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f line).{.$messages[].=.$line.str_
ab1e0 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 repeat('.',.$len.-.$strlen($line
ab200 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 ));.}..$messages[].=.str_repeat(
ab220 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 '.',.$len);..$output->writeln(""
ab240 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 66 6f 72 65 61 63 68 );.$output->writeln("");.foreach
ab260 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 70 .($messages.as.$message).{.$outp
ab280 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 6d 65 73 73 61 67 65 2e 27 ut->writeln('<error>'.$message.'
ab2a0 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 </error>');.}.$output->writeln("
ab2c0 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 0a 69 66 20 28 4f ");.$output->writeln("");..if.(O
ab2e0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 utputInterface::VERBOSITY_VERBOS
ab300 45 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a E.<=.$output->getVerbosity()).{.
ab320 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 45 78 63 65 70 $output->writeln('<comment>Excep
ab340 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 0a 20 24 74 72 61 tion.trace:</comment>');....$tra
ab360 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 72 61 63 65 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 ce.=.$e->getTrace();.array_unshi
ab380 66 74 28 24 74 72 61 63 65 2c 20 61 72 72 61 79 28 0a 27 66 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 ft($trace,.array(.'function'.=>.
ab3a0 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 21 3d 20 6e '',.'file'.=>.$e->getFile().!=.n
ab3c0 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 6c 69 ull.?.$e->getFile().:.'n/a',.'li
ab3e0 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 ne'.=>.$e->getLine().!=.null.?.$
ab400 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 61 72 67 73 27 20 3d 3e 20 e->getLine().:.'n/a',.'args'.=>.
ab420 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e array(),.));..for.($i.=.0,.$coun
ab440 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 61 63 65 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 t.=.count($trace);.$i.<.$count;.
ab460 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 $i++).{.$class.=.isset($trace[$i
ab480 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 ]['class']).?.$trace[$i]['class'
ab4a0 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d ].:.'';.$type.=.isset($trace[$i]
ab4c0 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 3a ['type']).?.$trace[$i]['type'].:
ab4e0 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f 6e 20 3d 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 75 6e .'';.$function.=.$trace[$i]['fun
ab500 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 ction'];.$file.=.isset($trace[$i
ab520 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 20 ]['file']).?.$trace[$i]['file'].
ab540 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 :.'n/a';.$line.=.isset($trace[$i
ab560 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 20 ]['line']).?.$trace[$i]['line'].
ab580 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e :.'n/a';..$output->writeln(sprin
ab5a0 74 66 28 27 20 25 73 25 73 25 73 28 29 20 61 74 20 3c 69 6e 66 6f 3e 25 73 3a 25 73 3c 2f 69 6e tf('.%s%s%s().at.<info>%s:%s</in
ab5c0 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c 20 24 74 79 70 65 2c 20 24 66 75 6e 63 74 69 6f 6e 2c 20 fo>',.$class,.$type,.$function,.
ab5e0 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 $file,.$line));.}..$output->writ
ab600 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d eln("");.$output->writeln("");.}
ab620 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 3d 20 24 65 2d 3e 67 65 74 50 72 65 76 69 6f 75 73 28 29 .}.while.($e.=.$e->getPrevious()
ab640 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 );..if.(null.!==.$this->runningC
ab660 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e ommand).{.$output->writeln(sprin
ab680 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 73 70 72 69 6e 74 66 28 24 74 tf('<info>%s</info>',.sprintf($t
ab6a0 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 his->runningCommand->getSynopsis
ab6c0 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 24 6f 75 74 70 75 74 (),.$this->getName())));.$output
ab6e0 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ->writeln("");.$output->writeln(
ab700 22 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f "");.}.}.......protected.functio
ab720 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f n.getTerminalWidth().{.$dimensio
ab740 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e ns.=.$this->getTerminalDimension
ab760 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 6e 73 69 6f 6e 73 5b 30 5d 3b 0a 7d 0a 0a s();..return.$dimensions[0];.}..
ab780 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 .....protected.function.getTermi
ab7a0 6e 61 6c 48 65 69 67 68 74 28 29 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 nalHeight().{.$dimensions.=.$thi
ab7c0 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 s->getTerminalDimensions();..ret
ab7e0 75 72 6e 20 24 64 69 6d 65 6e 73 69 6f 6e 73 5b 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c urn.$dimensions[1];.}.......publ
ab800 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e ic.function.getTerminalDimension
ab820 73 28 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 s().{.if.(defined('PHP_WINDOWS_V
ab840 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 ERSION_BUILD')).{...if.(preg_mat
ab860 63 68 28 27 2f 5e 28 5c 64 2b 29 78 5c 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 2f 27 ch('/^(\d+)x\d+.\(\d+x(\d+)\)$/'
ab880 2c 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 2c 20 24 6d 61 74 63 ,.trim(getenv('ANSICON')),.$matc
ab8a0 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 hes)).{.return.array((int).$matc
ab8c0 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 0a 20 hes[1],.(int).$matches[2]);.}...
ab8e0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b 29 78 28 5c 64 2b 29 24 2f 27 if.(preg_match('/^(\d+)x(\d+)$/'
ab900 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 2c 20 24 6d 61 74 63 ,.$this->getConsoleMode(),.$matc
ab920 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 hes)).{.return.array((int).$matc
ab940 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 7d 0a hes[1],.(int).$matches[2]);.}.}.
ab960 0a 69 66 20 28 24 73 74 74 79 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 .if.($sttyString.=.$this->getStt
ab980 79 43 6f 6c 75 6d 6e 73 28 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 yColumns()).{...if.(preg_match('
ab9a0 2f 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 2f 69 27 2c 20 /rows.(\d+);.columns.(\d+);/i',.
ab9c0 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e $sttyString,.$matches)).{.return
ab9e0 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 .array((int).$matches[2],.(int).
aba00 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 $matches[1]);.}...if.(preg_match
aba20 28 27 2f 3b 2e 28 5c 64 2b 29 2e 72 6f 77 73 3b 2e 28 5c 64 2b 29 2e 63 6f 6c 75 6d 6e 73 2f 69 ('/;.(\d+).rows;.(\d+).columns/i
aba40 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 ',.$sttyString,.$matches)).{.ret
aba60 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e urn.array((int).$matches[2],.(in
aba80 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 t).$matches[1]);.}.}..return.arr
abaa0 61 79 28 6e 75 6c 6c 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ay(null,.null);.}........protect
abac0 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 49 4f 28 49 6e 70 75 74 49 6e 74 ed.function.configureIO(InputInt
abae0 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
abb00 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 output).{.if.(true.===.$input->h
abb20 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 61 6e 73 69 27 asParameterOption(array('--ansi'
abb40 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 74 72 75 65 ))).{.$output->setDecorated(true
abb60 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 );.}.elseif.(true.===.$input->ha
abb80 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 sParameterOption(array('--no-ans
abba0 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 i'))).{.$output->setDecorated(fa
abbc0 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 lse);.}..if.(true.===.$input->ha
abbe0 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 69 6e 74 sParameterOption(array('--no-int
abc00 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 29 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 eraction',.'-n'))).{.$input->set
abc20 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 Interactive(false);.}.elseif.(fu
abc40 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 nction_exists('posix_isatty').&&
abc60 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 68 61 73 28 27 64 69 61 .$this->getHelperSet()->has('dia
abc80 6c 6f 67 27 29 29 20 7b 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 67 log')).{.$inputStream.=.$this->g
abca0 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 67 65 etHelperSet()->get('dialog')->ge
abcc0 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 3b 0a 69 66 20 28 21 70 6f 73 69 78 5f 69 73 61 74 74 tInputStream();.if.(!posix_isatt
abce0 79 28 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e y($inputStream)).{.$input->setIn
abd00 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 teractive(false);.}.}..if.(true.
abd20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 ===.$input->hasParameterOption(a
abd40 72 72 61 79 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 rray('--quiet',.'-q'))).{.$outpu
abd60 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a t->setVerbosity(OutputInterface:
abd80 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 :VERBOSITY_QUIET);.}.else.{.if.(
abda0 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 76 76 $input->hasParameterOption('-vvv
abdc0 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e ').||.$input->hasParameterOption
abde0 28 27 2d 2d 76 65 72 62 6f 73 65 3d 33 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 ('--verbose=3').||.$input->getPa
abe00 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d 3d 20 33 rameterOption('--verbose').===.3
abe20 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 ).{.$output->setVerbosity(Output
abe40 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 29 3b 0a 7d 20 65 Interface::VERBOSITY_DEBUG);.}.e
abe60 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f lseif.($input->hasParameterOptio
abe80 6e 28 27 2d 76 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 n('-vv').||.$input->hasParameter
abea0 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 32 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d Option('--verbose=2').||.$input-
abec0 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 >getParameterOption('--verbose')
abee0 20 3d 3d 3d 20 32 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 .===.2).{.$output->setVerbosity(
abf00 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f OutputInterface::VERBOSITY_VERY_
abf20 56 45 52 42 4f 53 45 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 VERBOSE);.}.elseif.($input->hasP
abf40 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e arameterOption('-v').||.$input->
abf60 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 31 27 hasParameterOption('--verbose=1'
abf80 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 ).||.$input->hasParameterOption(
abfa0 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d '--verbose').||.$input->getParam
abfc0 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 eterOption('--verbose')).{.$outp
abfe0 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 ut->setVerbosity(OutputInterface
ac000 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a ::VERBOSITY_VERBOSE);.}.}.}.....
ac020 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 .........protected.function.doRu
ac040 6e 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 nCommand(Command.$command,.Input
ac060 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
ac080 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d e.$output).{.if.(null.===.$this-
ac0a0 3e 64 69 73 70 61 74 63 68 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 2d 3e >dispatcher).{.return.$command->
ac0c0 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 run($input,.$output);.}..$event.
ac0e0 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 63 6f 6d 6d 61 =.new.ConsoleCommandEvent($comma
ac100 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 nd,.$input,.$output);.$this->dis
ac120 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a patcher->dispatch(ConsoleEvents:
ac140 3a 43 4f 4d 4d 41 4e 44 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 :COMMAND,.$event);..try.{.$exitC
ac160 6f 64 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 ode.=.$command->run($input,.$out
ac180 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a put);.}.catch.(\Exception.$e).{.
ac1a0 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 $event.=.new.ConsoleTerminateEve
ac1c0 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 nt($command,.$input,.$output,.$e
ac1e0 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d ->getCode());.$this->dispatcher-
ac200 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 >dispatch(ConsoleEvents::TERMINA
ac220 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f TE,.$event);..$event.=.new.Conso
ac240 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 leExceptionEvent($command,.$inpu
ac260 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 69 74 43 t,.$output,.$e,.$event->getExitC
ac280 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 ode());.$this->dispatcher->dispa
ac2a0 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 45 58 43 45 50 54 49 4f 4e 2c 20 24 65 tch(ConsoleEvents::EXCEPTION,.$e
ac2c0 76 65 6e 74 29 3b 0a 0a 74 68 72 6f 77 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 63 65 70 74 69 vent);..throw.$event->getExcepti
ac2e0 6f 6e 28 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 on();.}..$event.=.new.ConsoleTer
ac300 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f minateEvent($command,.$input,.$o
ac320 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 utput,.$exitCode);.$this->dispat
ac340 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 cher->dispatch(ConsoleEvents::TE
ac360 52 4d 49 4e 41 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 RMINATE,.$event);..return.$event
ac380 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 ->getExitCode();.}.........prote
ac3a0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 49 6e 70 cted.function.getCommandName(Inp
ac3c0 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 69 6e utInterface.$input).{.return.$in
ac3e0 70 75 74 2d 3e 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a put->getFirstArgument();.}......
ac400 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e .protected.function.getDefaultIn
ac420 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 putDefinition().{.return.new.Inp
ac440 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 utDefinition(array(.new.InputArg
ac460 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a ument('command',.InputArgument::
ac480 52 45 51 55 49 52 45 44 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 65 78 65 63 75 74 REQUIRED,.'The.command.to.execut
ac4a0 65 27 29 2c 0a 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 68 65 6c 70 27 2c 20 e'),..new.InputOption('--help',.
ac4c0 27 2d 68 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 '-h',.InputOption::VALUE_NONE,.'
ac4e0 44 69 73 70 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 Display.this.help.message.'),.ne
ac500 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 2c 20 49 w.InputOption('--quiet',.'-q',.I
ac520 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 nputOption::VALUE_NONE,.'Do.not.
ac540 6f 75 74 70 75 74 20 61 6e 79 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 output.any.message.'),.new.Input
ac560 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 7c 76 76 7c 76 76 76 27 2c Option('--verbose',.'-v|vv|vvv',
ac580 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 .InputOption::VALUE_NONE,.'Incre
ac5a0 61 73 65 20 74 68 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 3a 20 31 ase.the.verbosity.of.messages:.1
ac5c0 20 66 6f 72 20 6e 6f 72 6d 61 6c 20 6f 75 74 70 75 74 2c 20 32 20 66 6f 72 20 6d 6f 72 65 20 76 .for.normal.output,.2.for.more.v
ac5e0 65 72 62 6f 73 65 20 6f 75 74 70 75 74 20 61 6e 64 20 33 20 66 6f 72 20 64 65 62 75 67 27 29 2c erbose.output.and.3.for.debug'),
ac600 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d .new.InputOption('--version',.'-
ac620 56 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 V',.InputOption::VALUE_NONE,.'Di
ac640 73 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 splay.this.application.version.'
ac660 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 27 27 2c ),.new.InputOption('--ansi',.'',
ac680 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 .InputOption::VALUE_NONE,.'Force
ac6a0 20 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e .ANSI.output.'),.new.InputOption
ac6c0 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 ('--no-ansi',.'',.InputOption::V
ac6e0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 74 2e ALUE_NONE,.'Disable.ANSI.output.
ac700 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 '),.new.InputOption('--no-intera
ac720 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ction',.'-n',.InputOption::VALUE
ac740 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 _NONE,.'Do.not.ask.any.interacti
ac760 76 65 20 71 75 65 73 74 69 6f 6e 2e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ve.question.'),.));.}.......prot
ac780 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 ected.function.getDefaultCommand
ac7a0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 s().{.return.array(new.HelpComma
ac7c0 6e 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a nd(),.new.ListCommand());.}.....
ac7e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 ..protected.function.getDefaultH
ac800 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 elperSet().{.return.new.HelperSe
ac820 74 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a t(array(.new.FormatterHelper(),.
ac840 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 67 72 65 73 73 new.DialogHelper(),.new.Progress
ac860 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 54 61 62 6c 65 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b Helper(),.new.TableHelper(),.));
ac880 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 74 .}.......private.function.getStt
ac8a0 79 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 yColumns().{.if.(!function_exist
ac8c0 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 s('proc_open')).{.return;.}..$de
ac8e0 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 scriptorspec.=.array(1.=>.array(
ac900 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 'pipe',.'w'),.2.=>.array('pipe',
ac920 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 73 74 .'w'));.$process.=.proc_open('st
ac940 74 79 20 2d 61 20 7c 20 67 72 65 70 20 63 6f 6c 75 6d 6e 73 27 2c 20 24 64 65 73 63 72 69 70 74 ty.-a.|.grep.columns',.$descript
ac960 6f 72 73 70 65 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 orspec,.$pipes,.null,.null,.arra
ac980 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 y('suppress_errors'.=>.true));.i
ac9a0 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 f.(is_resource($process)).{.$inf
ac9c0 6f 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 o.=.stream_get_contents($pipes[1
ac9e0 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 ]);.fclose($pipes[1]);.fclose($p
aca00 69 70 65 73 5b 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a ipes[2]);.proc_close($process);.
aca20 0a 72 65 74 75 72 6e 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 .return.$info;.}.}.......private
aca40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 .function.getConsoleMode().{.if.
aca60 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 (!function_exists('proc_open')).
aca80 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 {.return;.}..$descriptorspec.=.a
acaa0 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 rray(1.=>.array('pipe',.'w'),.2.
acac0 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 =>.array('pipe',.'w'));.$process
acae0 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 .=.proc_open('mode.CON',.$descri
acb00 70 74 6f 72 73 70 65 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 ptorspec,.$pipes,.null,.null,.ar
acb20 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b ray('suppress_errors'.=>.true));
acb40 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 .if.(is_resource($process)).{.$i
acb60 6e 66 6f 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 nfo.=.stream_get_contents($pipes
acb80 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 [1]);.fclose($pipes[1]);.fclose(
acba0 24 70 69 70 65 73 5b 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 $pipes[2]);.proc_close($process)
acbc0 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 2d 2d 2d 2d 2d 2d 2d 2b 5c 72 3f ;..if.(preg_match('/--------+\r?
acbe0 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2f 27 2c 20 \n.+?(\d+)\r?\n.+?(\d+)\r?\n/',.
acc00 24 69 6e 66 6f 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 $info,.$matches)).{.return.$matc
acc20 68 65 73 5b 32 5d 2e 27 78 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a hes[2].'x'.$matches[1];.}.}.}...
acc40 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 ......private.function.getAbbrev
acc60 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 iationSuggestions($abbrevs).{.re
acc80 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 turn.sprintf('%s,.%s%s',.$abbrev
acca0 73 5b 30 5d 2c 20 24 61 62 62 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 s[0],.$abbrevs[1],.count($abbrev
accc0 73 29 20 3e 20 32 20 3f 20 73 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c s).>.2.?.sprintf('.and.%d.more',
acce0 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a .count($abbrevs).-.2).:.'');.}..
acd00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 ..........public.function.extrac
acd20 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 tNamespace($name,.$limit.=.null)
acd40 0a 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b .{.$parts.=.explode(':',.$name);
acd60 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c .array_pop($parts);..return.impl
acd80 6f 64 65 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 ode(':',.null.===.$limit.?.$part
acda0 73 20 3a 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 s.:.array_slice($parts,.0,.$limi
acdc0 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e t));.}..........private.function
acde0 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 43 6f 6d 6d 61 6e 64 73 28 24 6e 61 6d 65 2c 20 .findAlternativeCommands($name,.
ace00 24 61 62 62 72 65 76 73 29 0a 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e $abbrevs).{.$callback.=.function
ace20 28 24 69 74 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 74 65 6d 2d 3e 67 65 74 4e 61 6d 65 28 ($item).{.return.$item->getName(
ace40 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 );.};..return.$this->findAlterna
ace60 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 2c 20 24 61 tives($name,.$this->commands,.$a
ace80 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 bbrevs,.$callback);.}..........p
acea0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e rivate.function.findAlternativeN
acec0 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 amespace($name,.$abbrevs).{.retu
acee0 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 rn.$this->findAlternatives($name
acf00 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 2c 20 24 61 62 62 72 65 ,.$this->getNamespaces(),.$abbre
acf20 76 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 vs);.}.............private.funct
acf40 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c ion.findAlternatives($name,.$col
acf60 6c 65 63 74 69 6f 6e 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e lection,.$abbrevs,.$callback.=.n
acf80 75 6c 6c 29 0a 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ull).{.$alternatives.=.array();.
acfa0 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 .foreach.($collection.as.$item).
acfc0 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 69 74 65 {.if.(null.!==.$callback).{.$ite
acfe0 6d 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 69 m.=.call_user_func($callback,.$i
ad000 74 65 6d 29 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d tem);.}..$lev.=.levenshtein($nam
ad020 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e e,.$item);.if.($lev.<=.strlen($n
ad040 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 ame)./.3.||.false.!==.strpos($it
ad060 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 em,.$name)).{.$alternatives[$ite
ad080 6d 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 61 6c 74 65 72 6e 61 74 69 76 m].=.$lev;.}.}..if.(!$alternativ
ad0a0 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 62 62 72 65 76 73 20 61 73 20 24 6b 65 79 20 es).{.foreach.($abbrevs.as.$key.
ad0c0 3d 3e 20 24 76 61 6c 75 65 73 29 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e =>.$values).{.$lev.=.levenshtein
ad0e0 28 24 6e 61 6d 65 2c 20 24 6b 65 79 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 ($name,.$key);.if.($lev.<=.strle
ad100 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 n($name)./.3.||.false.!==.strpos
ad120 28 24 6b 65 79 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 ($key,.$name)).{.foreach.($value
ad140 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 76 61 s.as.$value).{.$alternatives[$va
ad160 6c 75 65 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 61 73 6f 72 74 28 24 61 6c 74 lue].=.$lev;.}.}.}.}..asort($alt
ad180 65 72 6e 61 74 69 76 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ernatives);..return.array_keys($
ad1a0 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a alternatives);.}.}.<?php........
ad1c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ...namespace.Symfony\Component\C
ad1e0 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 onsole\Input;.........class.Inpu
ad200 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 3d 20 31 3b 0a tArgument.{.const.REQUIRED.=.1;.
ad220 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 53 5f 41 52 52 const.OPTIONAL.=.2;.const.IS_ARR
ad240 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 AY.=.4;..private.$name;.private.
ad260 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 $mode;.private.$default;.private
ad280 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$description;..............publ
ad2a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 ic.function.__construct($name,.$
ad2c0 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 mode.=.null,.$description.=.'',.
ad2e0 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 $default.=.null).{.if.(null.===.
ad300 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 4f 4e 41 4c 3b $mode).{.$mode.=.self::OPTIONAL;
ad320 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f .}.elseif.(!is_int($mode).||.$mo
ad340 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 de.>.7.||.$mode.<.1).{.throw.new
ad360 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
ad380 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 tf('Argument.mode."%s".is.not.va
ad3a0 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d lid.',.$mode));.}..$this->name.=
ad3c0 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 .$name;.$this->mode.=.$mode;.$th
ad3e0 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a is->description.=.$description;.
ad400 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a .$this->setDefault($default);.}.
ad420 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a ......public.function.getName().
ad440 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 {.return.$this->name;.}.......pu
ad460 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 blic.function.isRequired().{.ret
ad480 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 52 45 urn.self::REQUIRED.===.(self::RE
ad4a0 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 QUIRED.&.$this->mode);.}.......p
ad4c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.isArray().{.retur
ad4e0 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 49 53 5f 41 n.self::IS_ARRAY.===.(self::IS_A
ad500 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 RRAY.&.$this->mode);.}.........p
ad520 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 ublic.function.setDefault($defau
ad540 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 lt.=.null).{.if.(self::REQUIRED.
ad560 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 ===.$this->mode.&&.null.!==.$def
ad580 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f ault).{.throw.new.\LogicExceptio
ad5a0 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 65 78 n('Cannot.set.a.default.value.ex
ad5c0 63 65 70 74 20 66 6f 72 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c cept.for.InputArgument::OPTIONAL
ad5e0 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 .mode.');.}..if.($this->isArray(
ad600 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 )).{.if.(null.===.$default).{.$d
ad620 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f efault.=.array();.}.elseif.(!is_
ad640 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f array($default)).{.throw.new.\Lo
ad660 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f gicException('A.default.value.fo
ad680 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 r.an.array.argument.must.be.an.a
ad6a0 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 rray.');.}.}..$this->default.=.$
ad6c0 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e default;.}.......public.function
ad6e0 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 .getDefault().{.return.$this->de
ad700 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 fault;.}.......public.function.g
ad720 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etDescription().{.return.$this->
ad740 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a description;.}.}.<?php..........
ad760 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
ad780 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 sole\Input;.............abstract
ad7a0 20 63 6c 61 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e 74 .class.Input.implements.InputInt
ad7c0 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a erface.{.protected.$definition;.
ad7e0 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 protected.$options;.protected.$a
ad800 72 67 75 6d 65 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 rguments;.protected.$interactive
ad820 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f .=.true;.......public.function._
ad840 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 _construct(InputDefinition.$defi
ad860 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 nition.=.null).{.if.(null.===.$d
ad880 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 efinition).{.$this->arguments.=.
ad8a0 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 array();.$this->options.=.array(
ad8c0 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 );.$this->definition.=.new.Input
ad8e0 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 69 Definition();.}.else.{.$this->bi
ad900 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 nd($definition);.$this->validate
ad920 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 ();.}.}.......public.function.bi
ad940 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a nd(InputDefinition.$definition).
ad960 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 {.$this->arguments.=.array();.$t
ad980 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 64 his->options.=.array();.$this->d
ad9a0 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d efinition.=.$definition;..$this-
ad9c0 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 >parse();.}.....abstract.protect
ad9e0 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ed.function.parse();.......publi
ada00 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 69 66 20 28 63 6f 75 6e c.function.validate().{.if.(coun
ada20 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c 20 24 74 68 69 73 2d 3e 64 65 66 t($this->arguments).<.$this->def
ada40 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e inition->getArgumentRequiredCoun
ada60 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 t()).{.throw.new.\RuntimeExcepti
ada80 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d on('Not.enough.arguments.');.}.}
adaa0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 .......public.function.isInterac
adac0 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 tive().{.return.$this->interacti
adae0 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 ve;.}.......public.function.setI
adb00 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 0a 7b 0a 24 74 68 69 73 nteractive($interactive).{.$this
adb20 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 6e 74 65 72 ->interactive.=.(Boolean).$inter
adb40 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 active;.}.......public.function.
adb60 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 getArguments().{.return.array_me
adb80 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 rge($this->definition->getArgume
adba0 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b ntDefaults(),.$this->arguments);
adbc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .}...........public.function.get
adbe0 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 Argument($name).{.if.(!$this->de
adc00 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a finition->hasArgument($name)).{.
adc20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
adc40 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 ion(sprintf('The."%s".argument.d
adc60 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 oes.not.exist.',.$name));.}..ret
adc80 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 urn.isset($this->arguments[$name
adca0 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 ]).?.$this->arguments[$name].:.$
adcc0 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e this->definition->getArgument($n
adce0 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ame)->getDefault();.}..........p
add00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 ublic.function.setArgument($name
add20 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 ,.$value).{.if.(!$this->definiti
add40 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 on->hasArgument($name)).{.throw.
add60 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
add80 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f rintf('The."%s".argument.does.no
adda0 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 t.exist.',.$name));.}..$this->ar
addc0 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a guments[$name].=.$value;.}......
adde0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 ...public.function.hasArgument($
ade00 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e name).{.return.$this->definition
ade20 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 ->hasArgument($name);.}.......pu
ade40 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 blic.function.getOptions().{.ret
ade60 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f urn.array_merge($this->definitio
ade80 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 6f n->getOptionDefaults(),.$this->o
adea0 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ptions);.}...........public.func
adec0 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 tion.getOption($name).{.if.(!$th
adee0 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 is->definition->hasOption($name)
adf00 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
adf20 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e ception(sprintf('The."%s".option
adf40 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 .does.not.exist.',.$name));.}..r
adf60 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 eturn.isset($this->options[$name
adf80 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 ]).?.$this->options[$name].:.$th
adfa0 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 is->definition->getOption($name)
adfc0 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ->getDefault();.}..........publi
adfe0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c c.function.setOption($name,.$val
ae000 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 ue).{.if.(!$this->definition->ha
ae020 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 sOption($name)).{.throw.new.\Inv
ae040 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 alidArgumentException(sprintf('T
ae060 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c he."%s".option.does.not.exist.',
ae080 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d .$name));.}..$this->options[$nam
ae0a0 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 e].=.$value;.}.........public.fu
ae0c0 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e nction.hasOption($name).{.return
ae0e0 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e .$this->definition->hasOption($n
ae100 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ame);.}.........public.function.
ae120 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 escapeToken($token).{.return.pre
ae140 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2d 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 20 3f 20 g_match('{^[\w-]+$}',.$token).?.
ae160 24 74 6f 6b 65 6e 20 3a 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 6f 6b 65 6e 29 3b $token.:.escapeshellarg($token);
ae180 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
ae1a0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a ymfony\Component\Console\Input;.
ae1c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 78 ............class.StringInput.ex
ae1e0 74 65 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 tends.ArgvInput.{.const.REGEX_ST
ae200 52 49 4e 47 20 3d 20 27 28 5b 5e 5c 73 5d 2b 3f 29 28 3f 3a 5c 73 7c 28 3f 3c 21 5c 5c 5c 5c 29 RING.=.'([^\s]+?)(?:\s|(?<!\\\\)
ae220 22 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 "|(?<!\\\\)\'|$)';.const.REGEX_Q
ae240 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f UOTED_STRING.=.'(?:"([^"\\\\]*(?
ae260 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c 5d :\\\\.[^"\\\\]*)*)"|\'([^\'\\\\]
ae280 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a *(?:\\\\.[^\'\\\\]*)*)\')';.....
ae2a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
ae2c0 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 ct($input,.InputDefinition.$defi
ae2e0 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 nition.=.null).{.parent::__const
ae300 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 ruct(array(),.null);..$this->set
ae320 54 6f 6b 65 6e 73 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b Tokens($this->tokenize($input));
ae340 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 ..if.(null.!==.$definition).{.$t
ae360 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a his->bind($definition);.}.}.....
ae380 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 6b 65 6e 69 7a 65 28 ......private.function.tokenize(
ae3a0 24 69 6e 70 75 74 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 $input).{.$tokens.=.array();.$le
ae3c0 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 69 6e 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 3d ngth.=.strlen($input);.$cursor.=
ae3e0 20 30 3b 0a 77 68 69 6c 65 20 28 24 63 75 72 73 6f 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a .0;.while.($cursor.<.$length).{.
ae400 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 2c if.(preg_match('/\s+/A',.$input,
ae420 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 6c 73 .$match,.null,.$cursor)).{.}.els
ae440 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5b 5e 3d 22 5c 27 5c 73 5d 2b 3f 29 28 eif.(preg_match('/([^="\'\s]+?)(
ae460 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e =?)('.self::REGEX_QUOTED_STRING.
ae480 27 2b 29 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 '+)/A',.$input,.$match,.null,.$c
ae4a0 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e ursor)).{.$tokens[].=.$match[1].
ae4c0 24 6d 61 74 63 68 5b 32 5d 2e 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 74 72 5f 72 65 70 6c $match[2].stripcslashes(str_repl
ae4e0 61 63 65 28 61 72 72 61 79 28 27 22 5c 27 27 2c 20 27 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c 20 ace(array('"\'',.'\'"',.'\'\'',.
ae500 27 22 22 27 29 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c 20 '""'),.'',.substr($match[3],.1,.
ae520 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 33 5d 29 20 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 65 strlen($match[3]).-.2)));.}.else
ae540 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 if.(preg_match('/'.self::REGEX_Q
ae560 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 UOTED_STRING.'/A',.$input,.$matc
ae580 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d h,.null,.$cursor)).{.$tokens[].=
ae5a0 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c .stripcslashes(substr($match[0],
ae5c0 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 65 .1,.strlen($match[0]).-.2));.}.e
ae5e0 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 lseif.(preg_match('/'.self::REGE
ae600 58 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e X_STRING.'/A',.$input,.$match,.n
ae620 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 ull,.$cursor)).{.$tokens[].=.str
ae640 69 70 63 73 6c 61 73 68 65 73 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ipcslashes($match[1]);.}.else.{.
ae660 0a 20 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ....throw.new.\InvalidArgumentEx
ae680 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 ception(sprintf('Unable.to.parse
ae6a0 20 69 6e 70 75 74 20 6e 65 61 72 20 22 2e 2e 2e 20 25 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 .input.near."....%s...."',.subst
ae6c0 72 28 24 69 6e 70 75 74 2c 20 24 63 75 72 73 6f 72 2c 20 31 30 29 29 29 3b 0a 0a 20 7d 0a 0a 24 r($input,.$cursor,.10)));...}..$
ae6e0 63 75 72 73 6f 72 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a cursor.+=.strlen($match[0]);.}..
ae700 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a return.$tokens;.}.}.<?php.......
ae720 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
ae740 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 Console\Input;.........class.Inp
ae760 75 74 4f 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b utOption.{.const.VALUE_NONE.=.1;
ae780 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 .const.VALUE_REQUIRED.=.2;.const
ae7a0 20 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 .VALUE_OPTIONAL.=.4;.const.VALUE
ae7c0 5f 49 53 5f 41 52 52 41 59 20 3d 20 38 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 _IS_ARRAY.=.8;..private.$name;.p
ae7e0 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b rivate.$shortcut;.private.$mode;
ae800 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 .private.$default;.private.$desc
ae820 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ription;...............public.fu
ae840 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 nction.__construct($name,.$short
ae860 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 cut.=.null,.$mode.=.null,.$descr
ae880 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a iption.=.'',.$default.=.null).{.
ae8a0 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b if.(0.===.strpos($name,.'--')).{
ae8c0 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 .$name.=.substr($name,.2);.}..if
ae8e0 20 28 65 6d 70 74 79 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 .(empty($name)).{.throw.new.\Inv
ae900 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e alidArgumentException('An.option
ae920 20 6e 61 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 .name.cannot.be.empty.');.}..if.
ae940 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d (empty($shortcut)).{.$shortcut.=
ae960 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 .null;.}..if.(null.!==.$shortcut
ae980 29 20 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 ).{.if.(is_array($shortcut)).{.$
ae9a0 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 shortcut.=.implode('|',.$shortcu
ae9c0 74 29 3b 0a 7d 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b t);.}.$shortcuts.=.preg_split('{
ae9e0 28 5c 7c 29 2d 3f 7d 27 2c 20 6c 74 72 69 6d 28 24 73 68 6f 72 74 63 75 74 2c 20 27 2d 27 29 29 (\|)-?}',.ltrim($shortcut,.'-'))
aea00 3b 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 73 68 6f ;.$shortcuts.=.array_filter($sho
aea20 72 74 63 75 74 73 29 3b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 rtcuts);.$shortcut.=.implode('|'
aea40 2c 20 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 ,.$shortcuts);..if.(empty($short
aea60 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 cut)).{.throw.new.\InvalidArgume
aea80 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 20 ntException('An.option.shortcut.
aeaa0 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c cannot.be.empty.');.}.}..if.(nul
aeac0 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 56 41 4c l.===.$mode).{.$mode.=.self::VAL
aeae0 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 UE_NONE;.}.elseif.(!is_int($mode
aeb00 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a ).||.$mode.>.15.||.$mode.<.1).{.
aeb20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
aeb40 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 20 22 25 73 22 20 69 73 ion(sprintf('Option.mode."%s".is
aeb60 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d .not.valid.',.$mode));.}..$this-
aeb80 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 20 3d >name.=.$name;.$this->shortcut.=
aeba0 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b .$shortcut;.$this->mode.=.$mode;
aebc0 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 .$this->description.=.$descripti
aebe0 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 20 26 26 20 21 24 74 on;..if.($this->isArray().&&.!$t
aec00 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 his->acceptValue()).{.throw.new.
aec20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6d 70 6f 73 \InvalidArgumentException('Impos
aec40 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 6f 64 65 20 56 41 4c sible.to.have.an.option.mode.VAL
aec60 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e UE_IS_ARRAY.if.the.option.does.n
aec80 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e ot.accept.a.value.');.}..$this->
aeca0 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 setDefault($default);.}.......pu
aecc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 74 28 29 0a 7b 0a 72 65 blic.function.getShortcut().{.re
aece0 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 turn.$this->shortcut;.}.......pu
aed00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getName().{.return
aed20 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->name;.}.......public.fun
aed40 63 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.acceptValue().{.return.$th
aed60 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e is->isValueRequired().||.$this->
aed80 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 isValueOptional();.}.......publi
aeda0 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 c.function.isValueRequired().{.r
aedc0 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 eturn.self::VALUE_REQUIRED.===.(
aede0 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f self::VALUE_REQUIRED.&.$this->mo
aee00 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 de);.}.......public.function.isV
aee20 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 alueOptional().{.return.self::VA
aee40 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 LUE_OPTIONAL.===.(self::VALUE_OP
aee60 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 TIONAL.&.$this->mode);.}.......p
aee80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.isArray().{.retur
aeea0 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 n.self::VALUE_IS_ARRAY.===.(self
aeec0 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b ::VALUE_IS_ARRAY.&.$this->mode);
aeee0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 .}.........public.function.setDe
aef00 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c fault($default.=.null).{.if.(sel
aef20 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e f::VALUE_NONE.===.(self::VALUE_N
aef40 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 ONE.&.$this->mode).&&.null.!==.$
aef60 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 default).{.throw.new.\LogicExcep
aef80 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 tion('Cannot.set.a.default.value
aefa0 20 77 68 65 6e 20 75 73 69 6e 67 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e .when.using.InputOption::VALUE_N
aefc0 4f 4e 45 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 ONE.mode.');.}..if.($this->isArr
aefe0 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b ay()).{.if.(null.===.$default).{
af000 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .$default.=.array();.}.elseif.(!
af020 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 is_array($default)).{.throw.new.
af040 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 \LogicException('A.default.value
af060 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 70 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 6e 20 .for.an.array.option.must.be.an.
af080 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 array.');.}.}..$this->default.=.
af0a0 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 24 64 65 66 61 75 6c 74 20 $this->acceptValue().?.$default.
af0c0 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e :.false;.}.......public.function
af0e0 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 .getDefault().{.return.$this->de
af100 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 fault;.}.......public.function.g
af120 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etDescription().{.return.$this->
af140 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e description;.}........public.fun
af160 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e ction.equals(InputOption.$option
af180 29 0a 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d ).{.return.$option->getName().==
af1a0 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 =.$this->getName().&&.$option->g
af1c0 65 74 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 6f 72 74 etShortcut().===.$this->getShort
af1e0 63 75 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3d cut().&&.$option->getDefault().=
af200 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 0a 26 26 20 24 6f 70 74 69 6f ==.$this->getDefault().&&.$optio
af220 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 n->isArray().===.$this->isArray(
af240 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 ).&&.$option->isValueRequired().
af260 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 26 26 20 ===.$this->isValueRequired().&&.
af280 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3d 3d 3d 20 24 $option->isValueOptional().===.$
af2a0 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 3b 0a 7d 0a 7d 0a 3c 3f this->isValueOptional().;.}.}.<?
af2c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
af2e0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a Component\Console\Input;........
af300 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 67 76 49 .....................class.ArgvI
af320 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 6f nput.extends.Input.{.private.$to
af340 6b 65 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kens;.private.$parsed;..........
af360 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 public.function.__construct(arra
af380 79 20 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 y.$argv.=.null,.InputDefinition.
af3a0 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d $definition.=.null).{.if.(null.=
af3c0 3d 3d 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 ==.$argv).{.$argv.=.$_SERVER['ar
af3e0 67 76 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 76 29 3b 0a 0a gv'];.}....array_shift($argv);..
af400 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 61 72 67 76 3b 0a 0a 70 61 72 65 6e 74 3a 3a $this->tokens.=.$argv;..parent::
af420 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f __construct($definition);.}..pro
af440 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 6f 6b 65 6e 73 28 61 72 72 61 79 20 tected.function.setTokens(array.
af460 24 74 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 6f 6b 65 $tokens).{.$this->tokens.=.$toke
af480 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 ns;.}.....protected.function.par
af4a0 73 65 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 se().{.$parseOptions.=.true;.$th
af4c0 69 73 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c is->parsed.=.$this->tokens;.whil
af4e0 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 e.(null.!==.$token.=.array_shift
af500 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 69 66 20 28 24 70 61 72 73 65 4f 70 74 ($this->parsed)).{.if.($parseOpt
af520 69 6f 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 ions.&&.''.==.$token).{.$this->p
af540 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 arseArgument($token);.}.elseif.(
af560 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 $parseOptions.&&.'--'.==.$token)
af580 20 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 .{.$parseOptions.=.false;.}.else
af5a0 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f if.($parseOptions.&&.0.===.strpo
af5c0 73 28 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c s($token,.'--')).{.$this->parseL
af5e0 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 ongOption($token);.}.elseif.($pa
af600 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 rseOptions.&&.'-'.===.$token[0])
af620 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 .{.$this->parseShortOption($toke
af640 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e n);.}.else.{.$this->parseArgumen
af660 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 t($token);.}.}.}.......private.f
af680 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 unction.parseShortOption($token)
af6a0 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 .{.$name.=.substr($token,.1);..i
af6c0 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 f.(strlen($name).>.1).{.if.($thi
af6e0 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 s->definition->hasShortcut($name
af700 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 [0]).&&.$this->definition->getOp
af720 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 tionForShortcut($name[0])->accep
af740 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 tValue()).{...$this->addShortOpt
af760 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b ion($name[0],.substr($name,.1));
af780 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f .}.else.{.$this->parseShortOptio
af7a0 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 nSet($name);.}.}.else.{.$this->a
af7c0 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a ddShortOption($name,.null);.}.}.
af7e0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 ........private.function.parseSh
af800 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 ortOptionSet($name).{.$len.=.str
af820 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c len($name);.for.($i.=.0;.$i.<.$l
af840 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 en;.$i++).{.if.(!$this->definiti
af860 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b 0a 74 68 on->hasShortcut($name[$i])).{.th
af880 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 row.new.\RuntimeException(sprint
af8a0 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 f('The."-%s".option.does.not.exi
af8c0 73 74 2e 27 2c 20 24 6e 61 6d 65 5b 24 69 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 st.',.$name[$i]));.}..$option.=.
af8e0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 $this->definition->getOptionForS
af900 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d hortcut($name[$i]);.if.($option-
af920 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 >acceptValue()).{.$this->addLong
af940 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d Option($option->getName(),.$i.==
af960 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c 6c 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 =.$len.-.1.?.null.:.substr($name
af980 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ,.$i.+.1));..break;.}.else.{.$th
af9a0 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 is->addLongOption($option->getNa
af9c0 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 me(),.null);.}.}.}.......private
af9e0 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e .function.parseLongOption($token
afa00 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a ).{.$name.=.substr($token,.2);..
afa20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d if.(false.!==.$pos.=.strpos($nam
afa40 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 e,.'=')).{.$this->addLongOption(
afa60 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 substr($name,.0,.$pos),.substr($
afa80 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 name,.$pos.+.1));.}.else.{.$this
afaa0 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a ->addLongOption($name,.null);.}.
afac0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 }.........private.function.parse
afae0 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 Argument($token).{.$c.=.count($t
afb00 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 his->arguments);....if.($this->d
afb20 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 efinition->hasArgument($c)).{.$a
afb40 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d rg.=.$this->definition->getArgum
afb60 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e ent($c);.$this->arguments[$arg->
afb80 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 2d 3e 69 73 41 72 72 61 79 28 29 3f 20 61 72 getName()].=.$arg->isArray()?.ar
afba0 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 ray($token).:.$token;....}.elsei
afbc0 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e f.($this->definition->hasArgumen
afbe0 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e t($c.-.1).&&.$this->definition->
afc00 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 getArgument($c.-.1)->isArray()).
afc20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 {.$arg.=.$this->definition->getA
afc40 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 rgument($c.-.1);.$this->argument
afc60 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a s[$arg->getName()][].=.$token;..
afc80 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ..}.else.{.throw.new.\RuntimeExc
afca0 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d eption('Too.many.arguments.');.}
afcc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 .}..........private.function.add
afce0 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b ShortOption($shortcut,.$value).{
afd00 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 .if.(!$this->definition->hasShor
afd20 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 tcut($shortcut)).{.throw.new.\Ru
afd40 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 ntimeException(sprintf('The."-%s
afd60 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 ".option.does.not.exist.',.$shor
afd80 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 tcut));.}..$this->addLongOption(
afda0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 $this->definition->getOptionForS
afdc0 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 hortcut($shortcut)->getName(),.$
afde0 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 value);.}..........private.funct
afe00 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 ion.addLongOption($name,.$value)
afe20 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 .{.if.(!$this->definition->hasOp
afe40 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d tion($name)).{.throw.new.\Runtim
afe60 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f eException(sprintf('The."--%s".o
afe80 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b ption.does.not.exist.',.$name));
afea0 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d .}..$option.=.$this->definition-
afec0 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 >getOption($name);....if.(false.
afee0 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a ===.$value).{.$value.=.null;.}..
aff00 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d if.(null.!==.$value.&&.!$option-
aff20 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e >acceptValue()).{.throw.new.\Run
aff40 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 timeException(sprintf('The."--%s
aff60 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 ".option.does.not.accept.a.value
aff80 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c .',.$name,.$value));.}..if.(null
affa0 20 3d 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 .===.$value.&&.$option->acceptVa
affc0 6c 75 65 28 29 20 26 26 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b lue().&&.count($this->parsed)).{
affe0 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e .....$next.=.array_shift($this->
b0000 70 61 72 73 65 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6e 65 78 74 5b 30 5d 29 20 26 26 20 parsed);.if.(isset($next[0]).&&.
b0020 27 2d 27 20 21 3d 3d 20 24 6e 65 78 74 5b 30 5d 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 '-'.!==.$next[0]).{.$value.=.$ne
b0040 78 74 3b 0a 7d 20 65 6c 73 65 69 66 20 28 65 6d 70 74 79 28 24 6e 65 78 74 29 29 20 7b 0a 24 76 xt;.}.elseif.(empty($next)).{.$v
b0060 61 6c 75 65 20 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 alue.=.'';.}.else.{.array_unshif
b0080 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 2c 20 24 6e 65 78 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 t($this->parsed,.$next);.}.}..if
b00a0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e .(null.===.$value).{.if.($option
b00c0 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ->isValueRequired()).{.throw.new
b00e0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 .\RuntimeException(sprintf('The.
b0100 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 "--%s".option.requires.a.value.'
b0120 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 ,.$name));.}..if.(!$option->isAr
b0140 72 61 79 28 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c ray()).{.$value.=.$option->isVal
b0160 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 ueOptional().?.$option->getDefau
b0180 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 lt().:.true;.}.}..if.($option->i
b01a0 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 sArray()).{.$this->options[$name
b01c0 5d 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 ][].=.$value;.}.else.{.$this->op
b01e0 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a tions[$name].=.$value;.}.}......
b0200 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e .public.function.getFirstArgumen
b0220 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 t().{.foreach.($this->tokens.as.
b0240 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 27 2d 27 20 3d 3d 3d 20 $token).{.if.($token.&&.'-'.===.
b0260 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e $token[0]).{.continue;.}..return
b0280 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$token;.}.}............public.f
b02a0 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 unction.hasParameterOption($valu
b02c0 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b es).{.$values.=.(array).$values;
b02e0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b ..foreach.($this->tokens.as.$tok
b0300 65 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 en).{.foreach.($values.as.$value
b0320 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 3d 3d 3d 20 24 76 61 6c 75 65 20 7c 7c 20 30 20 3d ).{.if.($token.===.$value.||.0.=
b0340 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b ==.strpos($token,.$value.'=')).{
b0360 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .return.true;.}.}.}..return.fals
b0380 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e e;.}.............public.function
b03a0 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 .getParameterOption($values,.$de
b03c0 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 fault.=.false).{.$values.=.(arra
b03e0 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 24 74 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 74 6f y).$values;..$tokens.=.$this->to
b0400 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 28 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 kens;.while.($token.=.array_shif
b0420 74 28 24 74 6f 6b 65 6e 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 t($tokens)).{.foreach.($values.a
b0440 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 3d 3d 3d 20 24 76 61 6c 75 s.$value).{.if.($token.===.$valu
b0460 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 e.||.0.===.strpos($token,.$value
b0480 2e 27 3d 27 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 .'=')).{.if.(false.!==.$pos.=.st
b04a0 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 rpos($token,.'=')).{.return.subs
b04c0 74 72 28 24 74 6f 6b 65 6e 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 tr($token,.$pos.+.1);.}..return.
b04e0 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 array_shift($tokens);.}.}.}..ret
b0500 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e urn.$default;.}.......public.fun
b0520 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 ction.__toString().{.$self.=.$th
b0540 69 73 3b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e is;.$tokens.=.array_map(function
b0560 20 28 24 74 6f 6b 65 6e 29 20 75 73 65 20 28 24 73 65 6c 66 29 20 7b 0a 69 66 20 28 70 72 65 67 .($token).use.($self).{.if.(preg
b0580 5f 6d 61 74 63 68 28 27 7b 5e 28 2d 5b 5e 3d 5d 2b 3d 29 28 2e 2b 29 7d 27 2c 20 24 74 6f 6b 65 _match('{^(-[^=]+=)(.+)}',.$toke
b05a0 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e n,.$match)).{.return.$match[1]..
b05c0 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a .$self->escapeToken($match[2]);.
b05e0 7d 0a 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 }..if.($token.&&.$token[0].!==.'
b0600 2d 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 -').{.return.$self->escapeToken(
b0620 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 2c 20 24 74 $token);.}..return.$token;.},.$t
b0640 68 69 73 2d 3e 74 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 his->tokens);..return.implode('.
b0660 27 2c 20 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ',.$tokens);.}.}.<?php..........
b0680 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
b06a0 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 sole\Input;.......interface.Inpu
b06c0 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tInterface.{......public.functio
b06e0 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n.getFirstArgument();...........
b0700 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 .public.function.hasParameterOpt
b0720 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion($values);.............public
b0740 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 .function.getParameterOption($va
b0760 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 lues,.$default.=.false);.......p
b0780 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 ublic.function.bind(InputDefinit
b07a0 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.$definition);.........public
b07c0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .function.validate();.......publ
b07e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a ic.function.getArguments();.....
b0800 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 ....public.function.getArgument(
b0820 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $name);..........public.function
b0840 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a .setArgument($name,.$value);....
b0860 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 .....public.function.hasArgument
b0880 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ($name);.......public.function.g
b08a0 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etOptions();.........public.func
b08c0 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tion.getOption($name);..........
b08e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c public.function.setOption($name,
b0900 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$value);.........public.functio
b0920 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.hasOption($name);.......public
b0940 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a .function.isInteractive();......
b0960 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 .public.function.setInteractive(
b0980 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $interactive);.}.<?php..........
b09a0 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
b09c0 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 sole\Input;.............class.Ar
b09e0 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 rayInput.extends.Input.{.private
b0a00 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$parameters;..........public.fu
b0a20 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 72 61 6d 65 nction.__construct(array.$parame
b0a40 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f ters,.InputDefinition.$definitio
b0a60 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 3d 20 n.=.null).{.$this->parameters.=.
b0a80 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 $parameters;..parent::__construc
b0aa0 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 t($definition);.}.......public.f
b0ac0 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 unction.getFirstArgument().{.for
b0ae0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 each.($this->parameters.as.$key.
b0b00 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 26 26 20 27 2d 27 20 3d 3d 3d =>.$value).{.if.($key.&&.'-'.===
b0b20 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 .$key[0]).{.continue;.}..return.
b0b40 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 $value;.}.}............public.fu
b0b60 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 nction.hasParameterOption($value
b0b80 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a s).{.$values.=.(array).$values;.
b0ba0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 .foreach.($this->parameters.as.$
b0bc0 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 24 76 k.=>.$v).{.if.(!is_int($k)).{.$v
b0be0 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 .=.$k;.}..if.(in_array($v,.$valu
b0c00 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 es)).{.return.true;.}.}..return.
b0c20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 false;.}.............public.func
b0c40 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c tion.getParameterOption($values,
b0c60 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 .$default.=.false).{.$values.=.(
b0c80 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d array).$values;..foreach.($this-
b0ca0 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 69 >parameters.as.$k.=>.$v).{.if.(i
b0cc0 73 5f 69 6e 74 28 24 6b 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 s_int($k).&&.in_array($v,.$value
b0ce0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 6e 5f s)).{.return.true;.}.elseif.(in_
b0d00 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 3b array($k,.$values)).{.return.$v;
b0d20 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .}.}..return.$default;.}.......p
b0d40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 70 ublic.function.__toString().{.$p
b0d60 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d arams.=.array();.foreach.($this-
b0d80 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 70 61 72 61 6d 20 3d 3e 20 24 76 61 6c 29 20 7b >parameters.as.$param.=>.$val).{
b0da0 0a 69 66 20 28 24 70 61 72 61 6d 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 70 61 72 61 6d 5b 30 5d .if.($param.&&.'-'.===.$param[0]
b0dc0 29 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d 20 24 70 61 72 61 6d 20 2e 20 28 27 27 20 21 3d 20 ).{.$params[].=.$param...(''.!=.
b0de0 24 76 61 6c 20 3f 20 27 3d 27 2e 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 $val.?.'='.$this->escapeToken($v
b0e00 61 6c 29 20 3a 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d 20 al).:.'');.}.else.{.$params[].=.
b0e20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c 29 3b 0a 7d 0a 7d 0a 0a 72 $this->escapeToken($val);.}.}..r
b0e40 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 70 61 72 61 6d 73 29 3b 0a 7d 0a 0a eturn.implode('.',.$params);.}..
b0e60 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a ...protected.function.parse().{.
b0e80 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b foreach.($this->parameters.as.$k
b0ea0 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 ey.=>.$value).{.if.(0.===.strpos
b0ec0 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 ($key,.'--')).{.$this->addLongOp
b0ee0 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d tion(substr($key,.2),.$value);.}
b0f00 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 24 74 68 69 .elseif.('-'.===.$key[0]).{.$thi
b0f20 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 31 s->addShortOption(substr($key,.1
b0f40 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 ),.$value);.}.else.{.$this->addA
b0f60 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a rgument($key,.$value);.}.}.}....
b0f80 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f ......private.function.addShortO
b0fa0 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 ption($shortcut,.$value).{.if.(!
b0fc0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 $this->definition->hasShortcut($
b0fe0 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 shortcut)).{.throw.new.\InvalidA
b1000 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d rgumentException(sprintf('The."-
b1020 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 %s".option.does.not.exist.',.$sh
b1040 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f ortcut));.}..$this->addLongOptio
b1060 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f n($this->definition->getOptionFo
b1080 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c rShortcut($shortcut)->getName(),
b10a0 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 .$value);.}...........private.fu
b10c0 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c nction.addLongOption($name,.$val
b10e0 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 ue).{.if.(!$this->definition->ha
b1100 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 sOption($name)).{.throw.new.\Inv
b1120 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 alidArgumentException(sprintf('T
b1140 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e he."--%s".option.does.not.exist.
b1160 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e ',.$name));.}..$option.=.$this->
b1180 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 69 definition->getOption($name);..i
b11a0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f f.(null.===.$value).{.if.($optio
b11c0 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 n->isValueRequired()).{.throw.ne
b11e0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
b1200 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 ntf('The."--%s".option.requires.
b1220 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 a.value.',.$name));.}..$value.=.
b1240 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 24 6f 70 $option->isValueOptional().?.$op
b1260 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 tion->getDefault().:.true;.}..$t
b1280 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a his->options[$name].=.$value;.}.
b12a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 .........private.function.addArg
b12c0 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 ument($name,.$value).{.if.(!$thi
b12e0 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 s->definition->hasArgument($name
b1300 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
b1320 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d xception(sprintf('The."%s".argum
b1340 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d ent.does.not.exist.',.$name));.}
b1360 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c ..$this->arguments[$name].=.$val
b1380 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ue;.}.}.<?php...........namespac
b13a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
b13c0 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c t;..use.Symfony\Component\Consol
b13e0 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 e\Descriptor\TextDescriptor;.use
b1400 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 .Symfony\Component\Console\Descr
b1420 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a iptor\XmlDescriptor;............
b1440 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 ....class.InputDefinition.{.priv
b1460 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 ate.$arguments;.private.$require
b1480 64 43 6f 75 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d dCount;.private.$hasAnArrayArgum
b14a0 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 ent.=.false;.private.$hasOptiona
b14c0 6c 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 l;.private.$options;.private.$sh
b14e0 6f 72 74 63 75 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ortcuts;.........public.function
b1500 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d .__construct(array.$definition.=
b1520 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e .array()).{.$this->setDefinition
b1540 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ($definition);.}.........public.
b1560 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 function.setDefinition(array.$de
b1580 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 finition).{.$arguments.=.array()
b15a0 3b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ;.$options.=.array();.foreach.($
b15c0 64 65 66 69 6e 69 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d definition.as.$item).{.if.($item
b15e0 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 .instanceof.InputOption).{.$opti
b1600 6f 6e 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e ons[].=.$item;.}.else.{.$argumen
b1620 74 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 ts[].=.$item;.}.}..$this->setArg
b1640 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 uments($arguments);.$this->setOp
b1660 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tions($options);.}.........publi
b1680 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e c.function.setArguments($argumen
b16a0 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 ts.=.array()).{.$this->arguments
b16c0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 .=.array();.$this->requiredCount
b16e0 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 .=.0;.$this->hasOptional.=.false
b1700 3b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 ;.$this->hasAnArrayArgument.=.fa
b1720 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 lse;.$this->addArguments($argume
b1740 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nts);.}.........public.function.
b1760 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 addArguments($arguments.=.array(
b1780 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a )).{.if.(null.!==.$arguments).{.
b17a0 66 6f 72 65 61 63 68 20 28 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 foreach.($arguments.as.$argument
b17c0 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 ).{.$this->addArgument($argument
b17e0 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 );.}.}.}...........public.functi
b1800 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 on.addArgument(InputArgument.$ar
b1820 67 75 6d 65 6e 74 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d gument).{.if.(isset($this->argum
b1840 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 ents[$argument->getName()])).{.t
b1860 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 hrow.new.\LogicException(sprintf
b1880 28 27 41 6e 20 61 72 67 75 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 ('An.argument.with.name."%s".alr
b18a0 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d eady.exists.',.$argument->getNam
b18c0 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 e()));.}..if.($this->hasAnArrayA
b18e0 72 67 75 6d 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 rgument).{.throw.new.\LogicExcep
b1900 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 tion('Cannot.add.an.argument.aft
b1920 65 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 er.an.array.argument.');.}..if.(
b1940 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 $argument->isRequired().&&.$this
b1960 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 ->hasOptional).{.throw.new.\Logi
b1980 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 cException('Cannot.add.a.require
b19a0 64 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 d.argument.after.an.optional.one
b19c0 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 .');.}..if.($argument->isArray()
b19e0 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 ).{.$this->hasAnArrayArgument.=.
b1a00 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 true;.}..if.($argument->isRequir
b1a20 65 64 28 29 29 20 7b 0a 2b 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a ed()).{.++$this->requiredCount;.
b1a40 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 }.else.{.$this->hasOptional.=.tr
b1a60 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e ue;.}..$this->arguments[$argumen
b1a80 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a t->getName()].=.$argument;.}....
b1aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 .........public.function.getArgu
b1ac0 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 ment($name).{.if.(!$this->hasArg
b1ae0 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ument($name)).{.throw.new.\Inval
b1b00 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 idArgumentException(sprintf('The
b1b20 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c ."%s".argument.does.not.exist.',
b1b40 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 .$name));.}..$arguments.=.is_int
b1b60 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 ($name).?.array_values($this->ar
b1b80 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 guments).:.$this->arguments;..re
b1ba0 74 75 72 6e 20 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a turn.$arguments[$name];.}.......
b1bc0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 ....public.function.hasArgument(
b1be0 24 6e 61 6d 65 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 $name).{.$arguments.=.is_int($na
b1c00 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 me).?.array_values($this->argume
b1c20 6e 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e nts).:.$this->arguments;..return
b1c40 20 69 73 73 65 74 28 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a .isset($arguments[$name]);.}....
b1c60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 .....public.function.getArgument
b1c80 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d s().{.return.$this->arguments;.}
b1ca0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 .......public.function.getArgume
b1cc0 6e 74 43 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 ntCount().{.return.$this->hasAnA
b1ce0 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 rrayArgument.?.PHP_INT_MAX.:.cou
b1d00 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 nt($this->arguments);.}.......pu
b1d20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 blic.function.getArgumentRequire
b1d40 64 43 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 dCount().{.return.$this->require
b1d60 64 43 6f 75 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 dCount;.}.......public.function.
b1d80 67 65 74 41 72 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 getArgumentDefaults().{.$values.
b1da0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d =.array();.foreach.($this->argum
b1dc0 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 ents.as.$argument).{.$values[$ar
b1de0 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e gument->getName()].=.$argument->
b1e00 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b getDefault();.}..return.$values;
b1e20 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 .}.........public.function.setOp
b1e40 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 tions($options.=.array()).{.$thi
b1e60 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f s->options.=.array();.$this->sho
b1e80 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 rtcuts.=.array();.$this->addOpti
b1ea0 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ons($options);.}.........public.
b1ec0 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 function.addOptions($options.=.a
b1ee0 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 rray()).{.foreach.($options.as.$
b1f00 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 option).{.$this->addOption($opti
b1f20 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 on);.}.}...........public.functi
b1f40 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e on.addOption(InputOption.$option
b1f60 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 ).{.if.(isset($this->options[$op
b1f80 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 tion->getName()]).&&.!$option->e
b1fa0 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 quals($this->options[$option->ge
b1fc0 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 tName()])).{.throw.new.\LogicExc
b1fe0 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 eption(sprintf('An.option.named.
b2000 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e "%s".already.exists.',.$option->
b2020 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 getName()));.}..if.($option->get
b2040 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 Shortcut()).{.foreach.(explode('
b2060 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 |',.$option->getShortcut()).as.$
b2080 73 68 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f shortcut).{.if.(isset($this->sho
b20a0 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e rtcuts[$shortcut]).&&.!$option->
b20c0 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 68 6f equals($this->options[$this->sho
b20e0 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 rtcuts[$shortcut]])).{.throw.new
b2100 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 .\LogicException(sprintf('An.opt
b2120 69 6f 6e 20 77 69 74 68 20 73 68 6f 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 ion.with.shortcut."%s".already.e
b2140 78 69 73 74 73 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 xists.',.$shortcut));.}.}.}..$th
b2160 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 is->options[$option->getName()].
b2180 3d 20 24 6f 70 74 69 6f 6e 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 =.$option;.if.($option->getShort
b21a0 63 75 74 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 cut()).{.foreach.(explode('|',.$
b21c0 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 option->getShortcut()).as.$short
b21e0 63 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 cut).{.$this->shortcuts[$shortcu
b2200 74 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a t].=.$option->getName();.}.}.}..
b2220 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 ...........public.function.getOp
b2240 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 tion($name).{.if.(!$this->hasOpt
b2260 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ion($name)).{.throw.new.\Invalid
b2280 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 ArgumentException(sprintf('The."
b22a0 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 --%s".option.does.not.exist.',.$
b22c0 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 name));.}..return.$this->options
b22e0 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$name];.}...........public.func
b2300 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 tion.hasOption($name).{.return.i
b2320 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a sset($this->options[$name]);.}..
b2340 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e .......public.function.getOption
b2360 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a s().{.return.$this->options;.}..
b2380 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 .......public.function.hasShortc
b23a0 75 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e ut($name).{.return.isset($this->
b23c0 73 68 6f 72 74 63 75 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 shortcuts[$name]);.}.........pub
b23e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 lic.function.getOptionForShortcu
b2400 74 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 t($shortcut).{.return.$this->get
b2420 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 Option($this->shortcutToName($sh
b2440 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ortcut));.}.......public.functio
b2460 6e 20 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 n.getOptionDefaults().{.$values.
b2480 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f =.array();.foreach.($this->optio
b24a0 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e ns.as.$option).{.$values[$option
b24c0 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 ->getName()].=.$option->getDefau
b24e0 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a lt();.}..return.$values;.}......
b2500 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f .....private.function.shortcutTo
b2520 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 Name($shortcut).{.if.(!isset($th
b2540 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 is->shortcuts[$shortcut])).{.thr
b2560 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
b2580 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 (sprintf('The."-%s".option.does.
b25a0 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 not.exist.',.$shortcut));.}..ret
b25c0 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b urn.$this->shortcuts[$shortcut];
b25e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f .}.......public.function.getSyno
b2600 70 73 69 73 28 29 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f psis().{.$elements.=.array();.fo
b2620 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f reach.($this->getOptions().as.$o
b2640 70 74 69 6f 6e 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 ption).{.$shortcut.=.$option->ge
b2660 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f tShortcut().?.sprintf('-%s|',.$o
b2680 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 ption->getShortcut()).:.'';.$ele
b26a0 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e ments[].=.sprintf('['.($option->
b26c0 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e isValueRequired().?.'%s--%s="...
b26e0 22 27 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 "'.:.($option->isValueOptional()
b2700 20 3f 20 27 25 73 2d 2d 25 73 5b 3d 22 2e 2e 2e 22 5d 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 .?.'%s--%s[="..."]'.:.'%s--%s'))
b2720 2e 27 5d 27 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d .']',.$shortcut,.$option->getNam
b2740 65 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 e());.}..foreach.($this->getArgu
b2760 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 ments().as.$argument).{.$element
b2780 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 s[].=.sprintf($argument->isRequi
b27a0 72 65 64 28 29 20 3f 20 27 25 73 27 20 3a 20 27 5b 25 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 red().?.'%s'.:.'[%s]',.$argument
b27c0 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 ->getName().($argument->isArray(
b27e0 29 20 3f 20 27 31 27 20 3a 20 27 27 29 29 3b 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e ).?.'1'.:.''));..if.($argument->
b2800 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e isArray()).{.$elements[].=.sprin
b2820 74 66 28 27 2e 2e 2e 20 5b 25 73 4e 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 tf('....[%sN]',.$argument->getNa
b2840 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 me());.}.}..return.implode('.',.
b2860 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $elements);.}.........public.fun
b2880 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e ction.asText().{.$descriptor.=.n
b28a0 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 ew.TextDescriptor();..return.$de
b28c0 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a scriptor->describe($this);.}....
b28e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 .......public.function.asXml($as
b2900 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 Dom.=.false).{.$descriptor.=.new
b2920 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 .XmlDescriptor();..return.$descr
b2940 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 61 73 iptor->describe($this,.array('as
b2960 5f 64 6f 6d 27 20 3d 3e 20 24 61 73 44 6f 6d 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a _dom'.=>.$asDom));.}.}.<?php....
b2980 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
b29a0 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 nt\Console;..use.Symfony\Compone
b29c0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 nt\Console\Application;.use.Symf
b29e0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 ony\Component\Console\Input\Stri
b2a00 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ngInput;.use.Symfony\Component\C
b2a20 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 onsole\Output\ConsoleOutput;.use
b2a40 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 .Symfony\Component\Process\Proce
b2a60 73 73 42 75 69 6c 64 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ssBuilder;.use.Symfony\Component
b2a80 5c 50 72 6f 63 65 73 73 5c 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a \Process\PhpExecutableFinder;...
b2aa0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 ........class.Shell.{.private.$a
b2ac0 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 69 73 74 6f 72 79 3b 0a 70 72 pplication;.private.$history;.pr
b2ae0 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 52 65 61 64 6c ivate.$output;.private.$hasReadl
b2b00 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a ine;.private.$processIsolation;.
b2b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
b2b40 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b ruct(Application.$application).{
b2b60 0a 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 .$this->hasReadline.=.function_e
b2b80 78 69 73 74 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 xists('readline');.$this->applic
b2ba0 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 ation.=.$application;.$this->his
b2bc0 74 6f 72 79 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 tory.=.getenv('HOME').'/.history
b2be0 5f 27 2e 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 _'.$application->getName();.$thi
b2c00 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b s->output.=.new.ConsoleOutput();
b2c20 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 66 61 6c 73 65 .$this->processIsolation.=.false
b2c40 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a ;.}.....public.function.run().{.
b2c60 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 41 75 74 6f 45 78 69 74 28 $this->application->setAutoExit(
b2c80 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 43 false);.$this->application->setC
b2ca0 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 atchExceptions(true);..if.($this
b2cc0 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 72 65 61 64 5f 68 ->hasReadline).{.readline_read_h
b2ce0 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 72 65 61 64 6c 69 6e 65 istory($this->history);.readline
b2d00 5f 63 6f 6d 70 6c 65 74 69 6f 6e 5f 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 28 24 74 68 69 73 _completion_function(array($this
b2d20 2c 20 27 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 27 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f ,.'autocompleter'));.}..$this->o
b2d40 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 61 64 65 72 28 utput->writeln($this->getHeader(
b2d60 29 29 3b 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 ));.$php.=.null;.if.($this->proc
b2d80 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 essIsolation).{.$finder.=.new.Ph
b2da0 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 70 68 70 20 3d 20 24 66 69 6e pExecutableFinder();.$php.=.$fin
b2dc0 64 65 72 2d 3e 66 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 der->find();.$this->output->writ
b2de0 65 6c 6e 28 3c 3c 3c 45 4f 46 0a 3c 69 6e 66 6f 3e 52 75 6e 6e 69 6e 67 20 77 69 74 68 20 70 72 eln(<<<EOF.<info>Running.with.pr
b2e00 6f 63 65 73 73 20 69 73 6f 6c 61 74 69 6f 6e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 6f 6e 73 ocess.isolation,.you.should.cons
b2e20 69 64 65 72 20 74 68 69 73 3a 3c 2f 69 6e 66 6f 3e 0a 20 20 2a 20 65 61 63 68 20 63 6f 6d 6d 61 ider.this:</info>...*.each.comma
b2e40 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 20 61 73 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 nd.is.executed.as.separate.proce
b2e60 73 73 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 ss,...*.commands.don't.support.i
b2e80 6e 74 65 72 61 63 74 69 76 69 74 79 2c 20 61 6c 6c 20 70 61 72 61 6d 73 20 6d 75 73 74 20 62 65 nteractivity,.all.params.must.be
b2ea0 20 70 61 73 73 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 .passed.explicitly,...*.commands
b2ec0 20 6f 75 74 70 75 74 20 69 73 20 6e 6f 74 20 63 6f 6c 6f 72 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 .output.is.not.colorized...EOF.)
b2ee0 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 ;.}..while.(true).{.$command.=.$
b2f00 74 68 69 73 2d 3e 72 65 61 64 6c 69 6e 65 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d this->readline();..if.(false.===
b2f20 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 .$command).{.$this->output->writ
b2f40 65 6c 6e 28 22 5c 6e 22 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d eln("\n");..break;.}..if.($this-
b2f60 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 61 64 64 5f 68 69 73 >hasReadline).{.readline_add_his
b2f80 74 6f 72 79 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 77 72 69 74 65 5f 68 tory($command);.readline_write_h
b2fa0 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 istory($this->history);.}..if.($
b2fc0 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 this->processIsolation).{.$pb.=.
b2fe0 6e 65 77 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 28 29 3b 0a 0a 24 70 72 6f 63 65 73 73 20 new.ProcessBuilder();..$process.
b3000 3d 20 24 70 62 0a 2d 3e 61 64 64 28 24 70 68 70 29 0a 2d 3e 61 64 64 28 24 5f 53 45 52 56 45 52 =.$pb.->add($php).->add($_SERVER
b3020 5b 27 61 72 67 76 27 5d 5b 30 5d 29 0a 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 ['argv'][0]).->add($command).->i
b3040 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 74 72 75 65 29 nheritEnvironmentVariables(true)
b3060 0a 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 0a 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 .->getProcess().;..$output.=.$th
b3080 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 66 75 6e 63 74 69 is->output;.$process->run(functi
b30a0 6f 6e 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 29 20 7b on($type,.$data).use.($output).{
b30c0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 .$output->writeln($data);.});..$
b30e0 72 65 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d ret.=.$process->getExitCode();.}
b3100 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f .else.{.$ret.=.$this->applicatio
b3120 6e 2d 3e 72 75 6e 28 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 n->run(new.StringInput($command)
b3140 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 ,.$this->output);.}..if.(0.!==.$
b3160 72 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 ret).{.$this->output->writeln(sp
b3180 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e rintf('<error>The.command.termin
b31a0 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 73 74 61 74 75 73 20 28 25 73 29 3c 2f ated.with.an.error.status.(%s)</
b31c0 65 72 72 6f 72 3e 27 2c 20 24 72 65 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f error>',.$ret));.}.}.}.......pro
b31e0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 tected.function.getHeader().{.re
b3200 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 0a 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 turn.<<<EOF..Welcome.to.the.<inf
b3220 6f 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 o>{$this->application->getName()
b3240 7d 3c 2f 69 6e 66 6f 3e 20 73 68 65 6c 6c 20 28 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d }</info>.shell.(<comment>{$this-
b3260 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d >application->getVersion()}</com
b3280 6d 65 6e 74 3e 29 2e 0a 0a 41 74 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f ment>)...At.the.prompt,.type.<co
b32a0 6d 6d 65 6e 74 3e 68 65 6c 70 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 mment>help</comment>.for.some.he
b32c0 6c 70 2c 0a 6f 72 20 3c 63 6f 6d 6d 65 6e 74 3e 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 lp,.or.<comment>list</comment>.t
b32e0 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e o.get.a.list.of.available.comman
b3300 64 73 2e 0a 0a 54 6f 20 65 78 69 74 20 74 68 65 20 73 68 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f ds...To.exit.the.shell,.type.<co
b3320 6d 6d 65 6e 74 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a mment>^D</comment>...EOF;.}.....
b3340 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 6d 70 74 28 29 ..protected.function.getPrompt()
b3360 0a 7b 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f .{...return.$this->output->getFo
b3380 72 6d 61 74 74 65 72 28 29 2d 3e 66 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 rmatter()->format($this->applica
b33a0 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 tion->getName().'.>.');.}..prote
b33c0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 cted.function.getOutput().{.retu
b33e0 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 rn.$this->output;.}..protected.f
b3400 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 unction.getApplication().{.retur
b3420 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a n.$this->application;.}.........
b3440 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 private.function.autocompleter($
b3460 74 65 78 74 29 0a 7b 0a 24 69 6e 66 6f 20 3d 20 72 65 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b text).{.$info.=.readline_info();
b3480 0a 24 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 69 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 .$text.=.substr($info['line_buff
b34a0 65 72 27 5d 2c 20 30 2c 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e er'],.0,.$info['end']);..if.($in
b34c0 66 6f 5b 27 70 6f 69 6e 74 27 5d 20 21 3d 3d 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a fo['point'].!==.$info['end']).{.
b34e0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 return.true;.}....if.(false.===.
b3500 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a strpos($text,.'.').||.!$text).{.
b3520 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 return.array_keys($this->applica
b3540 74 69 6f 6e 2d 3e 61 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e tion->all());.}....try.{.$comman
b3560 64 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 d.=.$this->application->find(sub
b3580 73 74 72 28 24 74 65 78 74 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 str($text,.0,.strpos($text,.'.')
b35a0 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 ));.}.catch.(\Exception.$e).{.re
b35c0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 turn.true;.}..$list.=.array('--h
b35e0 65 6c 70 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 elp');.foreach.($command->getDef
b3600 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 inition()->getOptions().as.$opti
b3620 6f 6e 29 20 7b 0a 24 6c 69 73 74 5b 5d 20 3d 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 on).{.$list[].=.'--'.$option->ge
b3640 74 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a tName();.}..return.$list;.}.....
b3660 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a ..private.function.readline().{.
b3680 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 if.($this->hasReadline).{.$line.
b36a0 3d 20 72 65 61 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a =.readline($this->getPrompt());.
b36c0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 }.else.{.$this->output->write($t
b36e0 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 his->getPrompt());.$line.=.fgets
b3700 28 53 54 44 49 4e 2c 20 31 30 32 34 29 3b 0a 24 6c 69 6e 65 20 3d 20 28 21 24 6c 69 6e 65 20 26 (STDIN,.1024);.$line.=.(!$line.&
b3720 26 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 20 3d 3d 20 30 29 20 3f 20 66 61 6c 73 65 20 3a 20 &.strlen($line).==.0).?.false.:.
b3740 72 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d rtrim($line);.}..return.$line;.}
b3760 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c ..public.function.getProcessIsol
b3780 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 ation().{.return.$this->processI
b37a0 73 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 solation;.}..public.function.set
b37c0 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 ProcessIsolation($processIsolati
b37e0 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 on).{.$this->processIsolation.=.
b3800 28 42 6f 6f 6c 65 61 6e 29 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 0a 69 66 (Boolean).$processIsolation;..if
b3820 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 26 26 20 21 63 6c .($this->processIsolation.&&.!cl
b3840 61 73 73 5f 65 78 69 73 74 73 28 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c ass_exists('Symfony\\Component\\
b3860 50 72 6f 63 65 73 73 5c 5c 50 72 6f 63 65 73 73 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 Process\\Process')).{.throw.new.
b3880 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 69 73 6f \RuntimeException('Unable.to.iso
b38a0 6c 61 74 65 20 70 72 6f 63 65 73 73 65 73 20 61 73 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 50 72 late.processes.as.the.Symfony.Pr
b38c0 6f 63 65 73 73 20 43 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 ocess.Component.is.not.installed
b38e0 2e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .');.}.}.}.<?php...........names
b3900 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f pace.Symfony\Component\Console\O
b3920 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f utput;..use.Symfony\Component\Co
b3940 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 nsole\Formatter\OutputFormatterI
b3960 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
b3980 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
b39a0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 r;.................abstract.clas
b39c0 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 s.Output.implements.OutputInterf
b39e0 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 ace.{.private.$verbosity;.privat
b3a00 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 e.$formatter;...........public.f
b3a20 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d unction.__construct($verbosity.=
b3a40 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
b3a60 74 65 64 20 3d 20 66 61 6c 73 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 ted.=.false,.OutputFormatterInte
b3a80 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 rface.$formatter.=.null).{.$this
b3aa0 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 ->verbosity.=.null.===.$verbosit
b3ac0 79 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 y.?.self::VERBOSITY_NORMAL.:.$ve
b3ae0 72 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c rbosity;.$this->formatter.=.null
b3b00 20 3d 3d 3d 20 24 66 6f 72 6d 61 74 74 65 72 20 3f 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d .===.$formatter.?.new.OutputForm
b3b20 61 74 74 65 72 28 29 20 3a 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 atter().:.$formatter;.$this->for
b3b40 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 matter->setDecorated($decorated)
b3b60 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 ;.}.....public.function.setForma
b3b80 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 tter(OutputFormatterInterface.$f
b3ba0 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 ormatter).{.$this->formatter.=.$
b3bc0 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e formatter;.}.....public.function
b3be0 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getFormatter().{.return.$this->
b3c00 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e formatter;.}.....public.function
b3c20 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 .setDecorated($decorated).{.$thi
b3c40 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f s->formatter->setDecorated($deco
b3c60 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 rated);.}.....public.function.is
b3c80 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d Decorated().{.return.$this->form
b3ca0 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c atter->isDecorated();.}.....publ
b3cc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 ic.function.setVerbosity($level)
b3ce0 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 28 69 6e 74 29 20 24 6c 65 76 .{.$this->verbosity.=.(int).$lev
b3d00 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 el;.}.....public.function.getVer
b3d20 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 bosity().{.return.$this->verbosi
b3d40 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c ty;.}.....public.function.writel
b3d60 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 n($messages,.$type.=.self::OUTPU
b3d80 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 T_NORMAL).{.$this->write($messag
b3da0 65 73 2c 20 74 72 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 es,.true,.$type);.}.....public.f
b3dc0 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e unction.write($messages,.$newlin
b3de0 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f e.=.false,.$type.=.self::OUTPUT_
b3e00 4e 4f 52 4d 41 4c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 NORMAL).{.if.(self::VERBOSITY_QU
b3e20 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 29 20 7b 0a 72 65 74 75 IET.===.$this->verbosity).{.retu
b3e40 72 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 rn;.}..$messages.=.(array).$mess
b3e60 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 ages;..foreach.($messages.as.$me
b3e80 73 73 61 67 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 4f ssage).{.switch.($type).{.case.O
b3ea0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a 24 utputInterface::OUTPUT_NORMAL:.$
b3ec0 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d message.=.$this->formatter->form
b3ee0 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 at($message);.break;.case.Output
b3f00 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3a 0a 62 72 65 61 6b 3b 0a 63 61 Interface::OUTPUT_RAW:.break;.ca
b3f20 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 50 4c 41 49 4e se.OutputInterface::OUTPUT_PLAIN
b3f40 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 66 :.$message.=.strip_tags($this->f
b3f60 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 29 3b 0a 62 72 65 ormatter->format($message));.bre
b3f80 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ak;.default:.throw.new.\InvalidA
b3fa0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 rgumentException(sprintf('Unknow
b3fc0 6e 20 6f 75 74 70 75 74 20 74 79 70 65 20 67 69 76 65 6e 20 28 25 73 29 27 2c 20 24 74 79 70 65 n.output.type.given.(%s)',.$type
b3fe0 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 ));.}..$this->doWrite($message,.
b4000 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 $newline);.}.}........abstract.p
b4020 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 rotected.function.doWrite($messa
b4040 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ge,.$newline);.}.<?php..........
b4060 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
b4080 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e sole\Output;..use.Symfony\Compon
b40a0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d ent\Console\Formatter\OutputForm
b40c0 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e atter;.use.Symfony\Component\Con
b40e0 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e sole\Formatter\OutputFormatterIn
b4100 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f 75 terface;............class.NullOu
b4120 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a tput.implements.OutputInterface.
b4140 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 {....public.function.setFormatte
b4160 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d r(OutputFormatterInterface.$form
b4180 61 74 74 65 72 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e atter).{...}.....public.function
b41a0 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 4f .getFormatter().{...return.new.O
b41c0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 utputFormatter();.}.....public.f
b41e0 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 unction.setDecorated($decorated)
b4200 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 .{...}.....public.function.isDec
b4220 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 orated().{.return.false;.}.....p
b4240 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 ublic.function.setVerbosity($lev
b4260 65 6c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 el).{...}.....public.function.ge
b4280 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 tVerbosity().{.return.self::VERB
b42a0 4f 53 49 54 59 5f 51 55 49 45 54 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 OSITY_QUIET;.}.....public.functi
b42c0 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 on.writeln($messages,.$type.=.se
b42e0 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 lf::OUTPUT_NORMAL).{...}.....pub
b4300 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e lic.function.write($messages,.$n
b4320 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 ewline.=.false,.$type.=.self::OU
b4340 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a TPUT_NORMAL).{...}.}.<?php......
b4360 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
b4380 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \Console\Output;..use.Symfony\Co
b43a0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 mponent\Console\Output\OutputInt
b43c0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 6f 6c 65 erface;........interface.Console
b43e0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 49 6e OutputInterface.extends.OutputIn
b4400 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 terface.{......public.function.g
b4420 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 etErrorOutput();.......public.fu
b4440 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 74 49 6e 74 65 nction.setErrorOutput(OutputInte
b4460 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rface.$error);.}.<?php..........
b4480 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
b44a0 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e sole\Output;..use.Symfony\Compon
b44c0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d ent\Console\Formatter\OutputForm
b44e0 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a atterInterface;.................
b4500 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 class.StreamOutput.extends.Outpu
b4520 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t.{.private.$stream;............
b4540 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 ..public.function.__construct($s
b4560 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 tream,.$verbosity.=.self::VERBOS
b4580 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f ITY_NORMAL,.$decorated.=.null,.O
b45a0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 utputFormatterInterface.$formatt
b45c0 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 er.=.null).{.if.(!is_resource($s
b45e0 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 65 74 5f 72 65 73 6f 75 tream).||.'stream'.!==.get_resou
b4600 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c rce_type($stream)).{.throw.new.\
b4620 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 74 InvalidArgumentException('The.St
b4640 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 20 73 74 72 65 61 6d 20 reamOutput.class.needs.a.stream.
b4660 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 as.its.first.argument.');.}..$th
b4680 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 is->stream.=.$stream;..if.(null.
b46a0 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 61 74 65 64 20 3d 20 24 ===.$decorated).{.$decorated.=.$
b46c0 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 0a 70 61 72 65 this->hasColorSupport();.}..pare
b46e0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 nt::__construct($verbosity,.$dec
b4700 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 orated,.$formatter);.}.......pub
b4720 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 lic.function.getStream().{.retur
b4740 6e 20 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 n.$this->stream;.}.....protected
b4760 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 .function.doWrite($message,.$new
b4780 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 77 72 69 74 65 28 24 74 line).{.if.(false.===.@fwrite($t
b47a0 68 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 2e 28 24 6e 65 77 6c 69 6e 65 20 his->stream,.$message.($newline.
b47c0 3f 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e 65 ?.PHP_EOL.:.''))).{.....throw.ne
b47e0 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 77 w.\RuntimeException('Unable.to.w
b4800 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 0a 20 7d 0a 0a 66 66 6c 75 73 68 28 24 74 68 69 rite.output.');...}..fflush($thi
b4820 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 s->stream);.}............protect
b4840 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 0a 7b 0a ed.function.hasColorSupport().{.
b4860 0a 20 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c ..if.(DIRECTORY_SEPARATOR.==.'\\
b4880 27 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e ').{.return.false.!==.getenv('AN
b48a0 53 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 43 6f 6e 45 SICON').||.'ON'.===.getenv('ConE
b48c0 6d 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 muANSI');.}..return.function_exi
b48e0 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 sts('posix_isatty').&&.@posix_is
b4900 61 74 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 atty($this->stream);...}.}.<?php
b4920 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
b4940 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 ponent\Console\Output;..use.Symf
b4960 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c ony\Component\Console\Formatter\
b4980 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a OutputFormatterInterface;.......
b49a0 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f ..interface.OutputInterface.{.co
b49c0 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 nst.VERBOSITY_QUIET.=.0;.const.V
b49e0 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f ERBOSITY_NORMAL.=.1;.const.VERBO
b4a00 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 SITY_VERBOSE.=.2;.const.VERBOSIT
b4a20 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 Y_VERY_VERBOSE.=.3;.const.VERBOS
b4a40 49 54 59 5f 44 45 42 55 47 20 3d 20 34 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f 52 ITY_DEBUG.=.4;..const.OUTPUT_NOR
b4a60 4d 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 20 3d 20 31 3b 0a 63 MAL.=.0;.const.OUTPUT_RAW.=.1;.c
b4a80 6f 6e 73 74 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a onst.OUTPUT_PLAIN.=.2;..........
b4aa0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 ...public.function.write($messag
b4ac0 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 es,.$newline.=.false,.$type.=.se
b4ae0 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 lf::OUTPUT_NORMAL);............p
b4b00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 ublic.function.writeln($messages
b4b20 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a ,.$type.=.self::OUTPUT_NORMAL);.
b4b40 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f ........public.function.setVerbo
b4b60 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e sity($level);.........public.fun
b4b80 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ction.getVerbosity();.........pu
b4ba0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f blic.function.setDecorated($deco
b4bc0 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rated);.........public.function.
b4be0 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 isDecorated();.........public.fu
b4c00 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 nction.setFormatter(OutputFormat
b4c20 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a terInterface.$formatter);.......
b4c40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 ..public.function.getFormatter()
b4c60 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 ;.}.<?php...........namespace.Sy
b4c80 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a mfony\Component\Console\Output;.
b4ca0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 .use.Symfony\Component\Console\F
b4cc0 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 ormatter\OutputFormatterInterfac
b4ce0 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 e;.use.Symfony\Component\Console
b4d00 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a \Output\ConsoleOutputInterface;.
b4d20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 ................class.ConsoleOut
b4d40 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 put.extends.StreamOutput.impleme
b4d60 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 nts.ConsoleOutputInterface.{.pri
b4d80 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 vate.$stderr;...........public.f
b4da0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d unction.__construct($verbosity.=
b4dc0 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
b4de0 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 ted.=.null,.OutputFormatterInter
b4e00 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 face.$formatter.=.null).{.$outpu
b4e20 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a 69 66 20 28 21 24 tStream.=.'php://stdout';.if.(!$
b4e40 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 this->hasStdoutSupport()).{.$out
b4e60 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 putStream.=.'php://output';.}..p
b4e80 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 6f 70 65 6e 28 24 6f 75 74 70 75 74 arent::__construct(fopen($output
b4ea0 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 Stream,.'w'),.$verbosity,.$decor
b4ec0 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 ated,.$formatter);..$this->stder
b4ee0 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a r.=.new.StreamOutput(fopen('php:
b4f00 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 //stderr',.'w'),.$verbosity,.$de
b4f20 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c corated,.$formatter);.}.....publ
b4f40 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 ic.function.setDecorated($decora
b4f60 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 ted).{.parent::setDecorated($dec
b4f80 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 44 65 63 6f 72 orated);.$this->stderr->setDecor
b4fa0 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ated($decorated);.}.....public.f
b4fc0 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 unction.setFormatter(OutputForma
b4fe0 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 70 61 72 65 tterInterface.$formatter).{.pare
b5000 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 24 74 nt::setFormatter($formatter);.$t
b5020 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 his->stderr->setFormatter($forma
b5040 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 tter);.}.....public.function.set
b5060 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 56 Verbosity($level).{.parent::setV
b5080 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d erbosity($level);.$this->stderr-
b50a0 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 >setVerbosity($level);.}.....pub
b50c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a lic.function.getErrorOutput().{.
b50e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c return.$this->stderr;.}.....publ
b5100 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 ic.function.setErrorOutput(Outpu
b5120 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 tInterface.$error).{.$this->stde
b5140 72 72 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 rr.=.$error;.}............protec
b5160 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 0a ted.function.hasStdoutSupport().
b5180 7b 0a 72 65 74 75 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 68 70 5f 75 6e 61 6d 65 28 27 {.return.('OS400'.!=.php_uname('
b51a0 73 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 s'));.}.}.<?php...........namesp
b51c0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 ace.Symfony\Component\Console\De
b51e0 73 63 72 69 70 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 65 73 63 72 69 scriptor;.......interface.Descri
b5200 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ptorInterface.{.........public.f
b5220 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 unction.describe($object,.array.
b5240 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a $options.=.array());.}.<?php....
b5260 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
b5280 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 nt\Console\Descriptor;..use.Symf
b52a0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f ony\Component\Console\Applicatio
b52c0 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
b52e0 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \Command\Command;.use.Symfony\Co
b5300 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d mponent\Console\Input\InputArgum
b5320 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ent;.use.Symfony\Component\Conso
b5340 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 le\Input\InputDefinition;.use.Sy
b5360 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e mfony\Component\Console\Input\In
b5380 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 65 78 74 44 65 73 63 72 putOption;.......class.TextDescr
b53a0 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 iptor.extends.Descriptor.{....pr
b53c0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 otected.function.describeInputAr
b53e0 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 gument(InputArgument.$argument,.
b5400 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 array.$options.=.array()).{.if.(
b5420 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 null.!==.$argument->getDefault()
b5440 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 .&&.(!is_array($argument->getDef
b5460 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 ault()).||.count($argument->getD
b5480 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 efault()))).{.$default.=.sprintf
b54a0 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 ('<comment>.(default:.%s)</comme
b54c0 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 nt>',.$this->formatDefaultValue(
b54e0 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 $argument->getDefault()));.}.els
b5500 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 57 69 64 74 68 e.{.$default.=.'';.}..$nameWidth
b5520 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 29 .=.isset($options['name_width'])
b5540 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 20 3a 20 73 74 72 6c .?.$options['name_width'].:.strl
b5560 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 6f 75 74 70 75 en($argument->getName());.$outpu
b5580 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 t.=.str_replace("\n",."\n".str_r
b55a0 65 70 65 61 74 28 27 20 27 2c 20 24 6e 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 61 72 67 epeat('.',.$nameWidth.+.2),.$arg
b55c0 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 ument->getDescription());.$outpu
b55e0 74 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 7b 6e 61 6d 65 57 69 64 74 t.=.sprintf(".<info>%-${nameWidt
b5600 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 h}s</info>.%s%s",.$argument->get
b5620 4e 61 6d 65 28 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 Name(),.$output,.$default);..ret
b5640 75 72 6e 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 urn.isset($options['raw_text']).
b5660 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f &&.$options['raw_text'].?.strip_
b5680 74 61 67 73 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 tags($output).:.$output;.}.....p
b56a0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f rotected.function.describeInputO
b56c0 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 ption(InputOption.$option,.array
b56e0 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 6f 70 74 69 .$options.=.array()).{.if.($opti
b5700 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f on->acceptValue().&&.null.!==.$o
b5720 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 ption->getDefault().&&.(!is_arra
b5740 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e y($option->getDefault()).||.coun
b5760 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 t($option->getDefault()))).{.$de
b5780 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 fault.=.sprintf('<comment>.(defa
b57a0 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d ult:.%s)</comment>',.$this->form
b57c0 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 atDefaultValue($option->getDefau
b57e0 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a lt()));.}.else.{.$default.=.'';.
b5800 7d 0a 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 }..$nameWidth.=.isset($options['
b5820 6e 61 6d 65 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 name_width']).?.$options['name_w
b5840 69 64 74 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 idth'].:.strlen($option->getName
b5860 28 29 29 3b 0a 24 6e 61 6d 65 57 69 74 68 53 68 6f 72 74 63 75 74 57 69 64 74 68 20 3d 20 24 6e ());.$nameWithShortcutWidth.=.$n
b5880 61 6d 65 57 69 64 74 68 20 2d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 ameWidth.-.strlen($option->getNa
b58a0 6d 65 28 29 29 20 2d 20 32 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 70 72 69 6e 74 66 28 22 20 me()).-.2;..$output.=.sprintf(".
b58c0 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6e 61 6d 65 57 69 74 68 53 68 6f 72 <info>%s</info>.%-${nameWithShor
b58e0 74 63 75 74 57 69 64 74 68 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e tcutWidth}s%s%s%s",.'--'.$option
b5900 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 ->getName(),.$option->getShortcu
b5920 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 28 2d 25 73 29 20 27 2c 20 24 6f 70 74 69 6f 6e 2d t().?.sprintf('(-%s).',.$option-
b5940 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c 0a 73 74 72 5f 72 65 70 6c 61 63 >getShortcut()).:.'',.str_replac
b5960 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6e 61 e("\n",."\n".str_repeat('.',.$na
b5980 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 meWidth.+.2),.$option->getDescri
b59a0 70 74 69 6f 6e 28 29 29 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 ption()),.$default,.$option->isA
b59c0 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 6d 75 6c 74 69 70 6c 65 20 76 61 rray().?.'<comment>.(multiple.va
b59e0 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 20 3a 20 27 27 0a 29 3b lues.allowed)</comment>'.:.''.);
b5a00 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 ..return.isset($options['raw_tex
b5a20 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 t']).&&.$options['raw_text'].?.s
b5a40 74 72 69 70 5f 74 61 67 73 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a trip_tags($output).:.$output;.}.
b5a60 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 ....protected.function.describeI
b5a80 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 nputDefinition(InputDefinition.$
b5aa0 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 definition,.array.$options.=.arr
b5ac0 61 79 28 29 29 0a 7b 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 ay()).{.$nameWidth.=.0;.foreach.
b5ae0 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f ($definition->getOptions().as.$o
b5b00 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f ption).{.$nameLength.=.strlen($o
b5b20 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 ption->getName()).+.2;.if.($opti
b5b40 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 on->getShortcut()).{.$nameLength
b5b60 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 .+=.strlen($option->getShortcut(
b5b80 29 29 20 2b 20 33 3b 0a 7d 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 )).+.3;.}.$nameWidth.=.max($name
b5ba0 57 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 Width,.$nameLength);.}.foreach.(
b5bc0 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 $definition->getArguments().as.$
b5be0 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 argument).{.$nameWidth.=.max($na
b5c00 6d 65 57 69 64 74 68 2c 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 meWidth,.strlen($argument->getNa
b5c20 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6e 61 6d 65 57 69 64 74 68 3b 0a 0a 24 6d 65 73 73 61 67 me()));.}.++$nameWidth;..$messag
b5c40 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e es.=.array();..if.($definition->
b5c60 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 getArguments()).{.$messages[].=.
b5c80 27 3c 63 6f 6d 6d 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b '<comment>Arguments:</comment>';
b5ca0 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 .foreach.($definition->getArgume
b5cc0 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b nts().as.$argument).{.$messages[
b5ce0 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 ].=.$this->describeInputArgument
b5d00 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 64 74 68 27 20 3d ($argument,.array('name_width'.=
b5d20 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 >.$nameWidth));.}.$messages[].=.
b5d40 27 27 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f '';.}..if.($definition->getOptio
b5d60 6e 73 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e ns()).{.$messages[].=.'<comment>
b5d80 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 Options:</comment>';.foreach.($d
b5da0 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 efinition->getOptions().as.$opti
b5dc0 6f 6e 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 on).{.$messages[].=.$this->descr
b5de0 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 28 27 6e ibeInputOption($option,.array('n
b5e00 61 6d 65 5f 77 69 64 74 68 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 3b 0a 7d 0a 24 6d ame_width'.=>.$nameWidth));.}.$m
b5e20 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d 70 essages[].=.'';.}..$output.=.imp
b5e40 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 lode("\n",.$messages);..return.i
b5e60 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f sset($options['raw_text']).&&.$o
b5e80 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 ptions['raw_text'].?.strip_tags(
b5ea0 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 $output).:.$output;.}.....protec
b5ec0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d ted.function.describeCommand(Com
b5ee0 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 mand.$command,.array.$options.=.
b5f00 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 array()).{.$command->getSynopsis
b5f20 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 ();.$command->mergeApplicationDe
b5f40 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 finition(false);.$messages.=.arr
b5f60 61 79 28 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 ay('<comment>Usage:</comment>',.
b5f80 27 20 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 '.'.$command->getSynopsis(),.'')
b5fa0 3b 0a 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 7b ;..if.($command->getAliases()).{
b5fc0 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 6c 69 61 73 65 73 .$messages[].=.'<comment>Aliases
b5fe0 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 :</comment>.<info>'.implode(',.'
b6000 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e 66 ,.$command->getAliases()).'</inf
b6020 6f 3e 27 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 o>';.}..$messages[].=.$this->des
b6040 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 cribeInputDefinition($command->g
b6060 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 3b 0a 0a 69 66 20 28 24 68 65 6c etNativeDefinition());..if.($hel
b6080 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 p.=.$command->getProcessedHelp()
b60a0 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 48 65 6c 70 ).{.$messages[].=.'<comment>Help
b60c0 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 20 27 2e :</comment>';.$messages[].=.'.'.
b60e0 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 68 65 6c 70 29 2e str_replace("\n",."\n.",.$help).
b6100 22 5c 6e 22 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c "\n";.}..$output.=.implode("\n",
b6120 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6f 70 74 69 .$messages);..return.isset($opti
b6140 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 ons['raw_text']).&&.$options['ra
b6160 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 6f 75 74 70 75 74 29 20 3a w_text'].?.strip_tags($output).:
b6180 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .$output;.}.....protected.functi
b61a0 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 on.describeApplication(Applicati
b61c0 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 on.$application,.array.$options.
b61e0 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 =.array()).{.$describedNamespace
b6200 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 .=.isset($options['namespace']).
b6220 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a ?.$options['namespace'].:.null;.
b6240 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 $description.=.new.ApplicationDe
b6260 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 scription($application,.$describ
b6280 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 edNamespace);.$messages.=.array(
b62a0 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 );..if.(isset($options['raw_text
b62c0 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 7b 0a 24 ']).&&.$options['raw_text']).{.$
b62e0 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 width.=.$this->getColumnWidth($d
b6300 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 66 6f 72 escription->getCommands());..for
b6320 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 each.($description->getCommands(
b6340 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 ).as.$command).{.$messages[].=.s
b6360 70 72 69 6e 74 66 28 22 25 2d 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 63 6f 6d 6d 61 6e printf("%-${width}s.%s",.$comman
b6380 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 d->getName(),.$command->getDescr
b63a0 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 69 64 74 68 20 3d 20 24 iption());.}.}.else.{.$width.=.$
b63c0 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 73 63 72 69 70 74 69 6f this->getColumnWidth($descriptio
b63e0 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 n->getCommands());..$messages[].
b6400 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 28 29 3b 0a 24 6d 65 73 73 =.$application->getHelp();.$mess
b6420 61 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 ages[].=.'';..if.($describedName
b6440 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 space).{.$messages[].=.sprintf("
b6460 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 <comment>Available.commands.for.
b6480 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 the.\"%s\".namespace:</comment>"
b64a0 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c 73 65 20 7b ,.$describedNamespace);.}.else.{
b64c0 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 .$messages[].=.'<comment>Availab
b64e0 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 0a 20 66 6f le.commands:</comment>';.}....fo
b6500 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 reach.($description->getNamespac
b6520 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 21 24 64 65 73 63 es().as.$namespace).{.if.(!$desc
b6540 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 26 26 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 ribedNamespace.&&.ApplicationDes
b6560 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 cription::GLOBAL_NAMESPACE.!==.$
b6580 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d namespace['id']).{.$messages[].=
b65a0 20 27 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3c .'<comment>'.$namespace['id'].'<
b65c0 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 /comment>';.}..foreach.($namespa
b65e0 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6d 65 73 73 ce['commands'].as.$name).{.$mess
b6600 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 ages[].=.sprintf("..<info>%-${wi
b6620 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 64 65 73 63 72 69 dth}s</info>.%s",.$name,.$descri
b6640 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 73 ption->getCommand($name)->getDes
b6660 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 69 6d cription());.}.}.}..$output.=.im
b6680 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 plode("\n",.$messages);..return.
b66a0 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 isset($options['raw_text']).&&.$
b66c0 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 options['raw_text'].?.strip_tags
b66e0 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ($output).:.$output;.}.........p
b6700 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c rivate.function.formatDefaultVal
b6720 75 65 28 24 64 65 66 61 75 6c 74 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 ue($default).{.if.(version_compa
b6740 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a 72 re(PHP_VERSION,.'5.4',.'<')).{.r
b6760 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a 73 6f eturn.str_replace('\/',.'/',.jso
b6780 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a n_encode($default));.}..return.j
b67a0 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 son_encode($default,.JSON_UNESCA
b67c0 50 45 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 PED_SLASHES.|.JSON_UNESCAPED_UNI
b67e0 43 4f 44 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 CODE);.}.......private.function.
b6800 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a getColumnWidth(array.$commands).
b6820 7b 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 {.$width.=.0;.foreach.($commands
b6840 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 6e 28 .as.$command).{.$width.=.strlen(
b6860 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 3f 20 $command->getName()).>.$width.?.
b6880 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a 20 24 77 strlen($command->getName()).:.$w
b68a0 69 64 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 69 64 74 68 20 2b 20 32 3b 0a 7d 0a 7d 0a idth;.}..return.$width.+.2;.}.}.
b68c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
b68e0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a y\Component\Console\Descriptor;.
b6900 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 .use.Symfony\Component\Console\A
b6920 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e pplication;.use.Symfony\Componen
b6940 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 t\Console\Command\Command;.use.S
b6960 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
b6980 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e nputArgument;.use.Symfony\Compon
b69a0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f ent\Console\Input\InputDefinitio
b69c0 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
b69e0 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 \Input\InputOption;.......class.
b6a00 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 XmlDescriptor.extends.Descriptor
b6a20 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 .{....protected.function.describ
b6a40 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 eInputArgument(InputArgument.$ar
b6a60 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 gument,.array.$options.=.array()
b6a80 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 ).{.$dom.=.new.\DOMDocument('1.0
b6aa0 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 ',.'UTF-8');..$dom->appendChild(
b6ac0 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 $objectXML.=.$dom->createElement
b6ae0 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 ('argument'));.$objectXML->setAt
b6b00 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 tribute('name',.$argument->getNa
b6b20 6d 65 28 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 me());.$objectXML->setAttribute(
b6b40 27 69 73 5f 72 65 71 75 69 72 65 64 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 'is_required',.$argument->isRequ
b6b60 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 ired().?.1.:.0);.$objectXML->set
b6b80 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 61 72 72 61 79 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d Attribute('is_array',.$argument-
b6ba0 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d >isArray().?.1.:.0);.$objectXML-
b6bc0 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 >appendChild($descriptionXML.=.$
b6be0 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 dom->createElement('description'
b6c00 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 ));.$descriptionXML->appendChild
b6c20 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 72 67 75 6d 65 6e 74 2d ($dom->createTextNode($argument-
b6c40 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 6f 62 6a 65 63 74 58 4d 4c >getDescription()));..$objectXML
b6c60 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f ->appendChild($defaultsXML.=.$do
b6c80 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 24 m->createElement('defaults'));.$
b6ca0 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 defaults.=.is_array($argument->g
b6cc0 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 etDefault()).?.$argument->getDef
b6ce0 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 ault().:.(is_bool($argument->get
b6d00 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 61 Default()).?.array(var_export($a
b6d20 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 rgument->getDefault(),.true)).:.
b6d40 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 ($argument->getDefault().?.array
b6d60 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 ($argument->getDefault()).:.arra
b6d80 79 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 y()));.foreach.($defaults.as.$de
b6da0 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 fault).{.$defaultsXML->appendChi
b6dc0 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 ld($defaultXML.=.$dom->createEle
b6de0 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 ment('default'));.$defaultXML->a
b6e00 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 ppendChild($dom->createTextNode(
b6e20 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 $default));.}..return.$this->out
b6e40 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 put($dom,.$options);.}.....prote
b6e60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f cted.function.describeInputOptio
b6e80 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 n(InputOption.$option,.array.$op
b6ea0 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 tions.=.array()).{.$dom.=.new.\D
b6ec0 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f OMDocument('1.0',.'UTF-8');..$do
b6ee0 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d m->appendChild($objectXML.=.$dom
b6f00 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 27 29 29 3b 0a 24 6f 62 6a ->createElement('option'));.$obj
b6f20 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 27 2d 2d ectXML->setAttribute('name',.'--
b6f40 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 70 6f 73 20 3d 20 73 74 '.$option->getName());.$pos.=.st
b6f60 72 70 6f 73 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 27 7c 27 rpos($option->getShortcut(),.'|'
b6f80 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 24 6f 62 6a 65 63 74 );.if.(false.!==.$pos).{.$object
b6fa0 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 27 2d XML->setAttribute('shortcut',.'-
b6fc0 27 2e 73 75 62 73 74 72 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c '.substr($option->getShortcut(),
b6fe0 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 .0,.$pos));.$objectXML->setAttri
b7000 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 73 27 2c 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c bute('shortcuts',.'-'.implode('|
b7020 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f -',.explode('|',.$option->getSho
b7040 72 74 63 75 74 28 29 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d rtcut())));.}.else.{.$objectXML-
b7060 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 24 6f 70 74 69 6f >setAttribute('shortcut',.$optio
b7080 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e n->getShortcut().?.'-'.$option->
b70a0 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3a 20 27 27 29 3b 0a 7d 0a 24 6f 62 6a 65 63 74 58 4d getShortcut().:.'');.}.$objectXM
b70c0 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 2c 20 L->setAttribute('accept_value',.
b70e0 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 31 20 3a 20 30 29 3b $option->acceptValue().?.1.:.0);
b7100 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 .$objectXML->setAttribute('is_va
b7120 6c 75 65 5f 72 65 71 75 69 72 65 64 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 lue_required',.$option->isValueR
b7140 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e equired().?.1.:.0);.$objectXML->
b7160 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 2c 20 24 6f 70 74 setAttribute('is_multiple',.$opt
b7180 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 ion->isArray().?.1.:.0);.$object
b71a0 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c XML->appendChild($descriptionXML
b71c0 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 .=.$dom->createElement('descript
b71e0 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 ion'));.$descriptionXML->appendC
b7200 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6f 70 74 69 6f hild($dom->createTextNode($optio
b7220 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 69 66 20 28 24 6f 70 74 n->getDescription()));..if.($opt
b7240 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 20 ion->acceptValue()).{.$defaults.
b7260 3d 20 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 =.is_array($option->getDefault()
b7280 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f ).?.$option->getDefault().:.(is_
b72a0 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 bool($option->getDefault()).?.ar
b72c0 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 ray(var_export($option->getDefau
b72e0 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 lt(),.true)).:.($option->getDefa
b7300 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c ult().?.array($option->getDefaul
b7320 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 t()).:.array()));.$objectXML->ap
b7340 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 pendChild($defaultsXML.=.$dom->c
b7360 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 0a 69 66 20 28 reateElement('defaults'));..if.(
b7380 21 65 6d 70 74 79 28 24 64 65 66 61 75 6c 74 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 !empty($defaults)).{.foreach.($d
b73a0 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 efaults.as.$default).{.$defaults
b73c0 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 XML->appendChild($defaultXML.=.$
b73e0 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a dom->createElement('default'));.
b7400 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 $defaultXML->appendChild($dom->c
b7420 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a reateTextNode($default));.}.}.}.
b7440 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 .return.$this->output($dom,.$opt
b7460 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ions);.}.....protected.function.
b7480 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 describeInputDefinition(InputDef
b74a0 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 inition.$definition,.array.$opti
b74c0 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d ons.=.array()).{.$dom.=.new.\DOM
b74e0 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e Document('1.0',.'UTF-8');.$dom->
b7500 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f appendChild($definitionXML.=.$do
b7520 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 29 3b m->createElement('definition'));
b7540 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 ..$definitionXML->appendChild($a
b7560 72 67 75 6d 65 6e 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e rgumentsXML.=.$dom->createElemen
b7580 74 28 27 61 72 67 75 6d 65 6e 74 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e t('arguments'));.foreach.($defin
b75a0 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 ition->getArguments().as.$argume
b75c0 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 nt).{.$this->appendDocument($arg
b75e0 75 6d 65 6e 74 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 umentsXML,.$this->describeInputA
b7600 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d rgument($argument,.array('as_dom
b7620 27 20 3d 3e 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d '.=>.true)));.}..$definitionXML-
b7640 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d >appendChild($optionsXML.=.$dom-
b7660 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 65 >createElement('options'));.fore
b7680 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 ach.($definition->getOptions().a
b76a0 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 s.$option).{.$this->appendDocume
b76c0 6e 74 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 nt($optionsXML,.$this->describeI
b76e0 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f nputOption($option,.array('as_do
b7700 6d 27 20 3d 3e 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e m'.=>.true)));.}..return.$this->
b7720 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 output($dom,.$options);.}.....pr
b7740 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 otected.function.describeCommand
b7760 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e (Command.$command,.array.$option
b7780 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f s.=.array()).{.$dom.=.new.\DOMDo
b77a0 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 61 70 cument('1.0',.'UTF-8');.$dom->ap
b77c0 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 pendChild($commandXML.=.$dom->cr
b77e0 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 0a 24 63 6f 6d 6d 61 eateElement('command'));..$comma
b7800 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 nd->getSynopsis();.$command->mer
b7820 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a geApplicationDefinition(false);.
b7840 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c .$commandXML->setAttribute('id',
b7860 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 .$command->getName());.$commandX
b7880 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 63 6f 6d 6d 61 6e ML->setAttribute('name',.$comman
b78a0 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 d->getName());..$commandXML->app
b78c0 65 6e 64 43 68 69 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 endChild($usageXML.=.$dom->creat
b78e0 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a 24 75 73 61 67 65 58 4d 4c 2d 3e 61 eElement('usage'));.$usageXML->a
b7900 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 ppendChild($dom->createTextNode(
b7920 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c sprintf($command->getSynopsis(),
b7940 20 27 27 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c .'')));..$commandXML->appendChil
b7960 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 d($descriptionXML.=.$dom->create
b7980 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 Element('description'));.$descri
b79a0 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 ptionXML->appendChild($dom->crea
b79c0 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e teTextNode(str_replace("\n",."\n
b79e0 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 .",.$command->getDescription()))
b7a00 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 68 65 );..$commandXML->appendChild($he
b7a20 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 68 65 6c lpXML.=.$dom->createElement('hel
b7a40 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d p'));.$helpXML->appendChild($dom
b7a60 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e ->createTextNode(str_replace("\n
b7a80 22 2c 20 22 5c 6e 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 ",."\n.",.$command->getProcessed
b7aa0 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 Help())));..$commandXML->appendC
b7ac0 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 hild($aliasesXML.=.$dom->createE
b7ae0 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f lement('aliases'));.foreach.($co
b7b00 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b mmand->getAliases().as.$alias).{
b7b20 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 .$aliasesXML->appendChild($alias
b7b40 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 XML.=.$dom->createElement('alias
b7b60 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d '));.$aliasXML->appendChild($dom
b7b80 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 6c 69 61 73 29 29 3b 0a 7d 0a 0a 24 64 ->createTextNode($alias));.}..$d
b7ba0 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e efinitionXML.=.$this->describeIn
b7bc0 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 putDefinition($command->getNativ
b7be0 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 27 61 73 5f 64 6f 6d 27 20 3d 3e eDefinition(),.array('as_dom'.=>
b7c00 20 74 72 75 65 29 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 .true));.$this->appendDocument($
b7c20 63 6f 6d 6d 61 6e 64 58 4d 4c 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 67 65 74 45 commandXML,.$definitionXML->getE
b7c40 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 2d 3e lementsByTagName('definition')->
b7c60 69 74 65 6d 28 30 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 item(0));..return.$this->output(
b7c80 24 64 6f 6d 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 $dom,.$options);.}.....protected
b7ca0 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 .function.describeApplication(Ap
b7cc0 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f plication.$application,.array.$o
b7ce0 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c ptions.=.array()).{.$dom.=.new.\
b7d00 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f DOMDocument('1.0',.'UTF-8');.$do
b7d20 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 72 6f 6f 74 58 6d 6c 20 3d 20 24 64 6f 6d 2d 3e m->appendChild($rootXml.=.$dom->
b7d40 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 24 72 6f 6f 74 createElement('symfony'));.$root
b7d60 58 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 Xml->appendChild($commandsXML.=.
b7d80 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 $dom->createElement('commands'))
b7da0 3b 0a 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 ;..$describedNamespace.=.isset($
b7dc0 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 options['namespace']).?.$options
b7de0 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 ['namespace'].:.null;.$descripti
b7e00 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 on.=.new.ApplicationDescription(
b7e20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 $application,.$describedNamespac
b7e40 65 29 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a e);..if.($describedNamespace).{.
b7e60 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 $commandsXML->setAttribute('name
b7e80 73 70 61 63 65 27 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 0a space',.$describedNamespace);.}.
b7ea0 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 .foreach.($description->getComma
b7ec0 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 nds().as.$command).{.$this->appe
b7ee0 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e ndDocument($commandsXML,.$this->
b7f00 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 describeCommand($command,.array(
b7f20 27 61 73 5f 64 6f 6d 27 20 3d 3e 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 'as_dom'.=>.true)));.}..if.(!$de
b7f40 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 70 scribedNamespace).{.$rootXml->ap
b7f60 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d pendChild($namespacesXML.=.$dom-
b7f80 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 29 3b 0a 0a >createElement('namespaces'));..
b7fa0 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 foreach.($description->getNamesp
b7fc0 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 aces().as.$namespace).{.$namespa
b7fe0 63 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 41 72 cesXML->appendChild($namespaceAr
b8000 72 61 79 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 rayXML.=.$dom->createElement('na
b8020 6d 65 73 70 61 63 65 27 29 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e mespace'));.$namespaceArrayXML->
b8040 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 setAttribute('id',.$namespace['i
b8060 64 27 5d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d d']);..foreach.($namespace['comm
b8080 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 ands'].as.$name).{.$namespaceArr
b80a0 61 79 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d ayXML->appendChild($commandXML.=
b80c0 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 .$dom->createElement('command'))
b80e0 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d ;.$commandXML->appendChild($dom-
b8100 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a >createTextNode($name));.}.}.}..
b8120 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 6f 6d 2c 20 24 6f 70 74 69 return.$this->output($dom,.$opti
b8140 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ons);.}........private.function.
b8160 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 5c 44 4f 4d 4e 6f 64 65 20 24 70 61 72 65 6e 74 4e appendDocument(\DOMNode.$parentN
b8180 6f 64 65 2c 20 5c 44 4f 4d 4e 6f 64 65 20 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 29 0a 7b ode,.\DOMNode.$importedParent).{
b81a0 0a 66 6f 72 65 61 63 68 20 28 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 2d 3e 63 68 69 6c 64 .foreach.($importedParent->child
b81c0 4e 6f 64 65 73 20 61 73 20 24 63 68 69 6c 64 4e 6f 64 65 29 20 7b 0a 24 70 61 72 65 6e 74 4e 6f Nodes.as.$childNode).{.$parentNo
b81e0 64 65 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 6f 77 6e de->appendChild($parentNode->own
b8200 65 72 44 6f 63 75 6d 65 6e 74 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 63 68 69 6c 64 4e 6f 64 erDocument->importNode($childNod
b8220 65 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 e,.true));.}.}..........private.
b8240 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 28 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 20 24 64 6f function.output(\DOMDocument.$do
b8260 6d 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 m,.array.$options).{.if.(isset($
b8280 6f 70 74 69 6f 6e 73 5b 27 61 73 5f 64 6f 6d 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 options['as_dom']).&&.$options['
b82a0 61 73 5f 64 6f 6d 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 24 64 6f 6d as_dom']).{.return.$dom;.}..$dom
b82c0 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 ->formatOutput.=.true;..return.$
b82e0 64 6f 6d 2d 3e 73 61 76 65 58 4d 4c 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a dom->saveXML();.}.}.<?php.......
b8300 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
b8320 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Console\Descriptor;..use.Symfony
b8340 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a \Component\Console\Application;.
b8360 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f use.Symfony\Component\Console\Co
b8380 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f mmand\Command;.use.Symfony\Compo
b83a0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nent\Console\Input\InputArgument
b83c0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
b83e0 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f Input\InputDefinition;.use.Symfo
b8400 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
b8420 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 Option;.......class.MarkdownDesc
b8440 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 riptor.extends.Descriptor.{....p
b8460 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 rotected.function.describeInputA
b8480 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c rgument(InputArgument.$argument,
b84a0 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 .array.$options.=.array()).{.ret
b84c0 75 72 6e 20 27 2a 2a 27 2e 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a urn.'**'.$argument->getName().':
b84e0 2a 2a 27 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e **'."\n\n"..'*.Name:.'.($argumen
b8500 74 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e t->getName().?:.'<none>')."\n"..
b8520 27 2a 20 49 73 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 '*.Is.required:.'.($argument->is
b8540 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a Required().?.'yes'.:.'no')."\n".
b8560 2e 27 2a 20 49 73 20 61 72 72 61 79 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 .'*.Is.array:.'.($argument->isAr
b8580 72 61 79 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 ray().?.'yes'.:.'no')."\n"..'*.D
b85a0 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 escription:.'.($argument->getDes
b85c0 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a cription().?:.'<none>')."\n"..'*
b85e0 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 .Default:.`'.str_replace("\n",.'
b8600 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 ',.var_export($argument->getDefa
b8620 75 6c 74 28 29 2c 20 74 72 75 65 29 29 2e 27 60 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ult(),.true)).'`';.}.....protect
b8640 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ed.function.describeInputOption(
b8660 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 InputOption.$option,.array.$opti
b8680 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 27 2a 2a 27 2e 24 6f 70 ons.=.array()).{.return.'**'.$op
b86a0 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a tion->getName().':**'."\n\n"..'*
b86c0 20 4e 61 6d 65 3a 20 60 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 .Name:.`--'.$option->getName().'
b86e0 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 53 68 6f 72 74 63 75 74 3a 20 27 2e 28 24 6f 70 74 69 6f 6e `'."\n"..'*.Shortcut:.'.($option
b8700 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 60 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 ->getShortcut().?.'`-'.implode('
b8720 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 |-',.explode('|',.$option->getSh
b8740 6f 72 74 63 75 74 28 29 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a ortcut())).'`'.:.'<none>')."\n".
b8760 2e 27 2a 20 41 63 63 65 70 74 20 76 61 6c 75 65 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 .'*.Accept.value:.'.($option->ac
b8780 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 ceptValue().?.'yes'.:.'no')."\n"
b87a0 0a 2e 27 2a 20 49 73 20 76 61 6c 75 65 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 6f 70 74 69 ..'*.Is.value.required:.'.($opti
b87c0 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 on->isValueRequired().?.'yes'.:.
b87e0 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 6d 75 6c 74 69 70 6c 65 3a 20 27 2e 28 24 'no')."\n"..'*.Is.multiple:.'.($
b8800 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 option->isArray().?.'yes'.:.'no'
b8820 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 6f 70 74 69 )."\n"..'*.Description:.'.($opti
b8840 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 on->getDescription().?:.'<none>'
b8860 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 )."\n"..'*.Default:.`'.str_repla
b8880 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d ce("\n",.'',.var_export($option-
b88a0 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 2e 27 60 27 3b 0a 7d 0a 0a 0a 0a >getDefault(),.true)).'`';.}....
b88c0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 .protected.function.describeInpu
b88e0 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 tDefinition(InputDefinition.$def
b8900 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 inition,.array.$options.=.array(
b8920 29 29 0a 7b 0a 24 62 6c 6f 63 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 63 6f 75 )).{.$blocks.=.array();..if.(cou
b8940 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 nt($definition->getArguments()).
b8960 3e 20 30 29 20 7b 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 27 23 23 23 20 41 72 67 75 6d 65 6e 74 >.0).{.$blocks[].=.'###.Argument
b8980 73 3a 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 s:';.foreach.($definition->getAr
b89a0 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 62 6c 6f 63 6b guments().as.$argument).{.$block
b89c0 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 s[].=.$this->describeInputArgume
b89e0 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 nt($argument);.}.}..if.(count($d
b8a00 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a efinition->getOptions()).>.0).{.
b8a20 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 27 23 23 23 20 4f 70 74 69 6f 6e 73 3a 27 3b 0a 66 6f 72 65 $blocks[].=.'###.Options:';.fore
b8a40 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 ach.($definition->getOptions().a
b8a60 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e s.$option).{.$blocks[].=.$this->
b8a80 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a describeInputOption($option);.}.
b8aa0 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 5c 6e 22 2c 20 24 62 6c 6f 63 6b }..return.implode("\n\n",.$block
b8ac0 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 s);.}.....protected.function.des
b8ae0 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 cribeCommand(Command.$command,.a
b8b00 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d rray.$options.=.array()).{.$comm
b8b20 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 and->getSynopsis();.$command->me
b8b40 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b rgeApplicationDefinition(false);
b8b60 0a 0a 24 6d 61 72 6b 64 6f 77 6e 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 ..$markdown.=.$command->getName(
b8b80 29 2e 22 5c 6e 22 0a 2e 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 )."\n"..str_repeat('-',.strlen($
b8ba0 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 command->getName()))."\n\n"..'*.
b8bc0 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 Description:.'.($command->getDes
b8be0 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a cription().?:.'<none>')."\n"..'*
b8c00 20 55 73 61 67 65 3a 20 60 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 .Usage:.`'.$command->getSynopsis
b8c20 28 29 2e 27 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 41 6c 69 61 73 65 73 3a 20 27 2e 28 63 6f 75 6e ().'`'."\n"..'*.Aliases:.'.(coun
b8c40 74 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 3f 20 27 60 27 2e t($command->getAliases()).?.'`'.
b8c60 69 6d 70 6c 6f 64 65 28 27 60 2c 20 60 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 implode('`,.`',.$command->getAli
b8c80 61 73 65 73 28 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 3b 0a 0a 69 66 20 28 24 68 ases()).'`'.:.'<none>');..if.($h
b8ca0 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 elp.=.$command->getProcessedHelp
b8cc0 28 29 29 20 7b 0a 24 6d 61 72 6b 64 6f 77 6e 20 2e 3d 20 22 5c 6e 5c 6e 22 2e 24 68 65 6c 70 3b ()).{.$markdown..=."\n\n".$help;
b8ce0 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 4d 61 72 6b 64 6f 77 6e 20 3d 20 24 74 .}..if.($definitionMarkdown.=.$t
b8d00 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f his->describeInputDefinition($co
b8d20 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 29 20 7b mmand->getNativeDefinition())).{
b8d40 0a 24 6d 61 72 6b 64 6f 77 6e 20 2e 3d 20 22 5c 6e 5c 6e 22 2e 24 64 65 66 69 6e 69 74 69 6f 6e .$markdown..=."\n\n".$definition
b8d60 4d 61 72 6b 64 6f 77 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 72 6b 64 6f 77 6e 3b 0a 7d Markdown;.}..return.$markdown;.}
b8d80 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 .....protected.function.describe
b8da0 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 Application(Application.$applica
b8dc0 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a tion,.array.$options.=.array()).
b8de0 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f {.$describedNamespace.=.isset($o
b8e00 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b ptions['namespace']).?.$options[
b8e20 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 'namespace'].:.null;.$descriptio
b8e40 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 n.=.new.ApplicationDescription($
b8e60 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 application,.$describedNamespace
b8e80 29 3b 0a 24 62 6c 6f 63 6b 73 20 3d 20 61 72 72 61 79 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d );.$blocks.=.array($application-
b8ea0 3e 67 65 74 4e 61 6d 65 28 29 2e 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 3d 27 2c 20 >getName()."\n".str_repeat('=',.
b8ec0 73 74 72 6c 65 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 strlen($application->getName()))
b8ee0 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 );..foreach.($description->getNa
b8f00 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 mespaces().as.$namespace).{.if.(
b8f20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e ApplicationDescription::GLOBAL_N
b8f40 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b AMESPACE.!==.$namespace['id']).{
b8f60 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 27 2a 2a 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 .$blocks[].=.'**'.$namespace['id
b8f80 27 5d 2e 27 3a 2a 2a 27 3b 0a 7d 0a 0a 24 62 6c 6f 63 6b 73 5b 5d 20 3d 20 69 6d 70 6c 6f 64 65 '].':**';.}..$blocks[].=.implode
b8fa0 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 6d 6d ("\n",.array_map(function.($comm
b8fc0 61 6e 64 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 20 27 2e 24 63 6f 6d 6d 61 6e 64 4e andName).{.return.'*.'.$commandN
b8fe0 61 6d 65 3b 0a 7d 20 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 29 ame;.}.,.$namespace['commands'])
b9000 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 );.}..foreach.($description->get
b9020 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 62 6c 6f 63 6b Commands().as.$command).{.$block
b9040 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f s[].=.$this->describeCommand($co
b9060 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 5c 6e 22 mmand);.}..return.implode("\n\n"
b9080 2c 20 24 62 6c 6f 63 6b 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$blocks);.}.}.<?php...........
b90a0 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 namespace.Symfony\Component\Cons
b90c0 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ole\Descriptor;..use.Symfony\Com
b90e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 ponent\Console\Application;.use.
b9100 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e Symfony\Component\Console\Comman
b9120 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e d\Command;.....class.Application
b9140 44 65 73 63 72 69 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 Description.{.const.GLOBAL_NAMES
b9160 50 41 43 45 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 PACE.=.'_global';.....private.$a
b9180 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 pplication;.....private.$namespa
b91a0 63 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 0a 0a 0a ce;.....private.$namespaces;....
b91c0 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 .private.$commands;.....private.
b91e0 24 61 6c 69 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $aliases;........public.function
b9200 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 .__construct(Application.$applic
b9220 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 ation,.$namespace.=.null).{.$thi
b9240 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 s->application.=.$application;.$
b9260 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 7d 0a this->namespace.=.$namespace;.}.
b9280 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 ....public.function.getNamespace
b92a0 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 s().{.if.(null.===.$this->namesp
b92c0 61 63 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f aces).{.$this->inspectApplicatio
b92e0 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 n();.}..return.$this->namespaces
b9300 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 ;.}.....public.function.getComma
b9320 6e 64 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d nds().{.if.(null.===.$this->comm
b9340 61 6e 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f ands).{.$this->inspectApplicatio
b9360 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a n();.}..return.$this->commands;.
b9380 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d }.........public.function.getCom
b93a0 6d 61 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e mand($name).{.if.(!isset($this->
b93c0 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 commands[$name]).&&.!isset($this
b93e0 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ->aliases[$name])).{.throw.new.\
b9400 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 InvalidArgumentException(sprintf
b9420 28 27 43 6f 6d 6d 61 6e 64 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 ('Command.%s.does.not.exist.',.$
b9440 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 name));.}..return.isset($this->c
b9460 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 ommands[$name]).?.$this->command
b9480 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d s[$name].:.$this->aliases[$name]
b94a0 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 70 65 63 74 41 70 70 ;.}..private.function.inspectApp
b94c0 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 lication().{.$this->commands.=.a
b94e0 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 rray();.$this->namespaces.=.arra
b9500 79 28 29 3b 0a 0a 24 61 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d y();..$all.=.$this->application-
b9520 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 >all($this->namespace.?.$this->a
b9540 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 74 68 69 73 2d pplication->findNamespace($this-
b9560 3e 6e 61 6d 65 73 70 61 63 65 29 20 3a 20 6e 75 6c 6c 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 >namespace).:.null);.foreach.($t
b9580 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 61 6c 6c 29 20 61 73 20 24 6e 61 6d 65 his->sortCommands($all).as.$name
b95a0 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 space.=>.$commands).{.$names.=.a
b95c0 72 72 61 79 28 29 3b 0a 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 rray();...foreach.($commands.as.
b95e0 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 6d 61 $name.=>.$command).{.if.(!$comma
b9600 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 nd->getName()).{.continue;.}..if
b9620 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 .($command->getName().===.$name)
b9640 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d .{.$this->commands[$name].=.$com
b9660 6d 61 6e 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e mand;.}.else.{.$this->aliases[$n
b9680 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 5b 5d 20 3d 20 24 ame].=.$command;.}..$names[].=.$
b96a0 6e 61 6d 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 61 6d 65 name;.}..$this->namespaces[$name
b96c0 73 70 61 63 65 5d 20 3d 20 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 space].=.array('id'.=>.$namespac
b96e0 65 2c 20 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 6e 61 6d 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a e,.'commands'.=>.$names);.}.}...
b9700 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 ....private.function.sortCommand
b9720 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 64 s(array.$commands).{.$namespaced
b9740 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f Commands.=.array();.foreach.($co
b9760 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 mmands.as.$name.=>.$command).{.$
b9780 6b 65 79 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 65 78 74 72 61 63 key.=.$this->application->extrac
b97a0 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 tNamespace($name,.1);.if.(!$key)
b97c0 20 7b 0a 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 .{.$key.=.'_global';.}..$namespa
b97e0 63 65 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d cedCommands[$key][$name].=.$comm
b9800 61 6e 64 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 and;.}.ksort($namespacedCommands
b9820 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 );..foreach.($namespacedCommands
b9840 20 61 73 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 .as.&$commands).{.ksort($command
b9860 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 s);.}..return.$namespacedCommand
b9880 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 s;.}.}.<?php...........namespace
b98a0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 .Symfony\Component\Console\Descr
b98c0 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f iptor;..use.Symfony\Component\Co
b98e0 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 nsole\Application;.use.Symfony\C
b9900 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 omponent\Console\Command\Command
b9920 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
b9940 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Input\InputArgument;.use.Symfony
b9960 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 \Component\Console\Input\InputDe
b9980 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c finition;.use.Symfony\Component\
b99a0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 61 Console\Input\InputOption;.....a
b99c0 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 6d 70 6c 65 6d 65 bstract.class.Descriptor.impleme
b99e0 6e 74 73 20 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 nts.DescriptorInterface.{.public
b9a00 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 .function.describe($object,.arra
b9a20 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 73 77 69 74 63 68 20 28 y.$options.=.array()).{.switch.(
b9a40 74 72 75 65 29 20 7b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 true).{.case.$object.instanceof.
b9a60 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 InputArgument:.return.$this->des
b9a80 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 cribeInputArgument($object,.$opt
b9aa0 69 6f 6e 73 29 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 ions);.case.$object.instanceof.I
b9ac0 6e 70 75 74 4f 70 74 69 6f 6e 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 nputOption:.return.$this->descri
b9ae0 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 beInputOption($object,.$options)
b9b00 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 ;.case.$object.instanceof.InputD
b9b20 65 66 69 6e 69 74 69 6f 6e 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 efinition:.return.$this->describ
b9b40 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f eInputDefinition($object,.$optio
b9b60 6e 73 29 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d ns);.case.$object.instanceof.Com
b9b80 6d 61 6e 64 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d mand:.return.$this->describeComm
b9ba0 61 6e 64 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 63 61 73 65 20 24 6f 62 and($object,.$options);.case.$ob
b9bc0 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 72 65 74 ject.instanceof.Application:.ret
b9be0 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 urn.$this->describeApplication($
b9c00 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 object,.$options);.}..throw.new.
b9c20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
b9c40 66 28 27 4f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 f('Object.of.type."%s".is.not.de
b9c60 73 63 72 69 62 61 62 6c 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 6a 65 63 74 29 29 scribable.',.get_class($object))
b9c80 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 );.}..........abstract.protected
b9ca0 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 .function.describeInputArgument(
b9cc0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 InputArgument.$argument,.array.$
b9ce0 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 options.=.array());..........abs
b9d00 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 tract.protected.function.describ
b9d20 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e eInputOption(InputOption.$option
b9d40 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a ,.array.$options.=.array());....
b9d60 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ......abstract.protected.functio
b9d80 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 n.describeInputDefinition(InputD
b9da0 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 efinition.$definition,.array.$op
b9dc0 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 tions.=.array());..........abstr
b9de0 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 act.protected.function.describeC
b9e00 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 ommand(Command.$command,.array.$
b9e20 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 options.=.array());..........abs
b9e40 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 tract.protected.function.describ
b9e60 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 eApplication(Application.$applic
b9e80 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 ation,.array.$options.=.array())
b9ea0 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 ;.}.<?php...........namespace.Sy
b9ec0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
b9ee0 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f or;..use.Symfony\Component\Conso
b9f00 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 le\Application;.use.Symfony\Comp
b9f20 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 onent\Console\Command\Command;.u
b9f40 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
b9f60 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ut\InputArgument;.use.Symfony\Co
b9f80 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e mponent\Console\Input\InputDefin
b9fa0 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ition;.use.Symfony\Component\Con
b9fc0 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c sole\Input\InputOption;.......cl
b9fe0 61 73 73 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 ass.JsonDescriptor.extends.Descr
ba000 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 iptor.{....protected.function.de
ba020 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e scribeInputArgument(InputArgumen
ba040 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 t.$argument,.array.$options.=.ar
ba060 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 ray()).{.return.$this->output(ar
ba080 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d ray(.'name'.=>.$argument->getNam
ba0a0 65 28 29 2c 0a 27 69 73 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d e(),.'is_required'.=>.$argument-
ba0c0 3e 69 73 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 >isRequired(),.'is_array'.=>.$ar
ba0e0 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 gument->isArray(),.'description'
ba100 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c .=>.$argument->getDescription(),
ba120 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 .'default'.=>.$argument->getDefa
ba140 75 6c 74 28 29 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 ult(),.),.$options);.}.....prote
ba160 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f cted.function.describeInputOptio
ba180 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 n(InputOption.$option,.array.$op
ba1a0 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tions.=.array()).{.return.$this-
ba1c0 3e 6f 75 74 70 75 74 28 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 27 2d 2d 27 2e 24 6f >output(array(.'name'.=>.'--'.$o
ba1e0 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 68 6f 72 74 63 75 74 27 20 3d 3e 20 ption->getName(),.'shortcut'.=>.
ba200 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 69 6d 70 $option->getShortcut().?.'-'.imp
ba220 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d lode('|-',.explode('|',.$option-
ba240 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 27 2c 0a 27 61 63 63 65 70 74 5f 76 >getShortcut())).:.'',.'accept_v
ba260 61 6c 75 65 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 2c alue'.=>.$option->acceptValue(),
ba280 0a 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d .'is_value_required'.=>.$option-
ba2a0 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 6d 75 6c 74 69 70 6c 65 >isValueRequired(),.'is_multiple
ba2c0 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 '.=>.$option->isArray(),.'descri
ba2e0 70 74 69 6f 6e 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f ption'.=>.$option->getDescriptio
ba300 6e 28 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 n(),.'default'.=>.$option->getDe
ba320 66 61 75 6c 74 28 29 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f fault(),.),.$options);.}.....pro
ba340 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 tected.function.describeInputDef
ba360 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 inition(InputDefinition.$definit
ba380 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b ion,.array.$options.=.array()).{
ba3a0 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 .$inputArguments.=.array();.fore
ba3c0 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 ach.($definition->getArguments()
ba3e0 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 69 6e 70 75 74 .as.$name.=>.$argument).{.$input
ba400 41 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 Arguments[$name].=.$this->descri
ba420 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 beInputArgument($argument,.array
ba440 28 27 61 73 5f 61 72 72 61 79 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 ('as_array'.=>.true));.}..$input
ba460 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 Options.=.array();.foreach.($def
ba480 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d inition->getOptions().as.$name.=
ba4a0 3e 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 >.$option).{.$inputOptions[$name
ba4c0 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 ].=.$this->describeInputOption($
ba4e0 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 28 27 61 73 5f 61 72 72 61 79 27 20 3d 3e 20 74 72 75 65 option,.array('as_array'.=>.true
ba500 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 72 61 ));.}..return.$this->output(arra
ba520 79 28 27 61 72 67 75 6d 65 6e 74 73 27 20 3d 3e 20 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 y('arguments'.=>.$inputArguments
ba540 2c 20 27 6f 70 74 69 6f 6e 73 27 20 3d 3e 20 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 29 2c 20 24 ,.'options'.=>.$inputOptions),.$
ba560 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 options);.}.....protected.functi
ba580 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d on.describeCommand(Command.$comm
ba5a0 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b and,.array.$options.=.array()).{
ba5c0 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 .$command->getSynopsis();.$comma
ba5e0 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 nd->mergeApplicationDefinition(f
ba600 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 61 72 72 alse);..return.$this->output(arr
ba620 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 ay(.'name'.=>.$command->getName(
ba640 29 2c 0a 27 75 73 61 67 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 ),.'usage'.=>.$command->getSynop
ba660 73 69 73 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 sis(),.'description'.=>.$command
ba680 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 68 65 6c 70 27 20 3d 3e 20 24 63 ->getDescription(),.'help'.=>.$c
ba6a0 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 2c 0a 27 61 6c 69 ommand->getProcessedHelp(),.'ali
ba6c0 61 73 65 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c ases'.=>.$command->getAliases(),
ba6e0 0a 27 64 65 66 69 6e 69 74 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 .'definition'.=>.$this->describe
ba700 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 InputDefinition($command->getNat
ba720 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 27 61 73 5f 61 72 72 61 79 iveDefinition(),.array('as_array
ba740 27 20 3d 3e 20 74 72 75 65 29 29 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a '.=>.true)),.),.$options);.}....
ba760 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c .protected.function.describeAppl
ba780 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e ication(Application.$application
ba7a0 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 ,.array.$options.=.array()).{.$d
ba7c0 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f escribedNamespace.=.isset($optio
ba7e0 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d ns['namespace']).?.$options['nam
ba800 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 espace'].:.null;.$description.=.
ba820 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c new.ApplicationDescription($appl
ba840 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 ication,.$describedNamespace);.$
ba860 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 commands.=.array();..foreach.($d
ba880 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f escription->getCommands().as.$co
ba8a0 6d 6d 61 6e 64 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 64 65 mmand).{.$commands[].=.$this->de
ba8c0 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 27 61 scribeCommand($command,.array('a
ba8e0 73 5f 61 72 72 61 79 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 s_array'.=>.true));.}..$data.=.$
ba900 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 79 28 27 63 6f 6d 6d describedNamespace.?.array('comm
ba920 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 27 20 ands'.=>.$commands,.'namespace'.
ba940 3d 3e 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a 20 61 72 72 61 79 28 =>.$describedNamespace).:.array(
ba960 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 'commands'.=>.$commands,.'namesp
ba980 61 63 65 73 27 20 3d 3e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 73 63 72 69 70 74 69 aces'.=>.array_values($descripti
ba9a0 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 on->getNamespaces()));..return.$
ba9c0 74 68 69 73 2d 3e 6f 75 74 70 75 74 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d this->output($data,.$options);.}
ba9e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 ..........private.function.outpu
baa00 74 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b t(array.$data,.array.$options).{
baa20 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 73 5f 61 72 72 61 79 27 5d 29 .if.(isset($options['as_array'])
baa40 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 61 73 5f 61 72 72 61 79 27 5d 29 20 7b 0a 72 65 74 75 .&&.$options['as_array']).{.retu
baa60 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 rn.$data;.}..return.json_encode(
baa80 24 64 61 74 61 2c 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f $data,.isset($options['json_enco
baaa0 64 69 6e 67 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e ding']).?.$options['json_encodin
baac0 67 27 5d 20 3a 20 30 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 g'].:.0);.}.}.<?php...........na
baae0 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
bab00 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 65 6c 70 e\Helper;.........interface.Help
bab20 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 erInterface.{........public.func
bab40 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c tion.setHelperSet(HelperSet.$hel
bab60 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 perSet.=.null);.........public.f
bab80 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a unction.getHelperSet();.........
baba0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 public.function.getName();.}.<?p
babc0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
babe0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 omponent\Console\Helper;..use.Sy
bac00 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f mfony\Component\Console\Output\O
bac20 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 49 6e 76 61 6c 69 64 41 72 67 75 6d utputInterface;.use.InvalidArgum
bac40 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 48 entException;.......class.TableH
bac60 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 4c 41 59 elper.extends.Helper.{.const.LAY
bac80 4f 55 54 5f 44 45 46 41 55 4c 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 42 4f OUT_DEFAULT.=.0;.const.LAYOUT_BO
baca0 52 44 45 52 4c 45 53 53 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 68 65 61 RDERLESS.=.1;.......private.$hea
bacc0 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 ders.=.array();.......private.$r
bace0 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 70 61 64 64 69 ows.=.array();....private.$paddi
bad00 6e 67 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 ngChar;.private.$horizontalBorde
bad20 72 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 rChar;.private.$verticalBorderCh
bad40 61 72 3b 0a 70 72 69 76 61 74 65 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 70 72 69 76 61 ar;.private.$crossingChar;.priva
bad60 74 65 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 63 te.$cellHeaderFormat;.private.$c
bad80 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 62 6f 72 64 65 72 46 6f 72 ellRowFormat;.private.$borderFor
bada0 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 70 61 64 54 79 70 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 mat;.private.$padType;.......pri
badc0 76 61 74 65 20 24 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a vate.$columnWidths.=.array();...
bade0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 0a 0a ....private.$numberOfColumns;...
bae00 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ..private.$output;..public.funct
bae20 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4c 61 ion.__construct().{.$this->setLa
bae40 79 6f 75 74 28 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 29 3b 0a 7d 0a 0a 0a yout(self::LAYOUT_DEFAULT);.}...
bae60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 61 79 6f 75 74 28 ......public.function.setLayout(
bae80 24 6c 61 79 6f 75 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6c 61 79 6f 75 74 29 20 7b 0a 63 61 $layout).{.switch.($layout).{.ca
baea0 73 65 20 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 53 53 3a 0a 24 74 68 69 se.self::LAYOUT_BORDERLESS:.$thi
baec0 73 0a 2d 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 s.->setPaddingChar('.').->setHor
baee0 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 3d 27 29 0a 2d 3e 73 65 74 56 65 72 74 izontalBorderChar('=').->setVert
baf00 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e icalBorderChar('.').->setCrossin
baf20 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 gChar('.').->setCellHeaderFormat
baf40 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 ('<info>%s</info>').->setCellRow
baf60 46 6f 72 6d 61 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 0a Format('<comment>%s</comment>').
baf80 2d 3e 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 ->setBorderFormat('%s').->setPad
bafa0 54 79 70 65 28 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 Type(STR_PAD_RIGHT).;.break;..ca
bafc0 73 65 20 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 3a 0a 24 74 68 69 73 0a 2d se.self::LAYOUT_DEFAULT:.$this.-
bafe0 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f >setPaddingChar('.').->setHorizo
bb000 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 2d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 ntalBorderChar('-').->setVertica
bb020 6c 42 6f 72 64 65 72 43 68 61 72 28 27 7c 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 lBorderChar('|').->setCrossingCh
bb040 61 72 28 27 2b 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 3c ar('+').->setCellHeaderFormat('<
bb060 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 info>%s</info>').->setCellRowFor
bb080 6d 61 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 0a 2d 3e 73 mat('<comment>%s</comment>').->s
bb0a0 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 54 79 70 etBorderFormat('%s').->setPadTyp
bb0c0 65 28 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 e(STR_PAD_RIGHT).;.break;..defau
bb0e0 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 lt:.throw.new.InvalidArgumentExc
bb100 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 61 62 6c 65 20 6c 61 eption(sprintf('Invalid.table.la
bb120 79 6f 75 74 20 22 25 73 22 2e 27 2c 20 24 6c 61 79 6f 75 74 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d yout."%s".',.$layout));.break;.}
bb140 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ;..return.$this;.}..public.funct
bb160 69 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b ion.setHeaders(array.$headers).{
bb180 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 .$this->headers.=.array_values($
bb1a0 68 65 61 64 65 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c headers);..return.$this;.}..publ
bb1c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 ic.function.setRows(array.$rows)
bb1e0 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 .{.$this->rows.=.array();..retur
bb200 6e 20 24 74 68 69 73 2d 3e 61 64 64 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 7d 0a 0a 70 75 62 6c n.$this->addRows($rows);.}..publ
bb220 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 ic.function.addRows(array.$rows)
bb240 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 .{.foreach.($rows.as.$row).{.$th
bb260 69 73 2d 3e 61 64 64 52 6f 77 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->addRow($row);.}..return.$thi
bb280 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 61 72 72 s;.}..public.function.addRow(arr
bb2a0 61 79 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 61 72 72 61 79 ay.$row).{.$this->rows[].=.array
bb2c0 5f 76 61 6c 75 65 73 28 24 72 6f 77 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a _values($row);..return.$this;.}.
bb2e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d 6e 2c .public.function.setRow($column,
bb300 20 61 72 72 61 79 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 63 6f 6c 75 .array.$row).{.$this->rows[$colu
bb320 6d 6e 5d 20 3d 20 24 72 6f 77 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a mn].=.$row;..return.$this;.}....
bb340 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 64 69 6e 67 43 .....public.function.setPaddingC
bb360 68 61 72 28 24 70 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 har($paddingChar).{.$this->paddi
bb380 6e 67 43 68 61 72 20 3d 20 24 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 ngChar.=.$paddingChar;..return.$
bb3a0 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 this;.}.........public.function.
bb3c0 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e setHorizontalBorderChar($horizon
bb3e0 74 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 talBorderChar).{.$this->horizont
bb400 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 alBorderChar.=.$horizontalBorder
bb420 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 Char;..return.$this;.}.........p
bb440 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 ublic.function.setVerticalBorder
bb460 43 68 61 72 28 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 Char($verticalBorderChar).{.$thi
bb480 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 76 65 72 74 69 63 61 s->verticalBorderChar.=.$vertica
bb4a0 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a lBorderChar;..return.$this;.}...
bb4c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e ......public.function.setCrossin
bb4e0 67 43 68 61 72 28 24 63 72 6f 73 73 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 72 gChar($crossingChar).{.$this->cr
bb500 6f 73 73 69 6e 67 43 68 61 72 20 3d 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 ossingChar.=.$crossingChar;..ret
bb520 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this;.}.........public.func
bb540 74 69 6f 6e 20 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 tion.setCellHeaderFormat($cellHe
bb560 61 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 aderFormat).{.$this->cellHeaderF
bb580 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 ormat.=.$cellHeaderFormat;..retu
bb5a0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.$this;.}.........public.funct
bb5c0 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 46 6f 72 ion.setCellRowFormat($cellRowFor
bb5e0 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 24 63 mat).{.$this->cellRowFormat.=.$c
bb600 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a ellRowFormat;..return.$this;.}..
bb620 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 6f 72 64 65 72 .......public.function.setBorder
bb640 46 6f 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 Format($borderFormat).{.$this->b
bb660 6f 72 64 65 72 46 6f 72 6d 61 74 20 3d 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 orderFormat.=.$borderFormat;..re
bb680 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e turn.$this;.}.........public.fun
bb6a0 63 74 69 6f 6e 20 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 ction.setPadType($padType).{.$th
bb6c0 69 73 2d 3e 70 61 64 54 79 70 65 20 3d 20 24 70 61 64 54 79 70 65 3b 0a 0a 72 65 74 75 72 6e 20 is->padType.=.$padType;..return.
bb6e0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this;.}................public.f
bb700 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 unction.render(OutputInterface.$
bb720 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 output).{.$this->output.=.$outpu
bb740 74 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b t;..$this->renderRowSeparator();
bb760 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 .$this->renderRow($this->headers
bb780 2c 20 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 3b 0a 69 66 20 28 ,.$this->cellHeaderFormat);.if.(
bb7a0 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 29 20 7b 0a 24 74 68 69 73 2d !empty($this->headers)).{.$this-
bb7c0 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 >renderRowSeparator();.}.foreach
bb7e0 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 73 2d 3e .($this->rows.as.$row).{.$this->
bb800 72 65 6e 64 65 72 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f renderRow($row,.$this->cellRowFo
bb820 72 6d 61 74 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 rmat);.}.if.(!empty($this->rows)
bb840 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 3b ).{.$this->renderRowSeparator();
bb860 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 .}..$this->cleanup();.}.......pr
bb880 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f ivate.function.renderRowSeparato
bb8a0 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e r().{.if.(0.===.$count.=.$this->
bb8c0 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a getNumberOfColumns()).{.return;.
bb8e0 7d 0a 0a 24 6d 61 72 6b 75 70 20 3d 20 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 }..$markup.=.$this->crossingChar
bb900 3b 0a 66 6f 72 20 28 24 63 6f 6c 75 6d 6e 20 3d 20 30 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 ;.for.($column.=.0;.$column.<.$c
bb920 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d 6e 2b 2b 29 20 7b 0a 24 6d 61 72 6b 75 70 20 2e 3d 20 73 74 ount;.$column++).{.$markup..=.st
bb940 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 r_repeat($this->horizontalBorder
bb960 43 68 61 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c Char,.$this->getColumnWidth($col
bb980 75 6d 6e 29 29 0a 2e 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 0a 3b 0a 7d 0a 0a umn))..$this->crossingChar.;.}..
bb9a0 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 24 $this->output->writeln(sprintf($
bb9c0 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 2c 20 24 6d 61 72 6b 75 70 29 29 3b 0a 7d this->borderFormat,.$markup));.}
bb9e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 6f 6c 75 .....private.function.renderColu
bba00 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 mnSeparator().{.$this->output->w
bba20 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 rite(sprintf($this->borderFormat
bba40 2c 20 24 74 68 69 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 29 3b 0a 7d ,.$this->verticalBorderChar));.}
bba60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 ..........private.function.rende
bba80 72 52 6f 77 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a rRow(array.$row,.$cellFormat).{.
bbaa0 69 66 20 28 65 6d 70 74 79 28 24 72 6f 77 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 if.(empty($row)).{.return;.}..$t
bbac0 68 69 73 2d 3e 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 66 6f his->renderColumnSeparator();.fo
bbae0 72 20 28 24 63 6f 6c 75 6d 6e 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e r.($column.=.0,.$count.=.$this->
bbb00 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 getNumberOfColumns();.$column.<.
bbb20 24 63 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d 6e 2b 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 $count;.$column++).{.$this->rend
bbb40 65 72 43 65 6c 6c 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 erCell($row,.$column,.$cellForma
bbb60 74 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 t);.$this->renderColumnSeparator
bbb80 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 ();.}.$this->output->writeln('')
bbba0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e ;.}.........private.function.ren
bbbc0 64 65 72 43 65 6c 6c 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 derCell(array.$row,.$column,.$ce
bbbe0 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 24 63 65 6c 6c 20 3d 20 69 73 73 65 74 28 24 72 6f 77 5b 24 llFormat).{.$cell.=.isset($row[$
bbc00 63 6f 6c 75 6d 6e 5d 29 20 3f 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 20 3a 20 27 27 3b 0a 24 column]).?.$row[$column].:.'';.$
bbc20 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 width.=.$this->getColumnWidth($c
bbc40 6f 6c 75 6d 6e 29 3b 0a 0a 0a 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 olumn);....if.(function_exists('
bbc60 6d 62 5f 73 74 72 6c 65 6e 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 24 65 6e 63 6f 64 69 mb_strlen').&&.false.!==.$encodi
bbc80 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 63 65 6c 6c 29 29 20 ng.=.mb_detect_encoding($cell)).
bbca0 7b 0a 24 77 69 64 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 63 65 6c 6c 29 20 2d 20 6d 62 5f 73 {.$width.+=.strlen($cell).-.mb_s
bbcc0 74 72 6c 65 6e 28 24 63 65 6c 6c 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 24 74 68 69 trlen($cell,.$encoding);.}..$thi
bbce0 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 24 63 65 6c 6c 46 s->output->write(sprintf(.$cellF
bbd00 6f 72 6d 61 74 2c 0a 73 74 72 5f 70 61 64 28 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 ormat,.str_pad(.$this->paddingCh
bbd20 61 72 2e 24 63 65 6c 6c 2e 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 2c 0a 24 77 69 ar.$cell.$this->paddingChar,.$wi
bbd40 64 74 68 2c 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 2c 0a 24 74 68 69 73 2d 3e dth,.$this->paddingChar,.$this->
bbd60 70 61 64 54 79 70 65 0a 29 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 padType.).));.}.......private.fu
bbd80 6e 63 74 69 6f 6e 20 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 nction.getNumberOfColumns().{.if
bbda0 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e .(null.!==.$this->numberOfColumn
bbdc0 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d s).{.return.$this->numberOfColum
bbde0 6e 73 3b 0a 7d 0a 0a 24 63 6f 6c 75 6d 6e 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 63 6f 6c ns;.}..$columns.=.array(0);.$col
bbe00 75 6d 6e 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 3b 0a umns[].=.count($this->headers);.
bbe20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a foreach.($this->rows.as.$row).{.
bbe40 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 $columns[].=.count($row);.}..ret
bbe60 75 72 6e 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6d 61 78 urn.$this->numberOfColumns.=.max
bbe80 28 24 63 6f 6c 75 6d 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ($columns);.}.........private.fu
bbea0 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 0a 7b nction.getColumnWidth($column).{
bbec0 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 .if.(isset($this->columnWidths[$
bbee0 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e column])).{.return.$this->column
bbf00 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 20 3d 20 61 Widths[$column];.}..$lengths.=.a
bbf20 72 72 61 79 28 30 29 3b 0a 24 6c 65 6e 67 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 rray(0);.$lengths[].=.$this->get
bbf40 43 65 6c 6c 57 69 64 74 68 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 63 6f 6c 75 6d CellWidth($this->headers,.$colum
bbf60 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 n);.foreach.($this->rows.as.$row
bbf80 29 20 7b 0a 24 6c 65 6e 67 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 ).{.$lengths[].=.$this->getCellW
bbfa0 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 idth($row,.$column);.}..return.$
bbfc0 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 6d 61 this->columnWidths[$column].=.ma
bbfe0 78 28 24 6c 65 6e 67 74 68 73 29 20 2b 20 32 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 x($lengths).+.2;.}..........priv
bc000 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 57 69 64 74 68 28 61 72 72 61 79 20 ate.function.getCellWidth(array.
bc020 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 0a 7b 0a 69 66 20 28 24 63 6f 6c 75 6d 6e 20 3c 20 30 $row,.$column).{.if.($column.<.0
bc040 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 77 5b ).{.return.0;.}..if.(isset($row[
bc060 24 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 $column])).{.return.$this->strle
bc080 6e 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 n($row[$column]);.}..return.$thi
bc0a0 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 20 2d 20 s->getCellWidth($row,.$column.-.
bc0c0 31 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 1);.}.....private.function.clean
bc0e0 75 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 up().{.$this->columnWidths.=.arr
bc100 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6e ay();.$this->numberOfColumns.=.n
bc120 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 ull;.}.....public.function.getNa
bc140 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 74 61 62 6c 65 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 me().{.return.'table';.}.}.<?php
bc160 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
bc180 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 ponent\Console\Helper;..use.Symf
bc1a0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 ony\Component\Console\Descriptor
bc1c0 5c 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e \DescriptorInterface;.use.Symfon
bc1e0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4a y\Component\Console\Descriptor\J
bc200 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f sonDescriptor;.use.Symfony\Compo
bc220 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4d 61 72 6b 64 6f 77 6e nent\Console\Descriptor\Markdown
bc240 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Descriptor;.use.Symfony\Componen
bc260 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 t\Console\Descriptor\TextDescrip
bc280 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f tor;.use.Symfony\Component\Conso
bc2a0 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 le\Descriptor\XmlDescriptor;.use
bc2c0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
bc2e0 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 t\OutputInterface;.......class.D
bc300 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b escriptorHelper.extends.Helper.{
bc320 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 ....private.$descriptors.=.array
bc340 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ();.....public.function.__constr
bc360 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 74 78 74 27 2c 20 uct().{.$this.->register('txt',.
bc380 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 new.TextDescriptor()).->register
bc3a0 28 27 78 6d 6c 27 2c 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 ('xml',.new.XmlDescriptor()).->r
bc3c0 65 67 69 73 74 65 72 28 27 6a 73 6f 6e 27 2c 20 6e 65 77 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 egister('json',.new.JsonDescript
bc3e0 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6d 64 27 2c 20 6e 65 77 20 4d 61 72 6b 64 or()).->register('md',.new.Markd
bc400 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ownDescriptor()).;.}..........pu
bc420 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 blic.function.describe(OutputInt
bc440 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 24 66 6f 72 6d 61 74 erface.$output,.$object,.$format
bc460 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 2c 20 24 6e 61 6d 65 73 70 61 63 .=.null,.$raw.=.false,.$namespac
bc480 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 72 61 e.=.null).{.$options.=.array('ra
bc4a0 77 5f 74 65 78 74 27 20 3d 3e 20 24 72 61 77 2c 20 27 66 6f 72 6d 61 74 27 20 3d 3e 20 24 66 6f w_text'.=>.$raw,.'format'.=>.$fo
bc4c0 72 6d 61 74 20 3f 3a 20 27 74 78 74 27 2c 20 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 6e rmat.?:.'txt',.'namespace'.=>.$n
bc4e0 61 6d 65 73 70 61 63 65 29 3b 0a 24 74 79 70 65 20 3d 20 21 24 72 61 77 20 26 26 20 27 74 78 74 amespace);.$type.=.!$raw.&&.'txt
bc500 27 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 20 3f 20 4f 75 74 70 75 '.===.$options['format'].?.Outpu
bc520 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3a 20 4f 75 74 70 tInterface::OUTPUT_NORMAL.:.Outp
bc540 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3b 0a 0a 69 66 20 28 21 69 utInterface::OUTPUT_RAW;..if.(!i
bc560 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 sset($this->descriptors[$options
bc580 5b 27 66 6f 72 6d 61 74 27 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ['format']])).{.throw.new.\Inval
bc5a0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 73 idArgumentException(sprintf('Uns
bc5c0 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 20 22 25 73 22 2e 27 2c 20 24 6f 70 74 69 6f 6e 73 upported.format."%s".',.$options
bc5e0 5b 27 66 6f 72 6d 61 74 27 5d 29 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 24 ['format']));.}..$descriptor.=.$
bc600 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d this->descriptors[$options['form
bc620 61 74 27 5d 5d 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 65 73 63 72 69 at']];..$output->writeln($descri
bc640 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 ptor->describe($object,.$options
bc660 29 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ),.$type);.}..........public.fun
bc680 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 66 6f 72 6d 61 74 2c 20 44 65 73 63 72 69 70 74 ction.register($format,.Descript
bc6a0 6f 72 49 6e 74 65 72 66 61 63 65 20 24 64 65 73 63 72 69 70 74 6f 72 29 0a 7b 0a 24 74 68 69 73 orInterface.$descriptor).{.$this
bc6c0 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 66 6f 72 6d 61 74 5d 20 3d 20 24 64 65 73 63 72 69 ->descriptors[$format].=.$descri
bc6e0 70 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ptor;..return.$this;.}.....publi
bc700 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 c.function.getName().{.return.'d
bc720 65 73 63 72 69 70 74 6f 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a escriptor';.}.}.<?php...........
bc740 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 namespace.Symfony\Component\Cons
bc760 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ole\Helper;..use.Symfony\Compone
bc780 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 nt\Console\Formatter\OutputForma
bc7a0 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 tter;.......class.FormatterHelpe
bc7c0 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c r.extends.Helper.{..........publ
bc7e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 24 73 65 63 74 69 ic.function.formatSection($secti
bc800 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e 66 6f 27 29 0a 7b on,.$message,.$style.=.'info').{
bc820 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c 2f 25 73 3e 20 25 .return.sprintf('<%s>[%s]</%s>.%
bc840 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 6c 65 2c 20 24 6d s',.$style,.$section,.$style,.$m
bc860 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 essage);.}...........public.func
bc880 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 2c 20 24 73 74 79 tion.formatBlock($messages,.$sty
bc8a0 6c 65 2c 20 24 6c 61 72 67 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 le,.$large.=.false).{.$messages.
bc8c0 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 24 6c 65 6e 20 3d 20 30 3b 0a =.(array).$messages;..$len.=.0;.
bc8e0 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 $lines.=.array();.foreach.($mess
bc900 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 4f ages.as.$message).{.$message.=.O
bc920 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 70 65 28 24 6d 65 73 73 61 67 65 29 utputFormatter::escape($message)
bc940 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 72 67 65 20 3f 20 27 20 ;.$lines[].=.sprintf($large.?.'.
bc960 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 65 6e .%s..'.:.'.%s.',.$message);.$len
bc980 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 20 2b .=.max($this->strlen($message).+
bc9a0 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 6d 65 .($large.?.4.:.2),.$len);.}..$me
bc9c0 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 ssages.=.$large.?.array(str_repe
bc9e0 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 at('.',.$len)).:.array();.foreac
bca00 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b h.($lines.as.$line).{.$messages[
bca20 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d ].=.$line.str_repeat('.',.$len.-
bca40 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 69 66 20 28 24 6c .$this->strlen($line));.}.if.($l
bca60 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 arge).{.$messages[].=.str_repeat
bca80 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 ('.',.$len);.}..foreach.($messag
bcaa0 65 73 20 61 73 20 26 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 es.as.&$message).{.$message.=.sp
bcac0 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 rintf('<%s>%s</%s>',.$style,.$me
bcae0 73 73 61 67 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 ssage,.$style);.}..return.implod
bcb00 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e("\n",.$messages);.}.....public
bcb20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 66 6f .function.getName().{.return.'fo
bcb40 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 rmatter';.}.}.<?php...........na
bcb60 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
bcb80 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 e\Helper;..use.Symfony\Component
bcba0 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a \Console\Command\Command;.......
bcbc0 63 6c 61 73 73 20 48 65 6c 70 65 72 53 65 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 class.HelperSet.{.private.$helpe
bcbe0 72 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rs;.private.$command;.......publ
bcc00 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 68 ic.function.__construct(array.$h
bcc20 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 elpers.=.array()).{.$this->helpe
bcc40 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 rs.=.array();.foreach.($helpers.
bcc60 61 73 20 24 61 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 as.$alias.=>.$helper).{.$this->s
bcc80 65 74 28 24 68 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c et($helper,.is_int($alias).?.nul
bcca0 6c 20 3a 20 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 l.:.$alias);.}.}........public.f
bccc0 75 6e 63 74 69 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c unction.set(HelperInterface.$hel
bcce0 70 65 72 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c per,.$alias.=.null).{.$this->hel
bcd00 70 65 72 73 5b 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 pers[$helper->getName()].=.$help
bcd20 65 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 er;.if.(null.!==.$alias).{.$this
bcd40 2d 3e 68 65 6c 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a ->helpers[$alias].=.$helper;.}..
bcd60 24 68 65 6c 70 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a $helper->setHelperSet($this);.}.
bcd80 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d ........public.function.has($nam
bcda0 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 e).{.return.isset($this->helpers
bcdc0 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e [$name]);.}...........public.fun
bcde0 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 ction.get($name).{.if.(!$this->h
bce00 61 73 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 as($name)).{.throw.new.\InvalidA
bce20 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 68 65 rgumentException(sprintf('The.he
bce40 6c 70 65 72 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d lper."%s".is.not.defined.',.$nam
bce60 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e e));.}..return.$this->helpers[$n
bce80 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ame];.}.......public.function.se
bcea0 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c tCommand(Command.$command.=.null
bcec0 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d ).{.$this->command.=.$command;.}
bcee0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e .......public.function.getComman
bcf00 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d d().{.return.$this->command;.}.}
bcf20 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
bcf40 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 ny\Component\Console\Helper;..us
bcf60 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
bcf80 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ut\OutputInterface;.use.Symfony\
bcfa0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 Component\Console\Formatter\Outp
bcfc0 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 utFormatterStyle;.......class.Di
bcfe0 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 alogHelper.extends.Helper.{.priv
bd000 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 ate.$inputStream;.private.static
bd020 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a .$shell;.private.static.$stty;..
bd040 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ...............public.function.s
bd060 65 6c 65 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 elect(OutputInterface.$output,.$
bd080 71 75 65 73 74 69 6f 6e 2c 20 24 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e question,.$choices,.$default.=.n
bd0a0 75 6c 6c 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 65 72 72 6f 72 4d 65 ull,.$attempts.=.false,.$errorMe
bd0c0 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 27 2c ssage.=.'Value."%s".is.invalid',
bd0e0 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 77 69 64 74 68 20 .$multiselect.=.false).{.$width.
bd100 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 61 79 5f =.max(array_map('strlen',.array_
bd120 6b 65 79 73 28 24 63 68 6f 69 63 65 73 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 keys($choices)));..$messages.=.(
bd140 61 72 72 61 79 29 20 24 71 75 65 73 74 69 6f 6e 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 6f 69 array).$question;.foreach.($choi
bd160 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 ces.as.$key.=>.$value).{.$messag
bd180 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 es[].=.sprintf("..[<info>%-${wid
bd1a0 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b th}s</info>].%s",.$key,.$value);
bd1c0 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b .}..$output->writeln($messages);
bd1e0 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 ..$result.=.$this->askAndValidat
bd200 65 28 24 6f 75 74 70 75 74 2c 20 27 3e 20 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 69 63 6b e($output,.'>.',.function.($pick
bd220 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 ed).use.($choices,.$errorMessage
bd240 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 24 73 65 6c 65 63 74 65 64 43 68 6f ,.$multiselect).{...$selectedCho
bd260 69 63 65 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 22 2c 20 24 70 69 63 ices.=.str_replace(".",."",.$pic
bd280 6b 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 69 66 20 ked);..if.($multiselect).{...if.
bd2a0 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 28 3f (!preg_match('/^[a-zA-Z0-9_-]+(?
bd2c0 3a 2c 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f 27 2c 20 24 73 65 6c 65 63 74 65 64 :,[a-zA-Z0-9_-]+)*$/',.$selected
bd2e0 43 68 6f 69 63 65 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 Choices,.$matches)).{.throw.new.
bd300 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
bd320 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 70 69 63 6b 65 64 29 29 3b 0a 7d 0a 24 73 f($errorMessage,.$picked));.}.$s
bd340 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 2c 20 24 73 electedChoices.=.explode(",",.$s
bd360 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6c 65 63 electedChoices);.}.else.{.$selec
bd380 74 65 64 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 70 69 63 6b 65 64 29 3b 0a 7d 0a 0a tedChoices.=.array($picked);.}..
bd3a0 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a $multiselectChoices.=.array();..
bd3c0 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 61 73 20 24 76 61 foreach.($selectedChoices.as.$va
bd3e0 6c 75 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 68 6f 69 63 65 73 5b 24 76 61 6c 75 65 lue).{.if.(empty($choices[$value
bd400 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ])).{.throw.new.\InvalidArgument
bd420 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c Exception(sprintf($errorMessage,
bd440 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 61 72 72 61 79 5f 70 75 73 68 28 24 6d 75 6c 74 69 73 65 .$value));.}.array_push($multise
bd460 6c 65 63 74 43 68 6f 69 63 65 73 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 lectChoices,.$value);.}..if.($mu
bd480 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 ltiselect).{.return.$multiselect
bd4a0 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 69 63 6b 65 64 3b 0a 7d 2c 20 24 Choices;.}..return.$picked;.},.$
bd4c0 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 attempts,.$default);..return.$re
bd4e0 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 sult;.}..............public.func
bd500 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 tion.ask(OutputInterface.$output
bd520 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 ,.$question,.$default.=.null,.ar
bd540 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 ray.$autocomplete.=.null).{.$out
bd560 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 put->write($question);..$inputSt
bd580 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 ream.=.$this->inputStream.?:.STD
bd5a0 49 4e 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 IN;..if.(null.===.$autocomplete.
bd5c0 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b ||.!$this->hasSttyAvailable()).{
bd5e0 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 .$ret.=.fgets($inputStream,.4096
bd600 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e );.if.(false.===.$ret).{.throw.n
bd620 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b ew.\RuntimeException('Aborted');
bd640 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 .}.$ret.=.trim($ret);.}.else.{.$
bd660 72 65 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d ret.=.'';..$i.=.0;.$ofs.=.-1;.$m
bd680 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 atches.=.$autocomplete;.$numMatc
bd6a0 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 hes.=.count($matches);..$sttyMod
bd6c0 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 e.=.shell_exec('stty.-g');....sh
bd6e0 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a ell_exec('stty.-icanon.-echo');.
bd700 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 ...$output->getFormatter()->setS
bd720 74 79 6c 65 28 27 68 6c 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 tyle('hl',.new.OutputFormatterSt
bd740 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 77 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 yle('black',.'white'));....while
bd760 20 28 21 66 65 6f 66 28 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 .(!feof($inputStream)).{.$c.=.fr
bd780 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 ead($inputStream,.1);....if.("\1
bd7a0 37 37 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 77".===.$c).{.if.(0.===.$numMatc
bd7c0 68 65 73 20 26 26 20 30 20 21 3d 3d 20 24 69 29 20 7b 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 hes.&&.0.!==.$i).{.$i--;...$outp
bd7e0 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 ut->write("\033[1D");.}..if.($i.
bd800 3d 3d 3d 20 30 29 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 ===.0).{.$ofs.=.-1;.$matches.=.$
bd820 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e autocomplete;.$numMatches.=.coun
bd840 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 t($matches);.}.else.{.$numMatche
bd860 73 20 3d 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 s.=.0;.}....$ret.=.substr($ret,.
bd880 30 2c 20 24 69 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 0,.$i);.}.elseif.("\033".===.$c)
bd8a0 20 7b 20 0a 20 24 63 20 2e 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 .{...$c..=.fread($inputStream,.2
bd8c0 29 3b 0a 0a 0a 20 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d );....if.('A'.===.$c[2].||.'B'.=
bd8e0 3d 3d 20 24 63 5b 32 5d 29 20 7b 0a 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 ==.$c[2]).{.if.('A'.===.$c[2].&&
bd900 20 2d 31 20 3d 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 .-1.===.$ofs).{.$ofs.=.0;.}..if.
bd920 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a (0.===.$numMatches).{.continue;.
bd940 7d 0a 0a 24 6f 66 73 20 2b 3d 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 }..$ofs.+=.('A'.===.$c[2]).?.-1.
bd960 3a 20 31 3b 0a 24 6f 66 73 20 3d 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 :.1;.$ofs.=.($numMatches.+.$ofs)
bd980 20 25 20 24 6e 75 6d 4d 61 74 63 68 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 .%.$numMatches;.}.}.elseif.(ord(
bd9a0 24 63 29 20 3c 20 33 32 29 20 7b 0a 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 $c).<.32).{.if.("\t".===.$c.||."
bd9c0 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 \n".===.$c).{.if.($numMatches.>.
bd9e0 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 0.&&.-1.!==.$ofs).{.$ret.=.$matc
bda00 68 65 73 5b 24 6f 66 73 5d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 hes[$ofs];...$output->write(subs
bda20 74 72 28 24 72 65 74 2c 20 24 69 29 29 3b 0a 24 69 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 tr($ret,.$i));.$i.=.strlen($ret)
bda40 3b 0a 7d 0a 0a 69 66 20 28 22 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d ;.}..if.("\n".===.$c).{.$output-
bda60 3e 77 72 69 74 65 28 24 63 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 >write($c);.break;.}..$numMatche
bda80 73 20 3d 20 30 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 s.=.0;.}..continue;.}.else.{.$ou
bdaa0 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 3b 0a 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b tput->write($c);.$ret..=.$c;.$i+
bdac0 2b 3b 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a +;..$numMatches.=.0;.$ofs.=.0;..
bdae0 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 foreach.($autocomplete.as.$value
bdb00 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 ).{...if.(0.===.strpos($value,.$
bdb20 72 65 74 29 20 26 26 20 24 69 20 21 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b ret).&&.$i.!==.strlen($value)).{
bdb40 0a 24 6d 61 74 63 68 65 73 5b 24 6e 75 6d 4d 61 74 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 .$matches[$numMatches++].=.$valu
bdb60 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 e;.}.}.}....$output->write("\033
bdb80 5b 4b 22 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 [K");..if.($numMatches.>.0.&&.-1
bdba0 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c .!==.$ofs).{...$output->write("\
bdbc0 30 33 33 37 22 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 0337");...$output->write('<hl>'.
bdbe0 73 75 62 73 74 72 28 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c substr($matches[$ofs],.$i).'</hl
bdc00 3e 27 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a >');...$output->write("\0338");.
bdc20 7d 0a 7d 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 }.}....shell_exec(sprintf('stty.
bdc40 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c %s',.$sttyMode));.}..return.strl
bdc60 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a en($ret).>.0.?.$ret.:.$default;.
bdc80 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 }.............public.function.as
bdca0 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f kConfirmation(OutputInterface.$o
bdcc0 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 utput,.$question,.$default.=.tru
bdce0 65 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d 20 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 e).{.$answer.=.'z';.while.($answ
bdd00 65 72 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 er.&&.!in_array(strtolower($answ
bdd20 65 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 27 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 er[0]),.array('y',.'n'))).{.$ans
bdd40 77 65 72 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 wer.=.$this->ask($output,.$quest
bdd60 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 ion);.}..if.(false.===.$default)
bdd80 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 .{.return.$answer.&&.'y'.==.strt
bdda0 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 olower($answer[0]);.}..return.!$
bddc0 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 answer.||.'y'.==.strtolower($ans
bdde0 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 wer[0]);.}.............public.fu
bde00 6e 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 nction.askHiddenResponse(OutputI
bde20 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 nterface.$output,.$question,.$fa
bde40 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 llback.=.true).{.if.(defined('PH
bde60 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 P_WINDOWS_VERSION_BUILD')).{.$ex
bde80 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 52 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 e.=.__DIR__.'/../Resources/bin/h
bdea0 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 iddeninput.exe';....if.('phar:'.
bdec0 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 ===.substr(__FILE__,.0,.5)).{.$t
bdee0 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 mpExe.=.sys_get_temp_dir().'/hid
bdf00 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 deninput.exe';.copy($exe,.$tmpEx
bdf20 65 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e e);.$exe.=.$tmpExe;.}..$output->
bdf40 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d write($question);.$value.=.rtrim
bdf60 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 (shell_exec($exe));.$output->wri
bdf80 74 65 6c 6e 28 27 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b teln('');..if.(isset($tmpExe)).{
bdfa0 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c .unlink($tmpExe);.}..return.$val
bdfc0 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 ue;.}..if.($this->hasSttyAvailab
bdfe0 6c 65 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e le()).{.$output->write($question
be000 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 );..$sttyMode.=.shell_exec('stty
be020 20 2d 67 27 29 3b 0a 0a 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 68 6f 27 29 .-g');..shell_exec('stty.-echo')
be040 3b 0a 24 76 61 6c 75 65 20 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 ;.$value.=.fgets($this->inputStr
be060 65 61 6d 20 3f 3a 20 53 54 44 49 4e 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c 5f 65 78 65 63 28 eam.?:.STDIN,.4096);.shell_exec(
be080 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a sprintf('stty.%s',.$sttyMode));.
be0a0 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e .if.(false.===.$value).{.throw.n
be0c0 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b ew.\RuntimeException('Aborted');
be0e0 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 .}..$value.=.trim($value);.$outp
be100 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b ut->writeln('');..return.$value;
be120 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 .}..if.(false.!==.$shell.=.$this
be140 2d 3e 67 65 74 53 68 65 6c 6c 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 ->getShell()).{.$output->write($
be160 71 75 65 73 74 69 6f 6e 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d question);.$readCmd.=.$shell.===
be180 20 27 63 73 68 27 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a .'csh'.?.'set.mypassword.=.$<'.:
be1a0 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 .'read.-r.mypassword';.$command.
be1c0 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 =.sprintf("/usr/bin/env.%s.-c.'s
be1e0 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c tty.-echo;.%s;.stty.echo;.echo.\
be200 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 $mypassword'",.$shell,.$readCmd)
be220 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d ;.$value.=.rtrim(shell_exec($com
be240 6d 61 6e 64 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 mand));.$output->writeln('');..r
be260 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 66 61 6c 6c 62 61 63 6b 29 20 eturn.$value;.}..if.($fallback).
be280 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 {.return.$this->ask($output,.$qu
be2a0 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 estion);.}..throw.new.\RuntimeEx
be2c0 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 ception('Unable.to.hide.the.resp
be2e0 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 onse');.}....................pub
be300 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 4f 75 74 70 lic.function.askAndValidate(Outp
be320 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 utInterface.$output,.$question,.
be340 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 $validator,.$attempts.=.false,.$
be360 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c default.=.null,.array.$autocompl
be380 65 74 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 ete.=.null).{.$that.=.$this;..$i
be3a0 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 75 73 65 20 28 24 6f 75 nterviewer.=.function().use.($ou
be3c0 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f tput,.$question,.$default,.$auto
be3e0 63 6f 6d 70 6c 65 74 65 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d complete,.$that).{.return.$that-
be400 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c >ask($output,.$question,.$defaul
be420 74 2c 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 t,.$autocomplete);.};..return.$t
be440 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 his->validateAttempts($interview
be460 65 72 2c 20 24 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 er,.$output,.$validator,.$attemp
be480 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ts);.}.....................publi
be4a0 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 c.function.askHiddenResponseAndV
be4c0 61 6c 69 64 61 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c alidate(OutputInterface.$output,
be4e0 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 .$question,.$validator,.$attempt
be500 73 20 3d 20 66 61 6c 73 65 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 s.=.false,.$fallback.=.true).{.$
be520 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 that.=.$this;..$interviewer.=.fu
be540 6e 63 74 69 6f 6e 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e nction().use.($output,.$question
be560 2c 20 24 66 61 6c 6c 62 61 63 6b 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 ,.$fallback,.$that).{.return.$th
be580 61 74 2d 3e 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 at->askHiddenResponse($output,.$
be5a0 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 61 63 6b 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e question,.$fallback);.};..return
be5c0 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 .$this->validateAttempts($interv
be5e0 69 65 77 65 72 2c 20 24 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 iewer,.$output,.$validator,.$att
be600 65 6d 70 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f empts);.}.........public.functio
be620 6e 20 73 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 n.setInputStream($stream).{.$thi
be640 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a s->inputStream.=.$stream;.}.....
be660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d ..public.function.getInputStream
be680 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a ().{.return.$this->inputStream;.
be6a0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a }.....public.function.getName().
be6c0 7b 0a 72 65 74 75 72 6e 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 {.return.'dialog';.}.......priva
be6e0 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c te.function.getShell().{.if.(nul
be700 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c l.!==.self::$shell).{.return.sel
be720 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c f::$shell;.}..self::$shell.=.fal
be740 73 65 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 se;..if.(file_exists('/usr/bin/e
be760 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 nv')).{...$test.=."/usr/bin/env.
be780 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 %s.-c.'echo.OK'.2>./dev/null";.f
be7a0 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 oreach.(array('bash',.'zsh',.'ks
be7c0 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d h',.'csh').as.$sh).{.if.('OK'.==
be7e0 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 =.rtrim(shell_exec(sprintf($test
be800 2c 20 24 73 68 29 29 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a ,.$sh)))).{.self::$shell.=.$sh;.
be820 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c break;.}.}.}..return.self::$shel
be840 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 l;.}..private.function.hasSttyAv
be860 61 69 6c 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 ailable().{.if.(null.!==.self::$
be880 73 74 74 79 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 stty).{.return.self::$stty;.}..e
be8a0 78 65 63 28 27 73 74 74 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 63 xec('stty.2>&1',.$output,.$exitc
be8c0 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 ode);..return.self::$stty.=.$exi
be8e0 74 63 6f 64 65 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 tcode.===.0;.}..............priv
be900 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 ate.function.validateAttempts($i
be920 6e 74 65 72 76 69 65 77 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 nterviewer,.OutputInterface.$out
be940 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 put,.$validator,.$attempts).{.$e
be960 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 rror.=.null;.while.(false.===.$a
be980 74 74 65 6d 70 74 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 ttempts.||.$attempts--).{.if.(nu
be9a0 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c ll.!==.$error).{.$output->writel
be9c0 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f n($this->getHelperSet()->get('fo
be9e0 72 6d 61 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 rmatter')->formatBlock($error->g
bea00 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b etMessage(),.'error'));.}..try.{
bea20 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f .return.call_user_func($validato
bea40 72 2c 20 24 69 6e 74 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 r,.$interviewer());.}.catch.(\Ex
bea60 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 ception.$error).{.}.}..throw.$er
bea80 72 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ror;.}.}.<?php...........namespa
beaa0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c ce.Symfony\Component\Console\Hel
beac0 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 48 65 6c 70 65 72 per;.......abstract.class.Helper
beae0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 .implements.HelperInterface.{.pr
beb00 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 0a otected.$helperSet.=.null;......
beb20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 .public.function.setHelperSet(He
beb40 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 lperSet.$helperSet.=.null).{.$th
beb60 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a is->helperSet.=.$helperSet;.}...
beb80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 ....public.function.getHelperSet
beba0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a ().{.return.$this->helperSet;.}.
bebc0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 ........protected.function.strle
bebe0 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 n($string).{.if.(!function_exist
bec00 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 s('mb_strlen')).{.return.strlen(
bec20 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f $string);.}..if.(false.===.$enco
bec40 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e ding.=.mb_detect_encoding($strin
bec60 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a g)).{.return.strlen($string);.}.
bec80 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f .return.mb_strlen($string,.$enco
beca0 64 69 6e 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ding);.}.}.<?php...........names
becc0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 pace.Symfony\Component\Console\H
bece0 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f elper;..use.Symfony\Component\Co
bed00 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a nsole\Output\OutputInterface;...
bed20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 .....class.ProgressHelper.extend
bed40 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 s.Helper.{.const.FORMAT_QUIET.=.
bed60 27 20 25 70 65 72 63 65 6e 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d '.%percent%%';.const.FORMAT_NORM
bed80 41 4c 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 AL.=.'.%current%/%max%.[%bar%].%
beda0 70 65 72 63 65 6e 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 percent%%';.const.FORMAT_VERBOSE
bedc0 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 .=.'.%current%/%max%.[%bar%].%pe
bede0 72 63 65 6e 74 25 25 20 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e rcent%%.Elapsed:.%elapsed%';.con
bee00 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 st.FORMAT_QUIET_NOMAX.=.'.%curre
bee20 6e 74 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 nt%';.const.FORMAT_NORMAL_NOMAX.
bee40 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f =.'.%current%.[%bar%]';.const.FO
bee60 52 4d 41 54 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 RMAT_VERBOSE_NOMAX.=.'.%current%
bee80 20 5b 25 62 61 72 25 5d 20 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a .[%bar%].Elapsed:.%elapsed%';...
beea0 20 70 72 69 76 61 74 65 20 24 62 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 .private.$barWidth.=.28;.private
beec0 20 24 62 61 72 43 68 61 72 20 3d 20 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 .$barChar.=.'=';.private.$emptyB
beee0 61 72 43 68 61 72 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 arChar.=.'-';.private.$progressC
bef00 68 61 72 20 3d 20 27 3e 27 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c har.=.'>';.private.$format.=.nul
bef20 6c 3b 0a 70 72 69 76 61 74 65 20 24 72 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 l;.private.$redrawFreq.=.1;..pri
bef40 76 61 74 65 20 24 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 vate.$lastMessagesLength;.privat
bef60 65 20 24 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 e.$barCharOriginal;.....private.
bef80 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b $output;.......private.$current;
befa0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 .......private.$max;.......priva
befc0 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 te.$startTime;.......private.$de
befe0 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e faultFormatVars.=.array(.'curren
bf000 74 27 2c 0a 27 6d 61 78 27 2c 0a 27 62 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c t',.'max',.'bar',.'percent',.'el
bf020 61 70 73 65 64 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 apsed',.);.......private.$format
bf040 56 61 72 73 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 Vars;.......private.$widths.=.ar
bf060 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c ray(.'current'.=>.4,.'max'.=>.4,
bf080 0a 27 70 65 72 63 65 6e 74 27 20 3d 3e 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c .'percent'.=>.3,.'elapsed'.=>.6,
bf0a0 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d .);.......private.$timeFormats.=
bf0c0 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 .array(.array(0,.'???'),.array(2
bf0e0 2c 20 27 31 20 73 65 63 27 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 ,.'1.sec'),.array(59,.'secs',.1)
bf100 2c 0a 61 72 72 61 79 28 36 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 ,.array(60,.'1.min'),.array(3600
bf120 2c 20 27 6d 69 6e 73 27 2c 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 ,.'mins',.60),.array(5400,.'1.hr
bf140 27 29 2c 0a 61 72 72 61 79 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 '),.array(86400,.'hrs',.3600),.a
bf160 72 72 61 79 28 31 32 39 36 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 rray(129600,.'1.day'),.array(604
bf180 38 30 30 2c 20 27 64 61 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 800,.'days',.86400),.);.......pu
bf1a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 blic.function.setBarWidth($size)
bf1c0 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 .{.$this->barWidth.=.(int).$size
bf1e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 ;.}.......public.function.setBar
bf200 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 Character($char).{.$this->barCha
bf220 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 r.=.$char;.}.......public.functi
bf240 6f 6e 20 73 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b on.setEmptyBarCharacter($char).{
bf260 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a .$this->emptyBarChar.=.$char;.}.
bf280 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 ......public.function.setProgres
bf2a0 73 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 sCharacter($char).{.$this->progr
bf2c0 65 73 73 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 essChar.=.$char;.}.......public.
bf2e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 function.setFormat($format).{.$t
bf300 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 his->format.=.$format;.}.......p
bf320 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 ublic.function.setRedrawFrequenc
bf340 79 28 24 66 72 65 71 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 y($freq).{.$this->redrawFreq.=.(
bf360 69 6e 74 29 20 24 66 72 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 int).$freq;.}........public.func
bf380 74 69 6f 6e 20 73 74 61 72 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 tion.start(OutputInterface.$outp
bf3a0 75 74 2c 20 24 6d 61 78 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 ut,.$max.=.null).{.$this->startT
bf3c0 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 ime.=.time();.$this->current.=.0
bf3e0 3b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 24 74 68 69 73 ;.$this->max.=.(int).$max;.$this
bf400 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d ->output.=.$output;.$this->lastM
bf420 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 essagesLength.=.0;.$this->barCha
bf440 72 4f 72 69 67 69 6e 61 6c 20 3d 20 27 27 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 rOriginal.=.'';..if.(null.===.$t
bf460 68 69 73 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 74 2d 3e his->format).{.switch.($output->
bf480 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 getVerbosity()).{.case.OutputInt
bf4a0 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 73 2d 3e erface::VERBOSITY_QUIET:.$this->
bf4c0 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 format.=.self::FORMAT_QUIET_NOMA
bf4e0 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e X;.if.($this->max.>.0).{.$this->
bf500 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 3b 0a 7d 0a 62 format.=.self::FORMAT_QUIET;.}.b
bf520 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 reak;.case.OutputInterface::VERB
bf540 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 OSITY_VERBOSE:.case.OutputInterf
bf560 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 ace::VERBOSITY_VERY_VERBOSE:.cas
bf580 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 e.OutputInterface::VERBOSITY_DEB
bf5a0 55 47 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 UG:.$this->format.=.self::FORMAT
bf5c0 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e _VERBOSE_NOMAX;.if.($this->max.>
bf5e0 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d .0).{.$this->format.=.self::FORM
bf600 41 54 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 AT_VERBOSE;.}.break;.default:.$t
bf620 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 his->format.=.self::FORMAT_NORMA
bf640 4c 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 L_NOMAX;.if.($this->max.>.0).{.$
bf660 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d this->format.=.self::FORMAT_NORM
bf680 41 4c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c AL;.}.break;.}.}..$this->initial
bf6a0 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ize();.}..........public.functio
bf6c0 6e 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 77 20 3d 20 66 n.advance($step.=.1,.$redraw.=.f
bf6e0 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 alse).{.if.(null.===.$this->star
bf700 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 tTime).{.throw.new.\LogicExcepti
bf720 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 on('You.must.start.the.progress.
bf740 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 61 64 76 61 6e 63 65 28 29 2e 27 29 3b bar.before.calling.advance().');
bf760 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a .}..if.(0.===.$this->current).{.
bf780 24 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e $redraw.=.true;.}..$this->curren
bf7a0 74 20 2b 3d 20 24 73 74 65 70 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 30 20 3d 3d 3d t.+=.$step;.if.($redraw.||.0.===
bf7c0 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 .$this->current.%.$this->redrawF
bf7e0 72 65 71 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a req).{.$this->display();.}.}....
bf800 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 75 72 72 65 6e 74 ......public.function.setCurrent
bf820 28 24 63 75 72 72 65 6e 74 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 ($current,.$redraw.=.false).{.if
bf840 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 .(null.===.$this->startTime).{.t
bf860 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 hrow.new.\LogicException('You.mu
bf880 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 st.start.the.progress.bar.before
bf8a0 20 63 61 6c 6c 69 6e 67 20 73 65 74 43 75 72 72 65 6e 74 28 29 2e 27 29 3b 0a 7d 0a 0a 24 63 75 .calling.setCurrent().');.}..$cu
bf8c0 72 72 65 6e 74 20 3d 20 28 69 6e 74 29 20 24 63 75 72 72 65 6e 74 3b 0a 0a 69 66 20 28 24 63 75 rrent.=.(int).$current;..if.($cu
bf8e0 72 72 65 6e 74 20 3c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 rrent.<.$this->current).{.throw.
bf900 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 5c 27 74 20 new.\LogicException('You.can\'t.
bf920 72 65 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 27 29 3b 0a 7d 0a 0a 69 regress.the.progress.bar');.}..i
bf940 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 72 65 64 72 f.(0.===.$this->current).{.$redr
bf960 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 24 aw.=.true;.}..$this->current.=.$
bf980 63 75 72 72 65 6e 74 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 30 20 3d 3d 3d 20 24 74 current;.if.($redraw.||.0.===.$t
bf9a0 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 his->current.%.$this->redrawFreq
bf9c0 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a ).{.$this->display();.}.}.......
bf9e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 28 24 66 69 6e 69 73 ..public.function.display($finis
bfa00 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d h.=.false).{.if.(null.===.$this-
bfa20 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 >startTime).{.throw.new.\LogicEx
bfa40 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 ception('You.must.start.the.prog
bfa60 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 64 69 73 70 6c 61 79 28 ress.bar.before.calling.display(
bfa80 29 2e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 ).');.}..$message.=.$this->forma
bfaa0 74 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 66 69 6e t;.foreach.($this->generate($fin
bfac0 69 73 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 ish).as.$name.=>.$value).{.$mess
bfae0 61 67 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 25 7b 24 6e 61 6d 65 7d 25 22 2c 20 24 age.=.str_replace("%{$name}%",.$
bfb00 76 61 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 value,.$message);.}.$this->overw
bfb20 72 69 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d rite($this->output,.$message);.}
bfb40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a .....public.function.finish().{.
bfb60 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b if.(null.===.$this->startTime).{
bfb80 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 .throw.new.\LogicException('You.
bfba0 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f must.start.the.progress.bar.befo
bfbc0 72 65 20 63 61 6c 6c 69 6e 67 20 66 69 6e 69 73 68 28 29 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 6e re.calling.finish().');.}..if.(n
bfbe0 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 69 66 20 28 ull.!==.$this->startTime).{.if.(
bfc00 21 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 !$this->max).{.$this->barChar.=.
bfc20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 24 74 68 69 73 2d 3e 64 $this->barCharOriginal;.$this->d
bfc40 69 73 70 6c 61 79 28 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 isplay(true);.}.$this->startTime
bfc60 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 .=.null;.$this->output->writeln(
bfc80 27 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a '');.$this->output.=.null;.}.}..
bfca0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 ...private.function.initialize()
bfcc0 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .{.$this->formatVars.=.array();.
bfce0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 72 foreach.($this->defaultFormatVar
bfd00 73 20 61 73 20 24 76 61 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f s.as.$var).{.if.(false.!==.strpo
bfd20 73 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 25 7b 24 76 61 72 7d 25 22 29 29 20 7b 0a s($this->format,."%{$var}%")).{.
bfd40 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 24 76 61 72 5d 20 3d 20 74 72 75 65 3b 0a $this->formatVars[$var].=.true;.
bfd60 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 }.}..if.($this->max.>.0).{.$this
bfd80 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 ->widths['max'].=.$this->strlen(
bfda0 24 74 68 69 73 2d 3e 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 $this->max);.$this->widths['curr
bfdc0 65 6e 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 ent'].=.$this->widths['max'];.}.
bfde0 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 else.{.$this->barCharOriginal.=.
bfe00 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d $this->barChar;.$this->barChar.=
bfe20 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a .$this->emptyBarChar;.}.}.......
bfe40 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e ..private.function.generate($fin
bfe60 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ish.=.false).{.$vars.=.array();.
bfe80 24 70 65 72 63 65 6e 74 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 $percent.=.0;.if.($this->max.>.0
bfea0 29 20 7b 0a 24 70 65 72 63 65 6e 74 20 3d 20 28 64 6f 75 62 6c 65 29 20 24 74 68 69 73 2d 3e 63 ).{.$percent.=.(double).$this->c
bfec0 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 urrent./.$this->max;.}..if.(isse
bfee0 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 62 61 72 27 5d 29 29 20 7b 0a 24 t($this->formatVars['bar'])).{.$
bff00 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 completeBars.=.0;..if.($this->ma
bff20 78 20 3e 20 30 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 x.>.0).{.$completeBars.=.floor($
bff40 70 65 72 63 65 6e 74 20 2a 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c percent.*.$this->barWidth);.}.el
bff60 73 65 20 7b 0a 69 66 20 28 21 24 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 se.{.if.(!$finish).{.$completeBa
bff80 72 73 20 3d 20 66 6c 6f 6f 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 rs.=.floor($this->current.%.$thi
bffa0 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 s->barWidth);.}.else.{.$complete
bffc0 42 61 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d Bars.=.$this->barWidth;.}.}..$em
bffe0 70 74 79 42 61 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d ptyBars.=.$this->barWidth.-.$com
c0000 70 6c 65 74 65 42 61 72 73 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d pleteBars.-.$this->strlen($this-
c0020 3e 70 72 6f 67 72 65 73 73 43 68 61 72 29 3b 0a 24 62 61 72 20 3d 20 73 74 72 5f 72 65 70 65 61 >progressChar);.$bar.=.str_repea
c0040 74 28 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 t($this->barChar,.$completeBars)
c0060 3b 0a 69 66 20 28 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3c 20 24 74 68 69 73 2d 3e 62 61 72 ;.if.($completeBars.<.$this->bar
c0080 57 69 64 74 68 29 20 7b 0a 24 62 61 72 20 2e 3d 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 Width).{.$bar..=.$this->progress
c00a0 43 68 61 72 3b 0a 24 62 61 72 20 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e Char;.$bar..=.str_repeat($this->
c00c0 65 6d 70 74 79 42 61 72 43 68 61 72 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 emptyBarChar,.$emptyBars);.}..$v
c00e0 61 72 73 5b 27 62 61 72 27 5d 20 3d 20 24 62 61 72 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 ars['bar'].=.$bar;.}..if.(isset(
c0100 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 29 29 20 7b $this->formatVars['elapsed'])).{
c0120 0a 24 65 6c 61 70 73 65 64 20 3d 20 74 69 6d 65 28 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 .$elapsed.=.time().-.$this->star
c0140 74 54 69 6d 65 3b 0a 24 76 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 20 3d 20 73 74 72 5f 70 61 tTime;.$vars['elapsed'].=.str_pa
c0160 64 28 24 74 68 69 73 2d 3e 68 75 6d 61 6e 65 54 69 6d 65 28 24 65 6c 61 70 73 65 64 29 2c 20 24 d($this->humaneTime($elapsed),.$
c0180 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 65 6c 61 70 73 65 64 27 5d 2c 20 27 20 27 2c 20 53 54 this->widths['elapsed'],.'.',.ST
c01a0 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d R_PAD_LEFT);.}..if.(isset($this-
c01c0 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 63 75 72 72 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 >formatVars['current'])).{.$vars
c01e0 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 63 75 72 ['current'].=.str_pad($this->cur
c0200 72 65 6e 74 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 2c 20 rent,.$this->widths['current'],.
c0220 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 '.',.STR_PAD_LEFT);.}..if.(isset
c0240 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 6d 61 78 27 5d 29 29 20 7b 0a 24 76 ($this->formatVars['max'])).{.$v
c0260 61 72 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 ars['max'].=.$this->max;.}..if.(
c0280 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 70 65 72 63 65 6e 74 isset($this->formatVars['percent
c02a0 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 '])).{.$vars['percent'].=.str_pa
c02c0 64 28 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a 20 31 30 30 29 2c 20 24 74 68 69 73 2d 3e d(floor($percent.*.100),.$this->
c02e0 77 69 64 74 68 73 5b 27 70 65 72 63 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f widths['percent'],.'.',.STR_PAD_
c0300 4c 45 46 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a LEFT);.}..return.$vars;.}.......
c0320 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 75 6d 61 6e 65 54 69 6d 65 28 24 73 ..private.function.humaneTime($s
c0340 65 63 73 29 0a 7b 0a 24 74 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ecs).{.$text.=.'';.foreach.($thi
c0360 73 2d 3e 74 69 6d 65 46 6f 72 6d 61 74 73 20 61 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 s->timeFormats.as.$format).{.if.
c0380 28 24 73 65 63 73 20 3c 20 24 66 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 ($secs.<.$format[0]).{.if.(count
c03a0 28 24 66 6f 72 6d 61 74 29 20 3d 3d 20 32 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 66 6f 72 6d 61 ($format).==.2).{.$text.=.$forma
c03c0 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 3d 20 63 65 t[1];.break;.}.else.{.$text.=.ce
c03e0 69 6c 28 24 73 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d il($secs./.$format[2]).'.'.$form
c0400 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 at[1];.break;.}.}.}..return.$tex
c0420 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 t;.}........private.function.ove
c0440 72 77 72 69 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 rwrite(OutputInterface.$output,.
c0460 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 $message).{.$length.=.$this->str
c0480 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 len($message);....if.(null.!==.$
c04a0 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 26 26 20 24 74 68 69 this->lastMessagesLength.&&.$thi
c04c0 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3e 20 24 6c 65 6e 67 74 68 29 s->lastMessagesLength.>.$length)
c04e0 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 5f 70 61 64 28 24 6d 65 73 73 61 67 65 2c 20 .{.$message.=.str_pad($message,.
c0500 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 2c 20 22 5c 78 32 30 $this->lastMessagesLength,."\x20
c0520 22 2c 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d ",.STR_PAD_RIGHT);.}....$output-
c0540 3e 77 72 69 74 65 28 22 5c 78 30 44 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 >write("\x0D");.$output->write($
c0560 6d 65 73 73 61 67 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 message);..$this->lastMessagesLe
c0580 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a ngth.=.$this->strlen($message);.
c05a0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a }.....public.function.getName().
c05c0 7b 0a 72 65 74 75 72 6e 20 27 70 72 6f 67 72 65 73 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a {.return.'progress';.}.}.<?php..
c05e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
c0600 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nent\Console\Event;..use.Symfony
c0620 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 \Component\Console\Command\Comma
c0640 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c nd;.use.Symfony\Component\Consol
c0660 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
c0680 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
c06a0 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e putInterface;.use.Symfony\Compon
c06c0 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a ent\EventDispatcher\Event;......
c06e0 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e .class.ConsoleEvent.extends.Even
c0700 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 70 72 69 76 61 74 65 t.{.protected.$command;..private
c0720 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 .$input;.private.$output;..publi
c0740 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 c.function.__construct(Command.$
c0760 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 command,.InputInterface.$input,.
c0780 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 OutputInterface.$output).{.$this
c07a0 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 ->command.=.$command;.$this->inp
c07c0 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 ut.=.$input;.$this->output.=.$ou
c07e0 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tput;.}.......public.function.ge
c0800 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 tCommand().{.return.$this->comma
c0820 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 nd;.}.......public.function.getI
c0840 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a nput().{.return.$this->input;.}.
c0860 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 ......public.function.getOutput(
c0880 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f ).{.return.$this->output;.}.}.<?
c08a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
c08c0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 Component\Console\Event;..use.Sy
c08e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c mfony\Component\Console\Command\
c0900 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 Command;.use.Symfony\Component\C
c0920 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 onsole\Input\InputInterface;.use
c0940 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
c0960 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 t\OutputInterface;.......class.C
c0980 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e onsoleTerminateEvent.extends.Con
c09a0 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f soleEvent.{......private.$exitCo
c09c0 64 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 de;..public.function.__construct
c09e0 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 (Command.$command,.InputInterfac
c0a00 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
c0a20 74 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 t,.$exitCode).{.parent::__constr
c0a40 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a uct($command,.$input,.$output);.
c0a60 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 69 74 43 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 3b 0a .$this->setExitCode($exitCode);.
c0a80 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 69 74 43 }.......public.function.setExitC
c0aa0 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 ode($exitCode).{.$this->exitCode
c0ac0 20 3d 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .=.$exitCode;.}.......public.fun
c0ae0 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getExitCode().{.return.$th
c0b00 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a is->exitCode;.}.}.<?php.........
c0b20 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
c0b40 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e nsole\Event;..use.Symfony\Compon
c0b60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 ent\Console\Command\Command;.use
c0b80 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
c0ba0 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
c0bc0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
c0be0 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 rface;.......class.ConsoleExcept
c0c00 69 6f 6e 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a ionEvent.extends.ConsoleEvent.{.
c0c20 70 72 69 76 61 74 65 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 private.$exception;.private.$exi
c0c40 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 tCode;..public.function.__constr
c0c60 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 uct(Command.$command,.InputInter
c0c80 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 face.$input,.OutputInterface.$ou
c0ca0 74 70 75 74 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 65 78 tput,.\Exception.$exception,.$ex
c0cc0 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 itCode).{.parent::__construct($c
c0ce0 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 ommand,.$input,.$output);..$this
c0d00 2d 3e 73 65 74 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 24 74 68 69 ->setException($exception);.$thi
c0d20 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a s->exitCode.=.$exitCode;.}......
c0d40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 0a .public.function.getException().
c0d60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a {.return.$this->exception;.}....
c0d80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 65 70 74 69 6f .....public.function.setExceptio
c0da0 6e 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 n(\Exception.$exception).{.$this
c0dc0 2d 3e 65 78 63 65 70 74 69 6f 6e 20 3d 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a ->exception.=.$exception;.}.....
c0de0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a ..public.function.getExitCode().
c0e00 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f {.return.$this->exitCode;.}.}.<?
c0e20 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
c0e40 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 Component\Console\Event;..use.Sy
c0e60 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c mfony\Component\Console\Command\
c0e80 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d Command;.......class.ConsoleComm
c0ea0 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a andEvent.extends.ConsoleEvent.{.
c0ec0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
c0ee0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 66 69 6e ony\Component\Console;.......fin
c0f00 61 6c 20 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a al.class.ConsoleEvents.{........
c0f20 0a 0a 0a 63 6f 6e 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 63 6f 6d 6d ...const.COMMAND.=.'console.comm
c0f40 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 54 45 52 4d 49 4e 41 54 45 20 and';...........const.TERMINATE.
c0f60 3d 20 27 63 6f 6e 73 6f 6c 65 2e 74 65 72 6d 69 6e 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a =.'console.terminate';..........
c0f80 0a 0a 63 6f 6e 73 74 20 45 58 43 45 50 54 49 4f 4e 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 65 78 63 ..const.EXCEPTION.=.'console.exc
c0fa0 65 70 74 69 6f 6e 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 eption';.}.<?php...........names
c0fc0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a pace.Symfony\Component\Finder;..
c0fe0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 use.Symfony\Component\Finder\Ada
c1000 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f pter\AdapterInterface;.use.Symfo
c1020 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 47 6e 75 46 ny\Component\Finder\Adapter\GnuF
c1040 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e indAdapter;.use.Symfony\Componen
c1060 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 3b t\Finder\Adapter\BsdFindAdapter;
c1080 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 .use.Symfony\Component\Finder\Ad
c10a0 61 70 74 65 72 5c 50 68 70 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f apter\PhpAdapter;.use.Symfony\Co
c10c0 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 45 78 63 65 70 74 69 mponent\Finder\Exception\Excepti
c10e0 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 onInterface;.................cla
c1100 73 73 20 46 69 6e 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 ss.Finder.implements.\IteratorAg
c1120 67 72 65 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 49 47 4e 4f gregate,.\Countable.{.const.IGNO
c1140 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 44 RE_VCS_FILES.=.1;.const.IGNORE_D
c1160 4f 54 5f 46 49 4c 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 20 3d 20 30 OT_FILES.=.2;..private.$mode.=.0
c1180 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 ;.private.$names.=.array();.priv
c11a0 61 74 65 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 ate.$notNames.=.array();.private
c11c0 20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 69 .$exclude.=.array();.private.$fi
c11e0 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 74 68 73 lters.=.array();.private.$depths
c1200 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a 65 73 20 3d 20 61 72 72 .=.array();.private.$sizes.=.arr
c1220 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c ay();.private.$followLinks.=.fal
c1240 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 se;.private.$sort.=.false;.priva
c1260 74 65 20 24 69 67 6e 6f 72 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 64 69 72 73 20 3d 20 te.$ignore.=.0;.private.$dirs.=.
c1280 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 array();.private.$dates.=.array(
c12a0 29 3b 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b );.private.$iterators.=.array();
c12c0 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 .private.$contains.=.array();.pr
c12e0 69 76 61 74 65 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 ivate.$notContains.=.array();.pr
c1300 69 76 61 74 65 20 24 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 ivate.$adapters.=.array();.priva
c1320 74 65 20 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f te.$paths.=.array();.private.$no
c1340 74 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 tPaths.=.array();.private.$ignor
c1360 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 69 76 61 74 eUnreadableDirs.=.false;..privat
c1380 65 20 73 74 61 74 69 63 20 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 27 2e e.static.$vcsPatterns.=.array('.
c13a0 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 svn',.'_svn',.'CVS',.'_darcs',.'
c13c0 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a .arch-params',.'.monotone',.'.bz
c13e0 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 r',.'.git',.'.hg');.....public.f
c1400 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 unction.__construct().{.$this->i
c1420 67 6e 6f 72 65 20 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 gnore.=.static::IGNORE_VCS_FILES
c1440 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 0a 24 74 .|.static::IGNORE_DOT_FILES;..$t
c1460 68 69 73 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 47 6e 75 46 69 6e 64 41 64 61 70 his.->addAdapter(new.GnuFindAdap
c1480 74 65 72 28 29 29 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 42 73 64 46 69 6e 64 41 ter()).->addAdapter(new.BsdFindA
c14a0 64 61 70 74 65 72 28 29 29 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 50 68 70 41 64 dapter()).->addAdapter(new.PhpAd
c14c0 61 70 74 65 72 28 29 2c 20 2d 35 30 29 0a 2d 3e 73 65 74 41 64 61 70 74 65 72 28 27 70 68 70 27 apter(),.-50).->setAdapter('php'
c14e0 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 ).;.}.........public.static.func
c1500 74 69 6f 6e 20 63 72 65 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 tion.create().{.return.new.stati
c1520 63 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 c();.}..........public.function.
c1540 61 64 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 addAdapter(Adapter\AdapterInterf
c1560 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 70 72 69 6f 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 ace.$adapter,.$priority.=.0).{.$
c1580 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 61 64 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 this->adapters[$adapter->getName
c15a0 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 64 61 70 74 65 72 27 20 3d 3e 20 24 61 64 61 70 74 ()].=.array(.'adapter'.=>.$adapt
c15c0 65 72 2c 0a 27 70 72 69 6f 72 69 74 79 27 20 3d 3e 20 24 70 72 69 6f 72 69 74 79 2c 0a 27 73 65 er,.'priority'.=>.$priority,.'se
c15e0 6c 65 63 74 65 64 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 lected'.=>.false,.);..return.$th
c1600 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c is->sortAdapters();.}.......publ
c1620 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 42 65 73 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 24 ic.function.useBestAdapter().{.$
c1640 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 0a this->resetAdapterSelection();..
c1660 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a return.$this->sortAdapters();.}.
c1680 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 61 ..........public.function.setAda
c16a0 70 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e pter($name).{.if.(!isset($this->
c16c0 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 adapters[$name])).{.throw.new.\I
c16e0 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 nvalidArgumentException(sprintf(
c1700 27 41 64 61 70 74 65 72 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 'Adapter."%s".does.not.exist.',.
c1720 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 $name));.}..$this->resetAdapterS
c1740 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d election();.$this->adapters[$nam
c1760 65 5d 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 e]['selected'].=.true;..return.$
c1780 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 this->sortAdapters();.}.......pu
c17a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 41 64 61 70 74 65 72 73 28 29 0a 7b blic.function.removeAdapters().{
c17c0 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 .$this->adapters.=.array();..ret
c17e0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 urn.$this;.}.......public.functi
c1800 6f 6e 20 67 65 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f on.getAdapters().{.return.array_
c1820 76 61 6c 75 65 73 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 20 values(array_map(function(array.
c1840 24 61 64 61 70 74 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 74 65 72 5b 27 61 64 61 $adapter).{.return.$adapter['ada
c1860 70 74 65 72 27 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 29 29 3b 0a 7d 0a pter'];.},.$this->adapters));.}.
c1880 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 ........public.function.director
c18a0 69 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 ies().{.$this->mode.=.Iterator\F
c18c0 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 ileTypeFilterIterator::ONLY_DIRE
c18e0 43 54 4f 52 49 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a CTORIES;..return.$this;.}.......
c1900 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 73 28 29 0a 7b 0a 24 74 68 69 ..public.function.files().{.$thi
c1920 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 s->mode.=.Iterator\FileTypeFilte
c1940 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 rIterator::ONLY_FILES;..return.$
c1960 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 this;.}...................public
c1980 20 66 75 6e 63 74 69 6f 6e 20 64 65 70 74 68 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d .function.depth($level).{.$this-
c19a0 3e 64 65 70 74 68 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 >depths[].=.new.Comparator\Numbe
c19c0 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 6c 65 76 65 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rComparator($level);..return.$th
c19e0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 is;.}......................publi
c1a00 63 20 66 75 6e 63 74 69 6f 6e 20 64 61 74 65 28 24 64 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e c.function.date($date).{.$this->
c1a20 64 61 74 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d dates[].=.new.Comparator\DateCom
c1a40 70 61 72 61 74 6f 72 28 24 64 61 74 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d parator($date);..return.$this;.}
c1a60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ...................public.functi
c1a80 6f 6e 20 6e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 on.name($pattern).{.$this->names
c1aa0 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a [].=.$pattern;..return.$this;.}.
c1ac0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 4e ............public.function.notN
c1ae0 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b ame($pattern).{.$this->notNames[
c1b00 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a ].=.$pattern;..return.$this;.}..
c1b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f ..............public.function.co
c1b40 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 ntains($pattern).{.$this->contai
c1b60 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ns[].=.$pattern;..return.$this;.
c1b80 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e }................public.function
c1ba0 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e .notContains($pattern).{.$this->
c1bc0 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 notContains[].=.$pattern;..retur
c1be0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n.$this;.}..................publ
c1c00 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 ic.function.path($pattern).{.$th
c1c20 69 73 2d 3e 70 61 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 is->paths[].=.$pattern;..return.
c1c40 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $this;.}..................public
c1c60 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 50 61 74 68 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 .function.notPath($pattern).{.$t
c1c80 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 his->notPaths[].=.$pattern;..ret
c1ca0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 urn.$this;.}..................pu
c1cc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a 65 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 blic.function.size($size).{.$thi
c1ce0 73 2d 3e 73 69 7a 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 s->sizes[].=.new.Comparator\Numb
c1d00 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 73 69 7a 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 erComparator($size);..return.$th
c1d20 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f is;.}.............public.functio
c1d40 6e 20 65 78 63 6c 75 64 65 28 24 64 69 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 n.exclude($dirs).{.$this->exclud
c1d60 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 e.=.array_merge($this->exclude,.
c1d80 28 61 72 72 61 79 29 20 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d (array).$dirs);..return.$this;.}
c1da0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e .............public.function.ign
c1dc0 6f 72 65 44 6f 74 46 69 6c 65 73 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 29 0a 7b 0a 69 oreDotFiles($ignoreDotFiles).{.i
c1de0 66 20 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e f.($ignoreDotFiles).{.$this->ign
c1e00 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 ore.=.$this->ignore.|.static::IG
c1e20 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e NORE_DOT_FILES;.}.else.{.$this->
c1e40 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 26 20 7e 73 74 61 74 69 63 ignore.=.$this->ignore.&.~static
c1e60 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ::IGNORE_DOT_FILES;.}..return.$t
c1e80 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his;.}.............public.functi
c1ea0 6f 6e 20 69 67 6e 6f 72 65 56 43 53 28 24 69 67 6e 6f 72 65 56 43 53 29 0a 7b 0a 69 66 20 28 24 on.ignoreVCS($ignoreVCS).{.if.($
c1ec0 69 67 6e 6f 72 65 56 43 53 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 ignoreVCS).{.$this->ignore.=.$th
c1ee0 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f is->ignore.|.static::IGNORE_VCS_
c1f00 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 FILES;.}.else.{.$this->ignore.=.
c1f20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 26 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f $this->ignore.&.~static::IGNORE_
c1f40 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a VCS_FILES;.}..return.$this;.}...
c1f60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ......public.static.function.add
c1f80 56 43 53 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 VCSPattern($pattern).{.foreach.(
c1fa0 28 61 72 72 61 79 29 20 24 70 61 74 74 65 72 6e 20 61 73 20 24 70 29 20 7b 0a 73 65 6c 66 3a 3a (array).$pattern.as.$p).{.self::
c1fc0 24 76 63 73 50 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 70 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 76 $vcsPatterns[].=.$p;.}..self::$v
c1fe0 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 73 65 6c 66 3a 3a csPatterns.=.array_unique(self::
c2000 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $vcsPatterns);.}................
c2020 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 28 5c 43 6c 6f 73 75 72 65 20 24 .public.function.sort(\Closure.$
c2040 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 63 6c 6f 73 75 72 closure).{.$this->sort.=.$closur
c2060 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e;..return.$this;.}.............
c2080 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 public.function.sortByName().{.$
c20a0 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 this->sort.=.Iterator\SortableIt
c20c0 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 erator::SORT_BY_NAME;..return.$t
c20e0 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his;.}.............public.functi
c2100 6f 6e 20 73 6f 72 74 42 79 54 79 70 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 on.sortByType().{.$this->sort.=.
c2120 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f Iterator\SortableIterator::SORT_
c2140 42 59 5f 54 59 50 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a BY_TYPE;..return.$this;.}.......
c2160 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 41 63 ........public.function.sortByAc
c2180 63 65 73 73 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 cessedTime().{.$this->sort.=.Ite
c21a0 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f rator\SortableIterator::SORT_BY_
c21c0 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ACCESSED_TIME;..return.$this;.}.
c21e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ................public.function.
c2200 73 6f 72 74 42 79 43 68 61 6e 67 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 sortByChangedTime().{.$this->sor
c2220 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 t.=.Iterator\SortableIterator::S
c2240 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ORT_BY_CHANGED_TIME;..return.$th
c2260 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 is;.}...............public.funct
c2280 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 69 66 69 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 ion.sortByModifiedTime().{.$this
c22a0 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 ->sort.=.Iterator\SortableIterat
c22c0 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 or::SORT_BY_MODIFIED_TIME;..retu
c22e0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rn.$this;.}................publi
c2300 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 c.function.filter(\Closure.$clos
c2320 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 ure).{.$this->filters[].=.$closu
c2340 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 re;..return.$this;.}.........pub
c2360 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 lic.function.followLinks().{.$th
c2380 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 is->followLinks.=.true;..return.
c23a0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $this;.}...........public.functi
c23c0 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e 6f 72 65 20 on.ignoreUnreadableDirs($ignore.
c23e0 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c =.true).{.$this->ignoreUnreadabl
c2400 65 44 69 72 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 67 6e 6f 72 65 3b 0a 0a 72 65 74 75 eDirs.=.(Boolean).$ignore;..retu
c2420 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rn.$this;.}.............public.f
c2440 75 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 unction.in($dirs).{.$resolvedDir
c2460 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 s.=.array();..foreach.((array).$
c2480 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 64 69 72 29 dirs.as.$dir).{.if.(is_dir($dir)
c24a0 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 5b 5d 20 3d 20 24 64 69 72 3b 0a 7d 20 65 6c ).{.$resolvedDirs[].=.$dir;.}.el
c24c0 73 65 69 66 20 28 24 67 6c 6f 62 20 3d 20 67 6c 6f 62 28 24 64 69 72 2c 20 47 4c 4f 42 5f 4f 4e seif.($glob.=.glob($dir,.GLOB_ON
c24e0 4c 59 44 49 52 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 5f LYDIR)).{.$resolvedDirs.=.array_
c2500 6d 65 72 67 65 28 24 72 65 73 6f 6c 76 65 64 44 69 72 73 2c 20 24 67 6c 6f 62 29 3b 0a 7d 20 65 merge($resolvedDirs,.$glob);.}.e
c2520 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 lse.{.throw.new.\InvalidArgument
c2540 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 Exception(sprintf('The."%s".dire
c2560 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a ctory.does.not.exist.',.$dir));.
c2580 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 }.}..$this->dirs.=.array_merge($
c25a0 74 68 69 73 2d 3e 64 69 72 73 2c 20 24 72 65 73 6f 6c 76 65 64 44 69 72 73 29 3b 0a 0a 72 65 74 this->dirs,.$resolvedDirs);..ret
c25c0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 urn.$this;.}...........public.fu
c25e0 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d nction.getIterator().{.if.(0.===
c2600 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 .count($this->dirs).&&.0.===.cou
c2620 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 nt($this->iterators)).{.throw.ne
c2640 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c w.\LogicException('You.must.call
c2660 20 6f 6e 65 20 6f 66 20 69 6e 28 29 20 6f 72 20 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 73 .one.of.in().or.append().methods
c2680 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 6e 64 65 72 2e .before.iterating.over.a.Finder.
c26a0 27 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 ');.}..if.(1.===.count($this->di
c26c0 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 rs).&&.0.===.count($this->iterat
c26e0 6f 72 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 ors)).{.return.$this->searchInDi
c2700 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 69 74 65 rectory($this->dirs[0]);.}..$ite
c2720 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 rator.=.new.\AppendIterator();.f
c2740 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 oreach.($this->dirs.as.$dir).{.$
c2760 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e iterator->append($this->searchIn
c2780 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 Directory($dir));.}..foreach.($t
c27a0 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 74 65 72 61 74 his->iterators.as.$it).{.$iterat
c27c0 6f 72 2d 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 or->append($it);.}..return.$iter
c27e0 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ator;.}.............public.funct
c2800 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 ion.append($iterator).{.if.($ite
c2820 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 rator.instanceof.\IteratorAggreg
c2840 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 ate).{.$this->iterators[].=.$ite
c2860 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 rator->getIterator();.}.elseif.(
c2880 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 $iterator.instanceof.\Iterator).
c28a0 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 {.$this->iterators[].=.$iterator
c28c0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 ;.}.elseif.($iterator.instanceof
c28e0 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 .\Traversable.||.is_array($itera
c2900 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 tor)).{.$it.=.new.\ArrayIterator
c2920 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 ();.foreach.($iterator.as.$file)
c2940 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 .{.$it->append($file.instanceof.
c2960 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 \SplFileInfo.?.$file.:.new.\SplF
c2980 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 ileInfo($file));.}.$this->iterat
c29a0 6f 72 73 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ors[].=.$it;.}.else.{.throw.new.
c29c0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 \InvalidArgumentException('Finde
c29e0 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e r::append().method.wrong.argumen
c2a00 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a t.type.');.}..return.$this;.}...
c2a20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 ....public.function.count().{.re
c2a40 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 turn.iterator_count($this->getIt
c2a60 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f erator());.}.....private.functio
c2a80 6e 20 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 75 61 73 6f 72 74 28 24 74 68 69 73 2d n.sortAdapters().{.uasort($this-
c2aa0 3e 61 64 61 70 74 65 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 2c 20 61 >adapters,.function.(array.$a,.a
c2ac0 72 72 61 79 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 7c 7c rray.$b).{.if.($a['selected'].||
c2ae0 20 24 62 5b 27 73 65 6c 65 63 74 65 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 5b 27 73 65 .$b['selected']).{.return.$a['se
c2b00 6c 65 63 74 65 64 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 5b lected'].?.-1.:.1;.}..return.$a[
c2b20 27 70 72 69 6f 72 69 74 79 27 5d 20 3e 20 24 62 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3f 20 2d 'priority'].>.$b['priority'].?.-
c2b40 31 20 3a 20 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 1.:.1;.});..return.$this;.}.....
c2b60 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 ....private.function.searchInDir
c2b80 65 63 74 6f 72 79 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 ectory($dir).{.if.(static::IGNOR
c2ba0 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f E_VCS_FILES.===.(static::IGNORE_
c2bc0 56 43 53 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 VCS_FILES.&.$this->ignore)).{.$t
c2be0 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 his->exclude.=.array_merge($this
c2c00 2d 3e 65 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a ->exclude,.self::$vcsPatterns);.
c2c20 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 }..if.(static::IGNORE_DOT_FILES.
c2c40 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 ===.(static::IGNORE_DOT_FILES.&.
c2c60 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 $this->ignore)).{.$this->notPath
c2c80 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 5c 2e 2e 2b 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 s[].=.'#(^|/)\..+(/|$)#';.}..for
c2ca0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 61 73 20 24 61 64 61 70 74 65 each.($this->adapters.as.$adapte
c2cc0 72 29 20 7b 0a 69 66 20 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 2d 3e 69 73 r).{.if.($adapter['adapter']->is
c2ce0 53 75 70 70 6f 72 74 65 64 28 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 Supported()).{.try.{.return.$thi
c2d00 73 0a 2d 3e 62 75 69 6c 64 41 64 61 70 74 65 72 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 s.->buildAdapter($adapter['adapt
c2d20 65 72 27 5d 29 0a 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b er']).->searchInDirectory($dir);
c2d40 0a 7d 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 65 29 .}.catch.(ExceptionInterface.$e)
c2d60 20 7b 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 .{}.}.}..throw.new.\RuntimeExcep
c2d80 74 69 6f 6e 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 64 20 61 64 61 70 74 65 72 20 66 6f 75 6e 64 tion('No.supported.adapter.found
c2da0 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 .');.}.......private.function.bu
c2dc0 69 6c 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 ildAdapter(AdapterInterface.$ada
c2de0 70 74 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 74 65 72 0a 2d 3e 73 65 74 46 6f 6c pter).{.return.$adapter.->setFol
c2e00 6c 6f 77 4c 69 6e 6b 73 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 lowLinks($this->followLinks).->s
c2e20 65 74 44 65 70 74 68 73 28 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 etDepths($this->depths).->setMod
c2e40 65 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 0a 2d 3e 73 65 74 45 78 63 6c 75 64 65 28 24 74 68 69 e($this->mode).->setExclude($thi
c2e60 73 2d 3e 65 78 63 6c 75 64 65 29 0a 2d 3e 73 65 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 61 s->exclude).->setNames($this->na
c2e80 6d 65 73 29 0a 2d 3e 73 65 74 4e 6f 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d mes).->setNotNames($this->notNam
c2ea0 65 73 29 0a 2d 3e 73 65 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e es).->setContains($this->contain
c2ec0 73 29 0a 2d 3e 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 6e 6f 74 43 6f s).->setNotContains($this->notCo
c2ee0 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 53 69 7a 65 73 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 ntains).->setSizes($this->sizes)
c2f00 0a 2d 3e 73 65 74 44 61 74 65 73 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 0a 2d 3e 73 65 74 46 .->setDates($this->dates).->setF
c2f20 69 6c 74 65 72 73 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 0a 2d 3e 73 65 74 53 6f 72 74 ilters($this->filters).->setSort
c2f40 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 0a 2d 3e 73 65 74 50 61 74 68 28 24 74 68 69 73 2d 3e 70 ($this->sort).->setPath($this->p
c2f60 61 74 68 73 29 0a 2d 3e 73 65 74 4e 6f 74 50 61 74 68 28 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 aths).->setNotPath($this->notPat
c2f80 68 73 29 0a 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 74 68 69 73 hs).->ignoreUnreadableDirs($this
c2fa0 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ->ignoreUnreadableDirs);.}.....p
c2fc0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 rivate.function.resetAdapterSele
c2fe0 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 ction().{.$this->adapters.=.arra
c3000 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 70 72 6f 70 65 72 74 69 65 y_map(function.(array.$propertie
c3020 73 29 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 66 s).{.$properties['selected'].=.f
c3040 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 70 65 72 74 69 65 73 3b 0a 7d 2c 20 24 74 alse;..return.$properties;.},.$t
c3060 68 69 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a his->adapters);.}.}.<?php.......
c3080 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
c30a0 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a Finder\Shell;.....class.Command.
c30c0 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 {....private.$parent;.....privat
c30e0 65 20 24 62 69 74 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 62 65 6c 73 3b 0a 0a 0a e.$bits;.....private.$labels;...
c3100 0a 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 ..private.$errorHandler;.......p
c3120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 ublic.function.__construct(Comma
c3140 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 65 nd.$parent.=.null).{.$this->pare
c3160 6e 74 20 3d 20 24 70 61 72 65 6e 74 3b 0a 24 74 68 69 73 2d 3e 62 69 74 73 20 3d 20 61 72 72 61 nt.=.$parent;.$this->bits.=.arra
c3180 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a y();.$this->labels.=.array();.}.
c31a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 ......public.function.__toString
c31c0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 3b 0a 7d 0a 0a 0a 0a ().{.return.$this->join();.}....
c31e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 .....public.static.function.crea
c3200 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 te(Command.$parent.=.null).{.ret
c3220 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 72 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a urn.new.self($parent);.}........
c3240 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 .public.static.function.escape($
c3260 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 24 input).{.return.escapeshellcmd($
c3280 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 input);.}.........public.static.
c32a0 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 function.quote($input).{.return.
c32c0 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a escapeshellarg($input);.}.......
c32e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 62 69 74 29 0a 7b 0a 24 74 ..public.function.add($bit).{.$t
c3300 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 69 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 his->bits[].=.$bit;..return.$thi
c3320 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 70 s;.}.........public.function.top
c3340 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 62 69 ($bit).{.array_unshift($this->bi
c3360 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 61 62 65 ts,.$bit);..foreach.($this->labe
c3380 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 24 69 6e 64 65 78 29 20 7b 0a 24 74 68 69 73 2d ls.as.$label.=>.$index).{.$this-
c33a0 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 2b 3d 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 >labels[$label].+=.1;.}..return.
c33c0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $this;.}.........public.function
c33e0 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c .arg($arg).{.$this->bits[].=.sel
c3400 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d f::quote($arg);..return.$this;.}
c3420 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6d 64 28 24 65 73 .........public.function.cmd($es
c3440 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 65 73 63 61 70 c).{.$this->bits[].=.self::escap
c3460 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a e($esc);..return.$this;.}.......
c3480 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 28 24 6c 61 62 65 6c 29 0a ....public.function.ins($label).
c34a0 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c {.if.(isset($this->labels[$label
c34c0 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ])).{.throw.new.\RuntimeExceptio
c34e0 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 n(sprintf('Label."%s".already.ex
c3500 69 73 74 73 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 69 74 73 ists.',.$label));.}..$this->bits
c3520 5b 5d 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d [].=.self::create($this);.$this-
c3540 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 >labels[$label].=.count($this->b
c3560 69 74 73 29 2d 31 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 its)-1;..return.$this->bits[$thi
c3580 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->labels[$label]];.}...........
c35a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 public.function.get($label).{.if
c35c0 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 .(!isset($this->labels[$label]))
c35e0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 .{.throw.new.\RuntimeException(s
c3600 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 printf('Label."%s".does.not.exis
c3620 74 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e t.',.$label));.}..return.$this->
c3640 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a bits[$this->labels[$label]];.}..
c3660 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 64 28 29 0a 7b 0a 69 .......public.function.end().{.i
c3680 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 29 20 7b 0a 74 68 72 f.(null.===.$this->parent).{.thr
c36a0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6c 6c 69 6e ow.new.\RuntimeException('Callin
c36c0 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73 6e 5c 27 74 20 6d g.end.on.root.command.doesn\'t.m
c36e0 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 ake.sense.');.}..return.$this->p
c3700 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c arent;.}.......public.function.l
c3720 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 ength().{.return.count($this->bi
c3740 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ts);.}.......public.function.set
c3760 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 65 72 72 6f 72 48 61 6e 64 ErrorHandler(\Closure.$errorHand
c3780 6c 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 20 3d 20 24 65 72 ler).{.$this->errorHandler.=.$er
c37a0 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a rorHandler;..return.$this;.}....
c37c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 .public.function.getErrorHandler
c37e0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b ().{.return.$this->errorHandler;
c3800 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 .}.........public.function.execu
c3820 74 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 te().{.if.(null.===.$this->error
c3840 48 61 6e 64 6c 65 72 29 20 7b 0a 65 78 65 63 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 24 Handler).{.exec($this->join(),.$
c3860 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f output);.}.else.{.$process.=.pro
c3880 63 5f 6f 70 65 6e 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 61 72 72 61 79 28 30 20 3d 3e c_open($this->join(),.array(0.=>
c38a0 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 31 20 3d 3e 20 61 72 72 61 79 28 .array('pipe',.'r'),.1.=>.array(
c38c0 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 'pipe',.'w'),.2.=>.array('pipe',
c38e0 20 27 77 27 29 29 2c 20 24 70 69 70 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f .'w')),.$pipes);.$output.=.preg_
c3900 73 70 6c 69 74 28 27 7e 28 5c 72 5c 6e 7c 5c 72 7c 5c 6e 29 7e 27 2c 20 73 74 72 65 61 6d 5f 67 split('~(\r\n|\r|\n)~',.stream_g
c3920 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 2c 20 2d 31 2c 20 50 52 45 47 et_contents($pipes[1]),.-1,.PREG
c3940 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 29 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 20 3d 20 _SPLIT_NO_EMPTY);..if.($error.=.
c3960 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 32 5d 29 29 20 stream_get_contents($pipes[2])).
c3980 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e {.call_user_func($this->errorHan
c39a0 64 6c 65 72 2c 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 dler,.$error);.}..proc_close($pr
c39c0 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 20 3f 3a 20 61 72 72 ocess);.}..return.$output.?:.arr
c39e0 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6a 6f ay();.}.......public.function.jo
c3a00 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 in().{.return.implode('.',.array
c3a20 5f 66 69 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 24 62 69 74 _filter(.array_map(function($bit
c3a40 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 69 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 ).{.return.$bit.instanceof.Comma
c3a60 6e 64 20 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e 28 29 20 3a 20 28 24 62 69 74 20 3f 3a 20 6e 75 6c nd.?.$bit->join().:.($bit.?:.nul
c3a80 6c 29 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 69 74 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 28 24 62 l);.},.$this->bits),.function($b
c3aa0 69 74 29 20 7b 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 3d 20 24 62 69 74 3b 20 7d 0a 29 29 it).{.return.null.!==.$bit;.}.))
c3ac0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 ;.}..........public.function.add
c3ae0 41 74 49 6e 64 65 78 28 24 62 69 74 2c 20 24 69 6e 64 65 78 29 0a 7b 0a 61 72 72 61 79 5f 73 70 AtIndex($bit,.$index).{.array_sp
c3b00 6c 69 63 65 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 69 6e 64 65 78 2c 20 30 2c 20 24 62 69 lice($this->bits,.$index,.0,.$bi
c3b20 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a t);..return.$this;.}.}.<?php....
c3b40 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
c3b60 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c nt\Finder\Shell;.....class.Shell
c3b80 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 55 4e 49 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 .{.const.TYPE_UNIX.=.1;.const.TY
c3ba0 50 45 5f 44 41 52 57 49 4e 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e PE_DARWIN.=.2;.const.TYPE_CYGWIN
c3bc0 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f .=.3;.const.TYPE_WINDOWS.=.4;.co
c3be0 6e 73 74 20 54 59 50 45 5f 42 53 44 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 nst.TYPE_BSD.=.5;.....private.$t
c3c00 79 70 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 ype;.......public.function.getTy
c3c20 70 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 pe().{.if.(null.===.$this->type)
c3c40 20 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 .{.$this->type.=.$this->guessTyp
c3c60 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a e();.}..return.$this->type;.}...
c3c80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e ......public.function.testComman
c3ca0 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e d($command).{.if.(self::TYPE_WIN
c3cc0 44 4f 57 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b 0a 0a 20 72 65 74 75 72 6e DOWS.===.$this->type).{...return
c3ce0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 .false;.}..if.(!function_exists(
c3d00 27 65 78 65 63 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 65 78 'exec')).{.return.false;.}....ex
c3d20 65 63 28 27 63 6f 6d 6d 61 6e 64 20 2d 76 20 27 2e 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 ec('command.-v.'.$command,.$outp
c3d40 75 74 2c 20 24 63 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 63 6f 64 65 20 ut,.$code);..return.0.===.$code.
c3d60 26 26 20 63 6f 75 6e 74 28 24 6f 75 74 70 75 74 29 20 3e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 &&.count($output).>.0;.}.......p
c3d80 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 54 79 70 65 28 29 0a 7b 0a 24 6f rivate.function.guessType().{.$o
c3da0 73 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 66 20 28 66 61 6c s.=.strtolower(PHP_OS);..if.(fal
c3dc0 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 63 79 67 77 69 6e 27 29 29 20 7b 0a se.!==.strpos($os,.'cygwin')).{.
c3de0 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 43 59 47 57 49 4e 3b 0a 7d 0a 0a 69 66 20 return.self::TYPE_CYGWIN;.}..if.
c3e00 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 64 61 72 77 69 6e 27 29 (false.!==.strpos($os,.'darwin')
c3e20 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 3b 0a 7d 0a ).{.return.self::TYPE_DARWIN;.}.
c3e40 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 62 73 64 27 .if.(false.!==.strpos($os,.'bsd'
c3e60 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 42 53 44 3b 0a 7d 0a 0a 69 )).{.return.self::TYPE_BSD;.}..i
c3e80 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 77 69 6e 27 29 29 20 7b 0a 72 f.(0.===.strpos($os,.'win')).{.r
c3ea0 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 3b 0a 7d 0a 0a 72 65 74 eturn.self::TYPE_WINDOWS;.}..ret
c3ec0 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 55 4e 49 58 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a urn.self::TYPE_UNIX;.}.}.<?php..
c3ee0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
c3f00 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 nent\Finder\Expression;.....clas
c3f20 73 20 52 65 67 65 78 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 s.Regex.implements.ValueInterfac
c3f40 65 0a 7b 0a 63 6f 6e 73 74 20 53 54 41 52 54 5f 46 4c 41 47 20 3d 20 27 5e 27 3b 0a 63 6f 6e 73 e.{.const.START_FLAG.=.'^';.cons
c3f60 74 20 45 4e 44 5f 46 4c 41 47 20 3d 20 27 24 27 3b 0a 63 6f 6e 73 74 20 42 4f 55 4e 44 41 52 59 t.END_FLAG.=.'$';.const.BOUNDARY
c3f80 20 3d 20 27 7e 27 3b 0a 63 6f 6e 73 74 20 4a 4f 4b 45 52 20 3d 20 27 2e 2a 27 3b 0a 63 6f 6e 73 .=.'~';.const.JOKER.=.'.*';.cons
c3fa0 74 20 45 53 43 41 50 49 4e 47 20 3d 20 27 5c 5c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 t.ESCAPING.=.'\\';.....private.$
c3fc0 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a pattern;.....private.$options;..
c3fe0 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 ...private.$startFlag;.....priva
c4000 74 65 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 4a te.$endFlag;.....private.$startJ
c4020 6f 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 0a 0a oker;.....private.$endJoker;....
c4040 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 .....public.static.function.crea
c4060 74 65 28 24 65 78 70 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2e te($expr).{.if.(preg_match('/^(.
c4080 7b 33 2c 7d 3f 29 28 5b 69 6d 73 78 75 41 44 55 5d 2a 29 24 2f 27 2c 20 24 65 78 70 72 2c 20 24 {3,}?)([imsxuADU]*)$/',.$expr,.$
c40a0 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 30 2c 20 m)).{.$start.=.substr($m[1],.0,.
c40c0 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 3b 0a 0a 69 1);.$end.=.substr($m[1],.-1);..i
c40e0 66 20 28 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 20 26 26 20 21 70 72 65 67 5f 6d 61 74 f.(($start.===.$end.&&.!preg_mat
c4100 63 68 28 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c 20 24 73 74 61 72 ch('/[*?[:alnum:].\\\\]/',.$star
c4120 74 29 29 20 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 20 24 65 6e 64 20 3d t)).||.($start.===.'{'.&&.$end.=
c4140 3d 3d 20 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 73 75 62 73 74 ==.'}')).{.return.new.self(subst
c4160 72 28 24 6d 5b 31 5d 2c 20 31 2c 20 2d 31 29 2c 20 24 6d 5b 32 5d 2c 20 24 65 6e 64 29 3b 0a 7d r($m[1],.1,.-1),.$m[2],.$end);.}
c4180 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 .}..throw.new.\InvalidArgumentEx
c41a0 63 65 70 74 69 6f 6e 28 27 47 69 76 65 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6e 6f 74 ception('Given.expression.is.not
c41c0 20 61 20 72 65 67 65 78 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .a.regex.');.}.......public.func
c41e0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 2c 20 24 6f 70 74 69 tion.__construct($pattern,.$opti
c4200 6f 6e 73 20 3d 20 27 27 2c 20 24 64 65 6c 69 6d 69 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 ons.=.'',.$delimiter.=.null).{.i
c4220 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 6c 69 6d 69 74 65 72 29 20 7b 0a 0a 20 24 70 61 74 f.(null.!==.$delimiter).{...$pat
c4240 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2e 24 64 65 6c 69 6d 69 74 tern.=.str_replace('\\'.$delimit
c4260 65 72 2c 20 24 64 65 6c 69 6d 69 74 65 72 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 er,.$delimiter,.$pattern);.}..$t
c4280 68 69 73 2d 3e 70 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 3b 0a 24 74 68 his->parsePattern($pattern);.$th
c42a0 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 is->options.=.$options;.}.....pu
c42c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 blic.function.__toString().{.ret
c42e0 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this->render();.}.....publi
c4300 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c c.function.render().{.return.sel
c4320 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 f::BOUNDARY..$this->renderPatter
c4340 6e 28 29 0a 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 6f 70 74 69 n()..self::BOUNDARY..$this->opti
c4360 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 ons;.}.....public.function.rende
c4380 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 73 74 61 72 rPattern().{.return.($this->star
c43a0 74 46 6c 61 67 20 3f 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 4c 41 47 20 3a 20 27 27 29 0a 2e tFlag.?.self::START_FLAG.:.'')..
c43c0 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 ($this->startJoker.?.self::JOKER
c43e0 20 3a 20 27 27 29 0a 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 .:.'')..str_replace(self::BOUNDA
c4400 52 59 2c 20 27 5c 5c 27 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 2c 20 24 74 68 69 73 2d 3e RY,.'\\'.self::BOUNDARY,.$this->
c4420 70 61 74 74 65 72 6e 29 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3f 20 73 65 6c pattern)..($this->endJoker.?.sel
c4440 66 3a 3a 4a 4f 4b 45 52 20 3a 20 27 27 29 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 f::JOKER.:.'')..($this->endFlag.
c4460 3f 20 73 65 6c 66 3a 3a 45 4e 44 5f 46 4c 41 47 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ?.self::END_FLAG.:.'');.}.....pu
c4480 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a blic.function.isCaseSensitive().
c44a0 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 69 27 29 3b {.return.!$this->hasOption('i');
c44c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 .}.....public.function.getType()
c44e0 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 52 45 47 45 58 .{.return.Expression::TYPE_REGEX
c4500 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 ;.}.....public.function.prepend(
c4520 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e $expr).{.$this->pattern.=.$expr.
c4540 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d $this->pattern;..return.$this;.}
c4560 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 .....public.function.append($exp
c4580 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 r).{.$this->pattern..=.$expr;..r
c45a0 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 eturn.$this;.}.......public.func
c45c0 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e tion.hasOption($option).{.return
c45e0 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 .false.!==.strpos($this->options
c4600 2c 20 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ,.$option);.}.......public.funct
c4620 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 ion.addOption($option).{.if.(!$t
c4640 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 his->hasOption($option)).{.$this
c4660 2d 3e 6f 70 74 69 6f 6e 73 2e 3d 20 24 6f 70 74 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ->options.=.$option;.}..return.$
c4680 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 this;.}.......public.function.re
c46a0 6d 6f 76 65 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 moveOption($option).{.$this->opt
c46c0 69 6f 6e 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 6f 70 74 69 6f 6e 2c 20 27 27 2c 20 ions.=.str_replace($option,.'',.
c46e0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a $this->options);..return.$this;.
c4700 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 72 74 }.......public.function.setStart
c4720 46 6c 61 67 28 24 73 74 61 72 74 46 6c 61 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 46 Flag($startFlag).{.$this->startF
c4740 6c 61 67 20 3d 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b lag.=.$startFlag;..return.$this;
c4760 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 61 72 74 46 .}.....public.function.hasStartF
c4780 6c 61 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 3b lag().{.return.$this->startFlag;
c47a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 64 46 .}.......public.function.setEndF
c47c0 6c 61 67 28 24 65 6e 64 46 6c 61 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3d lag($endFlag).{.$this->endFlag.=
c47e0 20 28 62 6f 6f 6c 29 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b .(bool).$endFlag;..return.$this;
c4800 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 45 6e 64 46 6c 61 .}.....public.function.hasEndFla
c4820 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 3b 0a 7d 0a 0a g().{.return.$this->endFlag;.}..
c4840 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 72 74 4a 6f 6b .....public.function.setStartJok
c4860 65 72 28 24 73 74 61 72 74 4a 6f 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f er($startJoker).{.$this->startJo
c4880 6b 65 72 20 3d 20 24 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ker.=.$startJoker;..return.$this
c48a0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 61 72 74 ;.}.....public.function.hasStart
c48c0 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b Joker().{.return.$this->startJok
c48e0 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 er;.}.......public.function.setE
c4900 6e 64 4a 6f 6b 65 72 28 24 65 6e 64 4a 6f 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 4a ndJoker($endJoker).{.$this->endJ
c4920 6f 6b 65 72 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 72 65 74 75 72 6e oker.=.(bool).$endJoker;..return
c4940 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 .$this;.}.....public.function.ha
c4960 73 45 6e 64 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 64 4a sEndJoker().{.return.$this->endJ
c4980 6f 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 oker;.}.......public.function.re
c49a0 70 6c 61 63 65 4a 6f 6b 65 72 73 28 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a 7b 0a 24 72 65 70 placeJokers($replacement).{.$rep
c49c0 6c 61 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 75 62 6a 65 63 74 29 20 75 73 65 20 28 lace.=.function.($subject).use.(
c49e0 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 20 7b 0a 24 73 75 62 6a 65 63 74 20 3d 20 24 73 75 62 6a $replacement).{.$subject.=.$subj
c4a00 65 63 74 5b 30 5d 3b 0a 24 72 65 70 6c 61 63 65 20 3d 20 30 20 3d 3d 3d 20 73 75 62 73 74 72 5f ect[0];.$replace.=.0.===.substr_
c4a20 63 6f 75 6e 74 28 24 73 75 62 6a 65 63 74 2c 20 27 5c 5c 27 29 20 25 20 32 3b 0a 0a 72 65 74 75 count($subject,.'\\').%.2;..retu
c4a40 72 6e 20 24 72 65 70 6c 61 63 65 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 27 2c 20 24 rn.$replace.?.str_replace('.',.$
c4a60 72 65 70 6c 61 63 65 6d 65 6e 74 2c 20 24 73 75 62 6a 65 63 74 29 20 3a 20 24 73 75 62 6a 65 63 replacement,.$subject).:.$subjec
c4a80 74 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 70 72 65 67 5f 72 65 70 t;.};..$this->pattern.=.preg_rep
c4aa0 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7e 5b 5c 5c 5c 5c 5d 2a 5c 5c 2e 7e 27 2c 20 24 72 lace_callback('~[\\\\]*\\.~',.$r
c4ac0 65 70 6c 61 63 65 2c 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e eplace,.$this->pattern);..return
c4ae0 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 .$this;.}.....private.function.p
c4b00 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 arsePattern($pattern).{.if.($thi
c4b20 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3d 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 4c 41 47 20 s->startFlag.=.self::START_FLAG.
c4b40 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 31 29 29 20 7b 0a 24 70 ===.substr($pattern,.0,.1)).{.$p
c4b60 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 31 29 3b 0a 7d 0a attern.=.substr($pattern,.1);.}.
c4b80 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3d 20 73 65 6c 66 3a 3a 4a .if.($this->startJoker.=.self::J
c4ba0 4f 4b 45 52 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 32 29 29 OKER.===.substr($pattern,.0,.2))
c4bc0 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 32 .{.$pattern.=.substr($pattern,.2
c4be0 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 73 65 6c 66 );.}..if.($this->endFlag.=.(self
c4c00 3a 3a 45 4e 44 5f 46 4c 41 47 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 ::END_FLAG.===.substr($pattern,.
c4c20 2d 31 29 20 26 26 20 73 65 6c 66 3a 3a 45 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 74 72 -1).&&.self::ESCAPING.!==.substr
c4c40 28 24 70 61 74 74 65 72 6e 2c 20 2d 32 2c 20 2d 31 29 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 ($pattern,.-2,.-1))).{.$pattern.
c4c60 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 31 29 3b 0a 7d 0a 0a 69 66 =.substr($pattern,.0,.-1);.}..if
c4c80 20 28 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3d 20 28 73 65 6c 66 3a 3a 4a 4f 4b 45 52 .($this->endJoker.=.(self::JOKER
c4ca0 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 32 29 20 26 26 20 73 65 6c .===.substr($pattern,.-2).&&.sel
c4cc0 66 3a 3a 45 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c f::ESCAPING.!==.substr($pattern,
c4ce0 20 2d 33 2c 20 2d 32 29 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 .-3,.-2))).{.$pattern.=.substr($
c4d00 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 32 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 pattern,.0,.-2);.}..$this->patte
c4d20 72 6e 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a rn.=.$pattern;.}.}.<?php........
c4d40 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 ...namespace.Symfony\Component\F
c4d60 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 inder\Expression;.....class.Glob
c4d80 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a .implements.ValueInterface.{....
c4da0 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e private.$pattern;.....public.fun
c4dc0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 ction.__construct($pattern).{.$t
c4de0 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 his->pattern.=.$pattern;.}.....p
c4e00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e ublic.function.render().{.return
c4e20 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$this->pattern;.}.....public.fu
c4e40 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 nction.renderPattern().{.return.
c4e60 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->pattern;.}.....public.fun
c4e80 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 ction.getType().{.return.Express
c4ea0 69 6f 6e 3a 3a 54 59 50 45 5f 47 4c 4f 42 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ion::TYPE_GLOB;.}.....public.fun
c4ec0 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e ction.isCaseSensitive().{.return
c4ee0 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 .true;.}.....public.function.pre
c4f00 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 pend($expr).{.$this->pattern.=.$
c4f20 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 expr.$this->pattern;..return.$th
c4f40 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 is;.}.....public.function.append
c4f60 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 ($expr).{.$this->pattern..=.$exp
c4f80 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 r;..return.$this;.}.......public
c4fa0 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 .function.isExpandable().{.retur
c4fc0 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 n.false.!==.strpos($this->patter
c4fe0 6e 2c 20 27 7b 27 29 0a 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 n,.'{').&&.false.!==.strpos($thi
c5000 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7d 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 s->pattern,.'}');.}........publi
c5020 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e c.function.toRegex($strictLeadin
c5040 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 gDot.=.true,.$strictWildcardSlas
c5060 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 h.=.true).{.$firstByte.=.true;.$
c5080 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 escaping.=.false;.$inCurlies.=.0
c50a0 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 ;.$regex.=.'';.$sizeGlob.=.strle
c50c0 6e 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 n($this->pattern);.for.($i.=.0;.
c50e0 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 $i.<.$sizeGlob;.$i++).{.$car.=.$
c5100 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 this->pattern[$i];.if.($firstByt
c5120 65 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e e).{.if.($strictLeadingDot.&&.'.
c5140 27 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e '.!==.$car).{.$regex..=.'(?=[^\.
c5160 5d 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 ])';.}..$firstByte.=.false;.}..i
c5180 66 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 f.('/'.===.$car).{.$firstByte.=.
c51a0 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 true;.}..if.('.'.===.$car.||.'('
c51c0 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 .===.$car.||.')'.===.$car.||.'|'
c51e0 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 .===.$car.||.'+'.===.$car.||.'^'
c5200 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 .===.$car.||.'$'.===.$car).{.$re
c5220 67 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d gex..=."\\$car";.}.elseif.('*'.=
c5240 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f ==.$car).{.$regex..=.$escaping.?
c5260 20 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f .'\\*'.:.($strictWildcardSlash.?
c5280 20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 .'[^/]*'.:.'.*');.}.elseif.('?'.
c52a0 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 ===.$car).{.$regex..=.$escaping.
c52c0 3f 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 ?.'\\?'.:.($strictWildcardSlash.
c52e0 3f 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d ?.'[^/]'.:.'.');.}.elseif.('{'.=
c5300 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f ==.$car).{.$regex..=.$escaping.?
c5320 20 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a .'\\{'.:.'(';.if.(!$escaping).{.
c5340 2b 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d ++$inCurlies;.}.}.elseif.('}'.==
c5360 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e =.$car.&&.$inCurlies).{.$regex..
c5380 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 =.$escaping.?.'}'.:.')';.if.(!$e
c53a0 73 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 scaping).{.--$inCurlies;.}.}.els
c53c0 65 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 eif.(','.===.$car.&&.$inCurlies)
c53e0 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 .{.$regex..=.$escaping.?.','.:.'
c5400 7c 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 |';.}.elseif.('\\'.===.$car).{.i
c5420 66 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 f.($escaping).{.$regex..=.'\\\\'
c5440 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 ;.$escaping.=.false;.}.else.{.$e
c5460 73 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 scaping.=.true;.}..continue;.}.e
c5480 6c 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e lse.{.$regex..=.$car;.}.$escapin
c54a0 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 65 67 65 78 28 27 g.=.false;.}..return.new.Regex('
c54c0 5e 27 2e 24 72 65 67 65 78 2e 27 24 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ^'.$regex.'$');.}.}.<?php.......
c54e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
c5500 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 70 Finder\Expression;.....class.Exp
c5520 72 65 73 73 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 ression.implements.ValueInterfac
c5540 65 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 e.{.const.TYPE_REGEX.=.1;.const.
c5560 54 59 50 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 61 6c 75 TYPE_GLOB.=.2;.....private.$valu
c5580 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 e;.......public.static.function.
c55a0 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 create($expr).{.return.new.self(
c55c0 24 65 78 70 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f $expr);.}.....public.function.__
c55e0 63 6f 6e 73 74 72 75 63 74 28 24 65 78 70 72 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e construct($expr).{.try.{.$this->
c5600 76 61 6c 75 65 20 3d 20 52 65 67 65 78 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 29 3b 0a 7d 20 value.=.Regex::create($expr);.}.
c5620 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e catch.(\InvalidArgumentException
c5640 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3d 20 6e 65 77 20 47 6c 6f 62 28 24 .$e).{.$this->value.=.new.Glob($
c5660 65 78 70 72 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f expr);.}.}.....public.function._
c5680 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6e 64 _toString().{.return.$this->rend
c56a0 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 er();.}.....public.function.rend
c56c0 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 er().{.return.$this->value->rend
c56e0 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 er();.}.....public.function.rend
c5700 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 erPattern().{.return.$this->valu
c5720 65 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e->renderPattern();.}.....public
c5740 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 .function.isCaseSensitive().{.re
c5760 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 turn.$this->value->isCaseSensiti
c5780 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 ve();.}.....public.function.getT
c57a0 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 ype().{.return.$this->value->get
c57c0 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 Type();.}.....public.function.pr
c57e0 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 70 72 65 epend($expr).{.$this->value->pre
c5800 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a pend($expr);..return.$this;.}...
c5820 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a ..public.function.append($expr).
c5840 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 61 70 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a {.$this->value->append($expr);..
c5860 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.$this;.}.....public.funct
c5880 69 6f 6e 20 69 73 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 ion.isRegex().{.return.self::TYP
c58a0 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 E_REGEX.===.$this->value->getTyp
c58c0 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 47 6c 6f e();.}.....public.function.isGlo
c58e0 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 3d 3d 3d b().{.return.self::TYPE_GLOB.===
c5900 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a .$this->value->getType();.}.....
c5920 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 6c 6f 62 28 29 0a 7b 0a 69 66 ..public.function.getGlob().{.if
c5940 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 21 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c .(self::TYPE_GLOB.!==.$this->val
c5960 75 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 ue->getType()).{.throw.new.\Logi
c5980 63 45 78 63 65 70 74 69 6f 6e 28 27 52 65 67 65 78 20 63 61 6e 74 20 62 65 20 74 72 61 6e 73 66 cException('Regex.cant.be.transf
c59a0 6f 72 6d 65 64 20 74 6f 20 67 6c 6f 62 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ormed.to.glob.');.}..return.$thi
c59c0 73 2d 3e 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s->value;.}.....public.function.
c59e0 67 65 74 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 getRegex().{.return.self::TYPE_R
c5a00 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 EGEX.===.$this->value->getType()
c5a20 20 3f 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3a 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e .?.$this->value.:.$this->value->
c5a40 74 6f 52 65 67 65 78 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e toRegex();.}.}.<?php...........n
c5a60 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 amespace.Symfony\Component\Finde
c5a80 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 61 6c 75 r\Expression;.....interface.Valu
c5aa0 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eInterface.{......public.functio
c5ac0 6e 20 72 65 6e 64 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.render();.......public.functio
c5ae0 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.renderPattern();.......public.
c5b00 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a function.isCaseSensitive();.....
c5b20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a ..public.function.getType();....
c5b40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 ...public.function.prepend($expr
c5b60 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 );.......public.function.append(
c5b80 24 65 78 70 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 $expr);.}.<?php...........namesp
c5ba0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 ace.Symfony\Component\Finder\Ada
c5bc0 70 74 65 72 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 64 61 70 74 65 72 49 6e 74 65 72 pter;.....interface.AdapterInter
c5be0 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 face.{......public.function.setF
c5c00 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 3b 0a 0a 0a 0a 0a 0a 0a ollowLinks($followLinks);.......
c5c20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 3b 0a public.function.setMode($mode);.
c5c40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 ......public.function.setExclude
c5c60 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 (array.$exclude);.......public.f
c5c80 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 68 73 29 unction.setDepths(array.$depths)
c5ca0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 ;.......public.function.setNames
c5cc0 28 61 72 72 61 79 20 24 6e 61 6d 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e (array.$names);.......public.fun
c5ce0 63 74 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 ction.setNotNames(array.$notName
c5d00 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e s);.......public.function.setCon
c5d20 74 61 69 6e 73 28 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 tains(array.$contains);.......pu
c5d40 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 blic.function.setNotContains(arr
c5d60 61 79 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ay.$notContains);.......public.f
c5d80 75 6e 63 74 69 6f 6e 20 73 65 74 53 69 7a 65 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 3b 0a unction.setSizes(array.$sizes);.
c5da0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 ......public.function.setDates(a
c5dc0 72 72 61 79 20 24 64 61 74 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rray.$dates);.......public.funct
c5de0 69 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 3b 0a ion.setFilters(array.$filters);.
c5e00 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 ......public.function.setSort($s
c5e20 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 ort);.......public.function.setP
c5e40 61 74 68 28 61 72 72 61 79 20 24 70 61 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ath(array.$paths);.......public.
c5e60 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 function.setNotPath(array.$notPa
c5e80 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f ths);.......public.function.igno
c5ea0 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 reUnreadableDirs($ignore.=.true)
c5ec0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e ;.......public.function.searchIn
c5ee0 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 Directory($dir);.......public.fu
c5f00 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c nction.isSupported();.......publ
c5f20 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a ic.function.getName();.}.<?php..
c5f40 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
c5f60 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Finder\Adapter;..use.Symfon
c5f80 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a y\Component\Finder\Shell\Shell;.
c5fa0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 use.Symfony\Component\Finder\She
c5fc0 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ll\Command;.use.Symfony\Componen
c5fe0 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 t\Finder\Iterator\SortableIterat
c6000 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 or;.use.Symfony\Component\Finder
c6020 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c \Expression\Expression;.......cl
c6040 61 73 73 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 ass.BsdFindAdapter.extends.Abstr
c6060 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 actFindAdapter.{....public.funct
c6080 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 62 73 64 5f 66 69 6e 64 ion.getName().{.return.'bsd_find
c60a0 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 ';.}.....protected.function.canB
c60c0 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d eUsed().{.return.in_array($this-
c60e0 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 53 68 65 6c 6c 3a 3a >shell->getType(),.array(Shell::
c6100 54 59 50 45 5f 42 53 44 2c 20 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 29 29 20 26 TYPE_BSD,.Shell::TYPE_DARWIN)).&
c6120 26 20 70 61 72 65 6e 74 3a 3a 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f &.parent::canBeUsed();.}.....pro
c6140 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 tected.function.buildFormatSorti
c6160 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 ng(Command.$command,.$sort).{.sw
c6180 69 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 itch.($sort).{.case.SortableIter
c61a0 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e ator::SORT_BY_NAME:.$command->in
c61c0 73 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 s('sort')->add('|.sort');..retur
c61e0 6e 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 n;.case.SortableIterator::SORT_B
c6200 59 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 48 54 27 3b 0a 62 72 65 61 6b 3b 0a Y_TYPE:.$format.=.'%HT';.break;.
c6220 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 case.SortableIterator::SORT_BY_A
c6240 43 43 45 53 53 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 61 27 3b 0a 62 72 CCESSED_TIME:.$format.=.'%a';.br
c6260 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 eak;.case.SortableIterator::SORT
c6280 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 63 27 _BY_CHANGED_TIME:.$format.=.'%c'
c62a0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a ;.break;.case.SortableIterator::
c62c0 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d SORT_BY_MODIFIED_TIME:.$format.=
c62e0 20 27 25 6d 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 .'%m';.break;.default:.throw.new
c6300 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
c6320 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 tf('Unknown.sort.options:.%s.',.
c6340 24 73 6f 72 74 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 2d 70 72 69 $sort));.}..$command.->add('-pri
c6360 6e 74 30 20 7c 20 78 61 72 67 73 20 2d 30 20 73 74 61 74 20 2d 66 27 29 0a 2d 3e 61 72 67 28 24 nt0.|.xargs.-0.stat.-f').->arg($
c6380 66 6f 72 6d 61 74 2e 27 25 74 25 4e 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 format.'%t%N').->add('|.sort.|.c
c63a0 75 74 20 2d 66 20 32 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ut.-f.2');.}.....protected.funct
c63c0 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f ion.buildFindCommand(Command.$co
c63e0 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 mmand,.$dir).{.parent::buildFind
c6400 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 2d 3e 61 64 64 41 74 49 6e Command($command,.$dir)->addAtIn
c6420 64 65 78 28 27 2d 45 27 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a dex('-E',.1);..return.$command;.
c6440 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f }.....protected.function.buildCo
c6460 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c ntentFiltering(Command.$command,
c6480 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a .array.$contains,.$not.=.false).
c64a0 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e 74 61 69 6e {.foreach.($contains.as.$contain
c64c0 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 ).{.$expr.=.Expression::create($
c64e0 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 7c 20 67 contain);....$command.->add('|.g
c6500 72 65 70 20 2d 76 20 5c 27 5e 24 5c 27 27 29 0a 2d 3e 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d rep.-v.\'^$\'').->add('|.xargs.-
c6520 49 7b 7d 20 67 72 65 70 20 2d 49 27 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 I{}.grep.-I').->add($expr->isCas
c6540 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 6e 75 6c 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 eSensitive().?.null.:.'-i').->ad
c6560 64 28 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 3a 20 27 2d 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 d($not.?.'-L'.:.'-l').->add('-Ee
c6580 27 29 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a ')->arg($expr->renderPattern()).
c65a0 2d 3e 61 64 64 28 27 7b 7d 27 29 0a 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ->add('{}').;.}.}.}.<?php.......
c65c0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
c65e0 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Finder\Adapter;..use.Symfony\Com
c6600 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 ponent\Finder\Shell\Shell;.use.S
c6620 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f ymfony\Component\Finder\Shell\Co
c6640 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e mmand;.use.Symfony\Component\Fin
c6660 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 der\Iterator\SortableIterator;.u
c6680 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 se.Symfony\Component\Finder\Expr
c66a0 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 ession\Expression;.......class.G
c66c0 6e 75 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 nuFindAdapter.extends.AbstractFi
c66e0 6e 64 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ndAdapter.{....public.function.g
c6700 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 6e 75 5f 66 69 6e 64 27 3b 0a 7d 0a etName().{.return.'gnu_find';.}.
c6720 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d ....protected.function.buildForm
c6740 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 atSorting(Command.$command,.$sor
c6760 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 t).{.switch.($sort).{.case.Sorta
c6780 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d bleIterator::SORT_BY_NAME:.$comm
c67a0 61 6e 64 2d 3e 69 6e 73 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b and->ins('sort')->add('|.sort');
c67c0 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a ..return;.case.SortableIterator:
c67e0 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 79 27 3b 0a 62 :SORT_BY_TYPE:.$format.=.'%y';.b
c6800 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 reak;.case.SortableIterator::SOR
c6820 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 T_BY_ACCESSED_TIME:.$format.=.'%
c6840 41 40 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f A@';.break;.case.SortableIterato
c6860 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 r::SORT_BY_CHANGED_TIME:.$format
c6880 20 3d 20 27 25 43 40 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 .=.'%C@';.break;.case.SortableIt
c68a0 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 erator::SORT_BY_MODIFIED_TIME:.$
c68c0 66 6f 72 6d 61 74 20 3d 20 27 25 54 40 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a format.=.'%T@';.break;.default:.
c68e0 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
c6900 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e ion(sprintf('Unknown.sort.option
c6920 73 3a 20 25 73 2e 27 2c 20 24 73 6f 72 74 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e s:.%s.',.$sort));.}..$command.->
c6940 67 65 74 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 28 27 2d 70 72 69 6e 74 66 27 29 0a 2d 3e 61 get('find').->add('-printf').->a
c6960 72 67 28 24 66 6f 72 6d 61 74 2e 27 20 25 68 2f 25 66 5c 5c 6e 27 29 0a 2d 3e 61 64 64 28 27 7c rg($format.'.%h/%f\\n').->add('|
c6980 20 73 6f 72 74 20 7c 20 63 75 74 27 29 0a 2d 3e 61 72 67 28 27 2d 64 20 27 29 0a 2d 3e 61 72 67 .sort.|.cut').->arg('-d.').->arg
c69a0 28 27 2d 66 32 2d 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ('-f2-').;.}.....protected.funct
c69c0 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ion.canBeUsed().{.return.$this->
c69e0 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 53 68 65 6c 6c 3a 3a 54 59 50 45 shell->getType().===.Shell::TYPE
c6a00 5f 55 4e 49 58 20 26 26 20 70 61 72 65 6e 74 3a 3a 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a _UNIX.&&.parent::canBeUsed();.}.
c6a20 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 ....protected.function.buildFind
c6a40 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a Command(Command.$command,.$dir).
c6a60 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e {.return.parent::buildFindComman
c6a80 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 2d 3e 61 64 64 28 27 2d 72 65 67 65 78 74 79 d($command,.$dir)->add('-regexty
c6aa0 70 65 20 70 6f 73 69 78 2d 65 78 74 65 6e 64 65 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 pe.posix-extended');.}.....prote
c6ac0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 cted.function.buildContentFilter
c6ae0 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e ing(Command.$command,.array.$con
c6b00 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 tains,.$not.=.false).{.foreach.(
c6b20 24 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d $contains.as.$contain).{.$expr.=
c6b40 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a .Expression::create($contain);..
c6b60 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 2d ..$command.->add('|.xargs.-I{}.-
c6b80 72 20 67 72 65 70 20 2d 49 27 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 r.grep.-I').->add($expr->isCaseS
c6ba0 65 6e 73 69 74 69 76 65 28 29 20 3f 20 6e 75 6c 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 ensitive().?.null.:.'-i').->add(
c6bc0 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 3a 20 27 2d 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 $not.?.'-L'.:.'-l').->add('-Ee')
c6be0 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e ->arg($expr->renderPattern()).->
c6c00 61 64 64 28 27 7b 7d 27 29 0a 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a add('{}').;.}.}.}.<?php.........
c6c20 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
c6c40 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 nder\Adapter;.......abstract.cla
c6c60 73 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 64 ss.AbstractAdapter.implements.Ad
c6c80 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 6f 6c 6c apterInterface.{.protected.$foll
c6ca0 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 6f 64 65 owLinks.=.false;.protected.$mode
c6cc0 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 70 .=.0;.protected.$minDepth.=.0;.p
c6ce0 72 6f 74 65 63 74 65 64 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 rotected.$maxDepth.=.PHP_INT_MAX
c6d00 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a ;.protected.$exclude.=.array();.
c6d20 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 protected.$names.=.array();.prot
c6d40 65 63 74 65 64 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 ected.$notNames.=.array();.prote
c6d60 63 74 65 64 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 cted.$contains.=.array();.protec
c6d80 74 65 64 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 ted.$notContains.=.array();.prot
c6da0 65 63 74 65 64 20 24 73 69 7a 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ected.$sizes.=.array();.protecte
c6dc0 64 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 d.$dates.=.array();.protected.$f
c6de0 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 72 ilters.=.array();.protected.$sor
c6e00 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 68 73 20 3d 20 61 72 t.=.false;.protected.$paths.=.ar
c6e20 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 ray();.protected.$notPaths.=.arr
c6e40 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c ay();.protected.$ignoreUnreadabl
c6e60 65 44 69 72 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 eDirs.=.false;..private.static.$
c6e80 61 72 65 53 75 70 70 6f 72 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c areSupported.=.array();.....publ
c6ea0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 28 29 0a 7b 0a 24 6e 61 6d ic.function.isSupported().{.$nam
c6ec0 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 61 72 72 61 e.=.$this->getName();..if.(!arra
c6ee0 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6e 61 6d 65 2c 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 y_key_exists($name,.self::$areSu
c6f00 70 70 6f 72 74 65 64 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b pported)).{.self::$areSupported[
c6f20 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a $name].=.$this->canBeUsed();.}..
c6f40 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 return.self::$areSupported[$name
c6f60 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 6c 6c ];.}.....public.function.setFoll
c6f80 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 owLinks($followLinks).{.$this->f
c6fa0 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 3b 0a 0a 72 65 74 75 ollowLinks.=.$followLinks;..retu
c6fc0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rn.$this;.}.....public.function.
c6fe0 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 setMode($mode).{.$this->mode.=.$
c7000 6d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 mode;..return.$this;.}.....publi
c7020 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 c.function.setDepths(array.$dept
c7040 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 hs).{.$this->minDepth.=.0;.$this
c7060 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 0a 66 6f 72 65 61 ->maxDepth.=.PHP_INT_MAX;..forea
c7080 63 68 20 28 24 64 65 70 74 68 73 20 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 29 20 7b 0a 73 77 ch.($depths.as.$comparator).{.sw
c70a0 69 74 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 itch.($comparator->getOperator()
c70c0 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 ).{.case.'>':.$this->minDepth.=.
c70e0 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 $comparator->getTarget().+.1;.br
c7100 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 eak;.case.'>=':.$this->minDepth.
c7120 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 =.$comparator->getTarget();.brea
c7140 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 k;.case.'<':.$this->maxDepth.=.$
c7160 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 comparator->getTarget().-.1;.bre
c7180 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d ak;.case.'<=':.$this->maxDepth.=
c71a0 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b .$comparator->getTarget();.break
c71c0 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 74 68 ;.default:.$this->minDepth.=.$th
c71e0 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 is->maxDepth.=.$comparator->getT
c7200 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a arget();.}.}..return.$this;.}...
c7220 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 ..public.function.setExclude(arr
c7240 61 79 20 24 65 78 63 6c 75 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 ay.$exclude).{.$this->exclude.=.
c7260 24 65 78 63 6c 75 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 $exclude;..return.$this;.}.....p
c7280 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e ublic.function.setNames(array.$n
c72a0 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 3d 20 24 6e 61 6d 65 73 3b 0a 0a ames).{.$this->names.=.$names;..
c72c0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.$this;.}.....public.funct
c72e0 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 ion.setNotNames(array.$notNames)
c7300 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 20 3d 20 24 6e 6f 74 4e 61 6d 65 73 3b 0a .{.$this->notNames.=.$notNames;.
c7320 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .return.$this;.}.....public.func
c7340 74 69 6f 6e 20 73 65 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 tion.setContains(array.$contains
c7360 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 3d 20 24 63 6f 6e 74 61 69 6e 73 3b ).{.$this->contains.=.$contains;
c7380 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
c73a0 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 ction.setNotContains(array.$notC
c73c0 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 ontains).{.$this->notContains.=.
c73e0 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a $notContains;..return.$this;.}..
c7400 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 69 7a 65 73 28 61 72 72 61 ...public.function.setSizes(arra
c7420 79 20 24 73 69 7a 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 20 3d 20 24 73 69 7a 65 y.$sizes).{.$this->sizes.=.$size
c7440 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s;..return.$this;.}.....public.f
c7460 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b unction.setDates(array.$dates).{
c7480 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 20 3d 20 24 64 61 74 65 73 3b 0a 0a 72 65 74 75 72 6e 20 .$this->dates.=.$dates;..return.
c74a0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 $this;.}.....public.function.set
c74c0 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d Filters(array.$filters).{.$this-
c74e0 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 >filters.=.$filters;..return.$th
c7500 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 is;.}.....public.function.setSor
c7520 74 28 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a t($sort).{.$this->sort.=.$sort;.
c7540 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .return.$this;.}.....public.func
c7560 74 69 6f 6e 20 73 65 74 50 61 74 68 28 61 72 72 61 79 20 24 70 61 74 68 73 29 0a 7b 0a 24 74 68 tion.setPath(array.$paths).{.$th
c7580 69 73 2d 3e 70 61 74 68 73 20 3d 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->paths.=.$paths;..return.$thi
c75a0 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 s;.}.....public.function.setNotP
c75c0 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f ath(array.$notPaths).{.$this->no
c75e0 74 50 61 74 68 73 20 3d 20 24 6e 6f 74 50 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 tPaths.=.$notPaths;..return.$thi
c7600 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 s;.}.....public.function.ignoreU
c7620 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a nreadableDirs($ignore.=.true).{.
c7640 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 42 $this->ignoreUnreadableDirs.=.(B
c7660 6f 6f 6c 65 61 6e 29 20 24 69 67 6e 6f 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a oolean).$ignore;..return.$this;.
c7680 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 }.............abstract.protected
c76a0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a .function.canBeUsed();.}.<?php..
c76c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
c76e0 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Finder\Adapter;..use.Symfon
c7700 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 41 63 63 y\Component\Finder\Exception\Acc
c7720 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c essDeniedException;.use.Symfony\
c7740 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 Component\Finder\Iterator;.use.S
c7760 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 ymfony\Component\Finder\Shell\Sh
c7780 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 ell;.use.Symfony\Component\Finde
c77a0 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 75 73 65 20 53 79 6d r\Expression\Expression;.use.Sym
c77c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d fony\Component\Finder\Shell\Comm
c77e0 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 and;.use.Symfony\Component\Finde
c7800 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 r\Iterator\SortableIterator;.use
c7820 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 .Symfony\Component\Finder\Compar
c7840 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f ator\NumberComparator;.use.Symfo
c7860 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 ny\Component\Finder\Comparator\D
c7880 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c ateComparator;.......abstract.cl
c78a0 61 73 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 ass.AbstractFindAdapter.extends.
c78c0 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 AbstractAdapter.{....protected.$
c78e0 73 68 65 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e shell;.....public.function.__con
c7900 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 68 65 6c 6c 20 3d 20 6e 65 77 20 53 68 struct().{.$this->shell.=.new.Sh
c7920 65 6c 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 ell();.}.....public.function.sea
c7940 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a 7b 0a 0a 20 24 64 69 72 20 3d 20 rchInDirectory($dir).{...$dir.=.
c7960 72 65 61 6c 70 61 74 68 28 24 64 69 72 29 3b 0a 0a 0a 20 69 66 20 28 49 74 65 72 61 74 6f 72 5c realpath($dir);....if.(Iterator\
c7980 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 FileTypeFilterIterator::ONLY_DIR
c79a0 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 28 24 74 68 ECTORIES.===.$this->mode.&&.($th
c79c0 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 is->contains.||.$this->notContai
c79e0 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 ns)).{.return.new.Iterator\FileP
c7a00 61 74 68 73 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 2c 20 24 64 69 72 29 3b 0a 7d 0a 0a athsIterator(array(),.$dir);.}..
c7a20 24 63 6f 6d 6d 61 6e 64 20 3d 20 43 6f 6d 6d 61 6e 64 3a 3a 63 72 65 61 74 65 28 29 3b 0a 24 66 $command.=.Command::create();.$f
c7a40 69 6e 64 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 ind.=.$this->buildFindCommand($c
c7a60 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f ommand,.$dir);..if.($this->follo
c7a80 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 66 6f 6c 6c 6f 77 27 29 3b wLinks).{.$find->add('-follow');
c7aa0 0a 7d 0a 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 69 6e 64 65 70 74 68 27 29 2d 3e 61 64 64 .}..$find->add('-mindepth')->add
c7ac0 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 2b 20 31 29 3b 0a 0a 69 66 20 28 50 48 50 5f ($this->minDepth.+.1);..if.(PHP_
c7ae0 49 4e 54 5f 4d 41 58 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 20 7b 0a 24 INT_MAX.!==.$this->maxDepth).{.$
c7b00 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d 61 78 64 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 find->add('-maxdepth')->add($thi
c7b20 73 2d 3e 6d 61 78 44 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 49 74 65 72 61 74 6f s->maxDepth.+.1);.}..if.(Iterato
c7b40 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 r\FileTypeFilterIterator::ONLY_D
c7b60 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 IRECTORIES.===.$this->mode).{.$f
c7b80 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 64 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 49 ind->add('-type.d');.}.elseif.(I
c7ba0 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a terator\FileTypeFilterIterator::
c7bc0 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 ONLY_FILES.===.$this->mode).{.$f
c7be0 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 70 65 20 66 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 ind->add('-type.f');.}..$this->b
c7c00 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d uildNamesFiltering($find,.$this-
c7c20 3e 6e 61 6d 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 >names);.$this->buildNamesFilter
c7c40 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 2c 20 74 72 75 65 ing($find,.$this->notNames,.true
c7c60 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 24 66 );.$this->buildPathsFiltering($f
c7c80 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 73 29 3b 0a 24 74 68 69 73 2d ind,.$dir,.$this->paths);.$this-
c7ca0 3e 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 >buildPathsFiltering($find,.$dir
c7cc0 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d ,.$this->notPaths,.true);.$this-
c7ce0 3e 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 >buildSizesFiltering($find,.$thi
c7d00 73 2d 3e 73 69 7a 65 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 s->sizes);.$this->buildDatesFilt
c7d20 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 0a 24 75 73 ering($find,.$this->dates);..$us
c7d40 65 47 72 65 70 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e eGrep.=.$this->shell->testComman
c7d60 64 28 27 67 72 65 70 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 d('grep').&&.$this->shell->testC
c7d80 6f 6d 6d 61 6e 64 28 27 78 61 72 67 73 27 29 3b 0a 24 75 73 65 53 6f 72 74 20 3d 20 69 73 5f 69 ommand('xargs');.$useSort.=.is_i
c7da0 6e 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d nt($this->sort).&&.$this->shell-
c7dc0 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 73 6f 72 74 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 >testCommand('sort').&&.$this->s
c7de0 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 63 75 74 27 29 3b 0a 0a 69 66 20 28 24 hell->testCommand('cut');..if.($
c7e00 75 73 65 47 72 65 70 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 useGrep.&&.($this->contains.||.$
c7e20 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 24 67 72 65 70 20 3d 20 24 63 this->notContains)).{.$grep.=.$c
c7e40 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 67 72 65 70 27 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c ommand->ins('grep');.$this->buil
c7e60 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d 3e dContentFiltering($grep,.$this->
c7e80 63 6f 6e 74 61 69 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 contains);.$this->buildContentFi
c7ea0 6c 74 65 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e ltering($grep,.$this->notContain
c7ec0 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 53 6f 72 74 29 20 7b 0a 24 74 68 s,.true);.}..if.($useSort).{.$th
c7ee0 69 73 2d 3e 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 is->buildSorting($command,.$this
c7f00 2d 3e 73 6f 72 74 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 45 72 72 6f 72 48 61 ->sort);.}..$command->setErrorHa
c7f20 6e 64 6c 65 72 28 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 ndler(.$this->ignoreUnreadableDi
c7f40 72 73 0a 0a 20 3f 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 72 65 74 75 rs...?.function.($stderr).{.retu
c7f60 72 6e 3b 20 7d 0a 3a 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 74 68 72 rn;.}.:.function.($stderr).{.thr
c7f80 6f 77 20 6e 65 77 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 28 24 73 74 ow.new.AccessDeniedException($st
c7fa0 64 65 72 72 29 3b 20 7d 0a 29 3b 0a 0a 24 70 61 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 derr);.}.);..$paths.=.$this->she
c7fc0 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 75 6e 69 71 27 29 20 3f 20 24 63 6f 6d 6d 61 ll->testCommand('uniq').?.$comma
c7fe0 6e 64 2d 3e 61 64 64 28 27 7c 20 75 6e 69 71 27 29 2d 3e 65 78 65 63 75 74 65 28 29 20 3a 20 61 nd->add('|.uniq')->execute().:.a
c8000 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e 65 78 65 63 75 74 65 28 29 29 rray_unique($command->execute())
c8020 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 ;.$iterator.=.new.Iterator\FileP
c8040 61 74 68 73 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 73 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 athsIterator($paths,.$dir);..if.
c8060 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e ($this->exclude).{.$iterator.=.n
c8080 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 ew.Iterator\ExcludeDirectoryFilt
c80a0 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 65 78 63 erIterator($iterator,.$this->exc
c80c0 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 47 72 65 70 20 26 26 20 28 24 74 68 69 lude);.}..if.(!$useGrep.&&.($thi
c80e0 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e s->contains.||.$this->notContain
c8100 73 29 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 s)).{.$iterator.=.new.Iterator\F
c8120 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 ilecontentFilterIterator($iterat
c8140 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 or,.$this->contains,.$this->notC
c8160 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 ontains);.}..if.($this->filters)
c8180 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 43 75 73 74 .{.$iterator.=.new.Iterator\Cust
c81a0 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 omFilterIterator($iterator,.$thi
c81c0 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 53 6f 72 74 20 26 26 s->filters);.}..if.(!$useSort.&&
c81e0 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 .$this->sort).{.$iteratorAggrega
c8200 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 te.=.new.Iterator\SortableIterat
c8220 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 or($iterator,.$this->sort);.$ite
c8240 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 rator.=.$iteratorAggregate->getI
c8260 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a terator();.}..return.$iterator;.
c8280 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 }.....protected.function.canBeUs
c82a0 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 ed().{.return.$this->shell->test
c82c0 43 6f 6d 6d 61 6e 64 28 27 66 69 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 Command('find');.}........protec
c82e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f ted.function.buildFindCommand(Co
c8300 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 mmand.$command,.$dir).{.return.$
c8320 63 6f 6d 6d 61 6e 64 0a 2d 3e 69 6e 73 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 28 27 66 69 6e command.->ins('find').->add('fin
c8340 64 20 27 29 0a 2d 3e 61 72 67 28 24 64 69 72 29 0a 2d 3e 61 64 64 28 27 2d 6e 6f 6c 65 61 66 27 d.').->arg($dir).->add('-noleaf'
c8360 29 3b 20 0a 20 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 );...}.......private.function.bu
c8380 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 ildNamesFiltering(Command.$comma
c83a0 6e 64 2c 20 61 72 72 61 79 20 24 6e 61 6d 65 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a nd,.array.$names,.$not.=.false).
c83c0 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6e 61 6d 65 73 29 29 20 7b 0a 72 65 74 {.if.(0.===.count($names)).{.ret
c83e0 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e urn;.}..$command->add($not.?.'-n
c8400 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ot'.:.null)->cmd('(');..foreach.
c8420 28 24 6e 61 6d 65 73 20 61 73 20 24 69 20 3d 3e 20 24 6e 61 6d 65 29 20 7b 0a 24 65 78 70 72 20 ($names.as.$i.=>.$name).{.$expr.
c8440 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 =.Expression::create($name);....
c8460 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d 3e 67 65 if.($expr->isGlob().&&.$expr->ge
c8480 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 tGlob()->isExpandable()).{.$expr
c84a0 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e 67 65 74 .=.Expression::create($expr->get
c84c0 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a 20 0a 20 Glob()->toRegex(false));.}......
c84e0 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 72 65 67 65 78 ..if.($expr->isRegex()).{.$regex
c8500 20 3d 20 24 65 78 70 72 2d 3e 67 65 74 52 65 67 65 78 28 29 3b 0a 24 72 65 67 65 78 2d 3e 70 72 .=.$expr->getRegex();.$regex->pr
c8520 65 70 65 6e 64 28 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 27 epend($regex->hasStartFlag().?.'
c8540 2f 27 20 3a 20 27 2f 5b 5e 2f 5d 2a 27 29 0a 2d 3e 73 65 74 53 74 61 72 74 46 6c 61 67 28 66 61 /'.:.'/[^/]*').->setStartFlag(fa
c8560 6c 73 65 29 0a 2d 3e 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 74 72 75 65 29 0a 2d 3e 72 65 70 lse).->setStartJoker(true).->rep
c8580 6c 61 63 65 4a 6f 6b 65 72 73 28 27 5b 5e 2f 5d 27 29 3b 0a 69 66 20 28 21 24 72 65 67 65 78 2d laceJokers('[^/]');.if.(!$regex-
c85a0 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 20 7c 7c 20 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 4a >hasEndFlag().||.$regex->hasEndJ
c85c0 6f 6b 65 72 28 29 29 20 7b 0a 24 72 65 67 65 78 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 28 66 61 oker()).{.$regex->setEndJoker(fa
c85e0 6c 73 65 29 2d 3e 61 70 70 65 6e 64 28 27 5b 5e 2f 5d 2a 27 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d lse)->append('[^/]*');.}.}..$com
c8600 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c mand.->add($i.>.0.?.'-or'.:.null
c8620 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 ).->add($expr->isRegex().?.($exp
c8640 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 r->isCaseSensitive().?.'-regex'.
c8660 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e :.'-iregex').:.($expr->isCaseSen
c8680 73 69 74 69 76 65 28 29 20 3f 20 27 2d 6e 61 6d 65 27 20 3a 20 27 2d 69 6e 61 6d 65 27 29 0a 29 sitive().?.'-name'.:.'-iname').)
c86a0 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a .->arg($expr->renderPattern());.
c86c0 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a }..$command->cmd(')');.}........
c86e0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 private.function.buildPathsFilte
c8700 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 2c 20 61 72 72 ring(Command.$command,.$dir,.arr
c8720 61 79 20 24 70 61 74 68 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 ay.$paths,.$not.=.false).{.if.(0
c8740 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 70 61 74 68 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a .===.count($paths)).{.return;.}.
c8760 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e .$command->add($not.?.'-not'.:.n
c8780 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 ull)->cmd('(');..foreach.($paths
c87a0 20 61 73 20 24 69 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 .as.$i.=>.$path).{.$expr.=.Expre
c87c0 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 ssion::create($path);....if.($ex
c87e0 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 pr->isGlob().&&.$expr->getGlob()
c8800 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 ->isExpandable()).{.$expr.=.Expr
c8820 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d ession::create($expr->getGlob()-
c8840 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 >toRegex(false));.}....if.($expr
c8860 2d 3e 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 ->isRegex()).{.$regex.=.$expr->g
c8880 65 74 52 65 67 65 78 28 29 3b 0a 24 72 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 etRegex();.$regex->prepend($rege
c88a0 78 2d 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 24 64 69 72 2e 44 49 52 45 43 54 4f x->hasStartFlag().?.$dir.DIRECTO
c88c0 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3a 20 27 2e 2a 27 29 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 RY_SEPARATOR.:.'.*')->setEndJoke
c88e0 72 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 29 3b 0a 7d 20 65 6c 73 65 r(!$regex->hasEndFlag());.}.else
c8900 20 7b 0a 24 65 78 70 72 2d 3e 70 72 65 70 65 6e 64 28 27 2a 27 29 2d 3e 61 70 70 65 6e 64 28 27 .{.$expr->prepend('*')->append('
c8920 2a 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 *');.}..$command.->add($i.>.0.?.
c8940 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 '-or'.:.null).->add($expr->isReg
c8960 65 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 ex().?.($expr->isCaseSensitive()
c8980 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 .?.'-regex'.:.'-iregex').:.($exp
c89a0 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 70 61 74 68 27 20 3a r->isCaseSensitive().?.'-path'.:
c89c0 20 27 2d 69 70 61 74 68 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 .'-ipath').).->arg($expr->render
c89e0 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 Pattern());.}..$command->cmd(')'
c8a00 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 );.}......private.function.build
c8a20 53 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c SizesFiltering(Command.$command,
c8a40 20 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 69 7a 65 73 .array.$sizes).{.foreach.($sizes
c8a60 20 61 73 20 24 69 20 3d 3e 20 24 73 69 7a 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 .as.$i.=>.$size).{.$command->add
c8a80 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 73 77 69 74 63 ($i.>.0.?.'-and'.:.null);..switc
c8aa0 68 20 28 24 73 69 7a 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 h.($size->getOperator()).{.case.
c8ac0 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 28 24 '<=':.$command->add('-size.-'.($
c8ae0 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 size->getTarget().+.1).'c');.bre
c8b00 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 ak;.case.'>=':.$command->add('-s
c8b20 69 7a 65 20 2b 27 2e 20 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 ize.+'..($size->getTarget().-.1)
c8b40 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 .'c');.break;.case.'>':.$command
c8b60 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 ->add('-size.+'.$size->getTarget
c8b80 28 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d ().'c');.break;.case.'!=':.$comm
c8ba0 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 and->add('-size.-'.$size->getTar
c8bc0 67 65 74 28 29 2e 27 63 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 get().'c');.$command->add('-size
c8be0 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 63 61 73 .+'.$size->getTarget().'c');.cas
c8c00 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d e.'<':.default:.$command->add('-
c8c20 73 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b size.-'.$size->getTarget().'c');
c8c40 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 .}.}.}......private.function.bui
c8c60 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e ldDatesFiltering(Command.$comman
c8c80 64 2c 20 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 d,.array.$dates).{.foreach.($dat
c8ca0 65 73 20 61 73 20 24 69 20 3d 3e 20 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 es.as.$i.=>.$date).{.$command->a
c8cc0 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 24 6d 69 dd($i.>.0.?.'-and'.:.null);..$mi
c8ce0 6e 73 20 3d 20 28 69 6e 74 29 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 2d 24 64 61 74 65 2d 3e ns.=.(int).round((time()-$date->
c8d00 67 65 74 54 61 72 67 65 74 28 29 29 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 20 3e 20 24 6d 69 getTarget())./.60);..if.(0.>.$mi
c8d20 6e 73 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d 6d 69 6e 20 2d 30 ns).{...$command->add('.-mmin.-0
c8d40 27 29 3b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 64 61 74 65 2d 3e ');...return;.}..switch.($date->
c8d60 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d getOperator()).{.case.'<=':.$com
c8d80 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 28 24 6d 69 6e 73 20 2d 20 31 29 29 mand->add('-mmin.+'.($mins.-.1))
c8da0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 ;.break;.case.'>=':.$command->ad
c8dc0 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a 62 72 65 61 6b 3b d('-mmin.-'.($mins.+.1));.break;
c8de0 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 .case.'>':.$command->add('-mmin.
c8e00 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f -'.$mins);.break;.case.'!=':.$co
c8e20 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 2e 27 20 2d 6f 72 mmand->add('-mmin.+'.$mins.'.-or
c8e40 20 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c .-mmin.-'.$mins);.break;.case.'<
c8e60 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e ':.default:.$command->add('-mmin
c8e80 20 2b 27 2e 24 6d 69 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 .+'.$mins);.}.}.}........private
c8ea0 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 .function.buildSorting(Command.$
c8ec0 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 6f command,.$sort).{.$this->buildFo
c8ee0 72 6d 61 74 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 7d 0a rmatSorting($command,.$sort);.}.
c8f00 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .....abstract.protected.function
c8f20 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d .buildFormatSorting(Command.$com
c8f40 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f mand,.$sort);.......abstract.pro
c8f60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 tected.function.buildContentFilt
c8f80 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 ering(Command.$command,.array.$c
c8fa0 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a ontains,.$not.=.false);.}.<?php.
c8fc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
c8fe0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f onent\Finder\Adapter;..use.Symfo
c9000 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a ny\Component\Finder\Iterator;...
c9020 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 ....class.PhpAdapter.extends.Abs
c9040 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tractAdapter.{....public.functio
c9060 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a 7b 0a 24 66 6c 61 n.searchInDirectory($dir).{.$fla
c9080 67 73 20 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 gs.=.\RecursiveDirectoryIterator
c90a0 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c ::SKIP_DOTS;..if.($this->followL
c90c0 69 6e 6b 73 29 20 7b 0a 24 66 6c 61 67 73 20 7c 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 inks).{.$flags.|=.\RecursiveDire
c90e0 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 46 4f 4c 4c 4f 57 5f 53 59 4d 4c 49 4e 4b 53 3b 0a ctoryIterator::FOLLOW_SYMLINKS;.
c9100 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 }..$iterator.=.new.\RecursiveIte
c9120 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 0a 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 52 65 63 75 ratorIterator(.new.Iterator\Recu
c9140 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 2c 20 24 66 6c rsiveDirectoryIterator($dir,.$fl
c9160 61 67 73 2c 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 ags,.$this->ignoreUnreadableDirs
c9180 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 53 ),.\RecursiveIteratorIterator::S
c91a0 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 ELF_FIRST.);..if.($this->minDept
c91c0 68 20 3e 20 30 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3c 20 50 48 50 5f 49 h.>.0.||.$this->maxDepth.<.PHP_I
c91e0 4e 54 5f 4d 41 58 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 NT_MAX).{.$iterator.=.new.Iterat
c9200 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 or\DepthRangeFilterIterator($ite
c9220 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 2c 20 24 74 68 69 73 2d 3e 6d rator,.$this->minDepth,.$this->m
c9240 61 78 44 65 70 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a axDepth);.}..if.($this->mode).{.
c9260 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 $iterator.=.new.Iterator\FileTyp
c9280 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 eFilterIterator($iterator,.$this
c92a0 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 ->mode);.}..if.($this->exclude).
c92c0 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 {.$iterator.=.new.Iterator\Exclu
c92e0 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 deDirectoryFilterIterator($itera
c9300 74 6f 72 2c 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 tor,.$this->exclude);.}..if.($th
c9320 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a is->names.||.$this->notNames).{.
c9340 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d $iterator.=.new.Iterator\Filenam
c9360 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 eFilterIterator($iterator,.$this
c9380 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 ->names,.$this->notNames);.}..if
c93a0 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 .($this->contains.||.$this->notC
c93c0 6f 6e 74 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 ontains).{.$iterator.=.new.Itera
c93e0 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 tor\FilecontentFilterIterator($i
c9400 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d terator,.$this->contains,.$this-
c9420 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a >notContains);.}..if.($this->siz
c9440 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 es).{.$iterator.=.new.Iterator\S
c9460 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 izeRangeFilterIterator($iterator
c9480 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 ,.$this->sizes);.}..if.($this->d
c94a0 61 74 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 ates).{.$iterator.=.new.Iterator
c94c0 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 \DateRangeFilterIterator($iterat
c94e0 6f 72 2c 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d or,.$this->dates);.}..if.($this-
c9500 3e 66 69 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 >filters).{.$iterator.=.new.Iter
c9520 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 ator\CustomFilterIterator($itera
c9540 74 6f 72 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 tor,.$this->filters);.}..if.($th
c9560 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d is->sort).{.$iteratorAggregate.=
c9580 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 .new.Iterator\SortableIterator($
c95a0 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f iterator,.$this->sort);.$iterato
c95c0 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 r.=.$iteratorAggregate->getItera
c95e0 74 6f 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 68 73 20 7c 7c 20 24 74 tor();.}..if.($this->paths.||.$t
c9600 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 his->notPaths).{.$iterator.=.new
c9620 20 49 74 65 72 61 74 6f 72 5c 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 .Iterator\PathFilterIterator($it
c9640 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 erator,.$this->paths,.$this->not
c9660 50 61 74 68 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a Paths);.}..return.$iterator;.}..
c9680 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 ...public.function.getName().{.r
c96a0 65 74 75 72 6e 20 27 70 68 70 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e eturn.'php';.}.....protected.fun
c96c0 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b ction.canBeUsed().{.return.true;
c96e0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
c9700 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a ymfony\Component\Finder;........
c9720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a ................class.Glob.{....
c9740 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 ......public.static.function.toR
c9760 65 67 65 78 28 24 67 6c 6f 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 egex($glob,.$strictLeadingDot.=.
c9780 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 true,.$strictWildcardSlash.=.tru
c97a0 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e e).{.$firstByte.=.true;.$escapin
c97c0 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 g.=.false;.$inCurlies.=.0;.$rege
c97e0 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 x.=.'';.$sizeGlob.=.strlen($glob
c9800 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 );.for.($i.=.0;.$i.<.$sizeGlob;.
c9820 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 $i++).{.$car.=.$glob[$i];.if.($f
c9840 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f irstByte).{.if.($strictLeadingDo
c9860 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 t.&&.'.'.!==.$car).{.$regex..=.'
c9880 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 (?=[^\.])';.}..$firstByte.=.fals
c98a0 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 e;.}..if.('/'.===.$car).{.$first
c98c0 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 Byte.=.true;.}..if.('.'.===.$car
c98e0 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 .||.'('.===.$car.||.')'.===.$car
c9900 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 .||.'|'.===.$car.||.'+'.===.$car
c9920 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 .||.'^'.===.$car.||.'$'.===.$car
c9940 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 ).{.$regex..=."\\$car";.}.elseif
c9960 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 .('*'.===.$car).{.$regex..=.$esc
c9980 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 aping.?.'\\*'.:.($strictWildcard
c99a0 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 Slash.?.'[^/]*'.:.'.*');.}.elsei
c99c0 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 f.('?'.===.$car).{.$regex..=.$es
c99e0 63 61 70 69 6e 67 20 3f 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 caping.?.'\\?'.:.($strictWildcar
c9a00 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 dSlash.?.'[^/]'.:.'.');.}.elseif
c9a20 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 .('{'.===.$car).{.$regex..=.$esc
c9a40 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 aping.?.'\\{'.:.'(';.if.(!$escap
c9a60 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 ing).{.++$inCurlies;.}.}.elseif.
c9a80 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 ('}'.===.$car.&&.$inCurlies).{.$
c9aa0 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a regex..=.$escaping.?.'}'.:.')';.
c9ac0 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a if.(!$escaping).{.--$inCurlies;.
c9ae0 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 }.}.elseif.(','.===.$car.&&.$inC
c9b00 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 urlies).{.$regex..=.$escaping.?.
c9b20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 ','.:.'|';.}.elseif.('\\'.===.$c
c9b40 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d ar).{.if.($escaping).{.$regex..=
c9b60 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c .'\\\\';.$escaping.=.false;.}.el
c9b80 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e se.{.$escaping.=.true;.}..contin
c9ba0 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 ue;.}.else.{.$regex..=.$car;.}.$
c9bc0 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 escaping.=.false;.}..return.'#^'
c9be0 2e 24 72 65 67 65 78 2e 27 24 23 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .$regex.'$#';.}.}.<?php.........
c9c00 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
c9c20 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 nder\Iterator;.......class.Depth
c9c40 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 RangeFilterIterator.extends.Filt
c9c60 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d erIterator.{.private.$minDepth.=
c9c80 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f .0;.........public.function.__co
c9ca0 6e 73 74 72 75 63 74 28 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 nstruct(\RecursiveIteratorIterat
c9cc0 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 2c 20 24 6d 61 or.$iterator,.$minDepth.=.0,.$ma
c9ce0 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d xDepth.=.PHP_INT_MAX).{.$this->m
c9d00 69 6e 44 65 70 74 68 20 3d 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e inDepth.=.$minDepth;.$iterator->
c9d20 73 65 74 4d 61 78 44 65 70 74 68 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3d 3d 3d 20 24 6d 61 78 setMaxDepth(PHP_INT_MAX.===.$max
c9d40 44 65 70 74 68 20 3f 20 2d 31 20 3a 20 24 6d 61 78 44 65 70 74 68 29 3b 0a 0a 70 61 72 65 6e 74 Depth.?.-1.:.$maxDepth);..parent
c9d60 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a ::__construct($iterator);.}.....
c9d80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 ..public.function.accept().{.ret
c9da0 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 67 urn.$this->getInnerIterator()->g
c9dc0 65 74 44 65 70 74 68 28 29 20 3e 3d 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 3b 0a 7d 0a etDepth().>=.$this->minDepth;.}.
c9de0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
c9e00 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a ony\Component\Finder\Iterator;..
c9e20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 69 6d 70 6c .....class.SortableIterator.impl
c9e40 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 0a 7b 0a 63 6f 6e 73 ements.\IteratorAggregate.{.cons
c9e60 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 t.SORT_BY_NAME.=.1;.const.SORT_B
c9e80 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 Y_TYPE.=.2;.const.SORT_BY_ACCESS
c9ea0 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 ED_TIME.=.3;.const.SORT_BY_CHANG
c9ec0 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 ED_TIME.=.4;.const.SORT_BY_MODIF
c9ee0 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 IED_TIME.=.5;..private.$iterator
c9f00 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ;.private.$sort;..........public
c9f20 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 54 72 61 76 65 72 73 61 62 .function.__construct(\Traversab
c9f40 6c 65 20 24 69 74 65 72 61 74 6f 72 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 le.$iterator,.$sort).{.$this->it
c9f60 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 53 erator.=.$iterator;..if.(self::S
c9f80 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e ORT_BY_NAME.===.$sort).{.$this->
c9fa0 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 sort.=.function.($a,.$b).{.retur
c9fc0 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e n.strcmp($a->getRealpath(),.$b->
c9fe0 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c getRealpath());.};.}.elseif.(sel
ca000 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 f::SORT_BY_TYPE.===.$sort).{.$th
ca020 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 is->sort.=.function.($a,.$b).{.i
ca040 66 20 28 24 61 2d 3e 69 73 44 69 72 28 29 20 26 26 20 24 62 2d 3e 69 73 46 69 6c 65 28 29 29 20 f.($a->isDir().&&.$b->isFile()).
ca060 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 61 2d 3e 69 73 46 69 6c {.return.-1;.}.elseif.($a->isFil
ca080 65 28 29 20 26 26 20 24 62 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a e().&&.$b->isDir()).{.return.1;.
ca0a0 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 }..return.strcmp($a->getRealpath
ca0c0 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 (),.$b->getRealpath());.};.}.els
ca0e0 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 eif.(self::SORT_BY_ACCESSED_TIME
ca100 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 .===.$sort).{.$this->sort.=.func
ca120 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 41 tion.($a,.$b).{.return.($a->getA
ca140 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 41 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 Time().>.$b->getATime());.};.}.e
ca160 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d lseif.(self::SORT_BY_CHANGED_TIM
ca180 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e E.===.$sort).{.$this->sort.=.fun
ca1a0 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 ction.($a,.$b).{.return.($a->get
ca1c0 43 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 43 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 CTime().>.$b->getCTime());.};.}.
ca1e0 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 elseif.(self::SORT_BY_MODIFIED_T
ca200 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 IME.===.$sort).{.$this->sort.=.f
ca220 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 unction.($a,.$b).{.return.($a->g
ca240 65 74 4d 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 4d 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a etMTime().>.$b->getMTime());.};.
ca260 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 73 6f 72 74 29 29 20 7b 0a }.elseif.(is_callable($sort)).{.
ca280 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 $this->sort.=.$sort;.}.else.{.th
ca2a0 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
ca2c0 6e 28 27 54 68 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 74 61 6b 65 73 20 61 20 n('The.SortableIterator.takes.a.
ca2e0 50 48 50 20 63 61 6c 6c 62 61 63 6b 20 6f 72 20 61 20 76 61 6c 69 64 20 62 75 69 6c 74 2d 69 6e PHP.callback.or.a.valid.built-in
ca300 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 27 .sort.algorithm.as.an.argument.'
ca320 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 );.}.}..public.function.getItera
ca340 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 79 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 tor().{.$array.=.iterator_to_arr
ca360 61 79 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2c 20 74 72 75 65 29 3b 0a 75 61 73 6f 72 ay($this->iterator,.true);.uasor
ca380 74 28 24 61 72 72 61 79 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 0a 72 65 74 75 72 6e 20 t($array,.$this->sort);..return.
ca3a0 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a new.\ArrayIterator($array);.}.}.
ca3c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
ca3e0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a y\Component\Finder\Iterator;....
ca400 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 ....class.FilecontentFilterItera
ca420 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 tor.extends.MultiplePcreFilterIt
ca440 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 erator.{......public.function.ac
ca460 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 cept().{.if.(!$this->matchRegexp
ca480 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 72 s.&&.!$this->noMatchRegexps).{.r
ca4a0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 eturn.true;.}..$fileinfo.=.$this
ca4c0 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 ->current();..if.($fileinfo->isD
ca4e0 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 52 65 61 64 61 62 6c 65 28 29 ir().||.!$fileinfo->isReadable()
ca500 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 ).{.return.false;.}..$content.=.
ca520 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 3b 0a 69 66 20 28 21 24 $fileinfo->getContents();.if.(!$
ca540 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f content).{.return.false;.}....fo
ca560 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 reach.($this->noMatchRegexps.as.
ca580 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c $regex).{.if.(preg_match($regex,
ca5a0 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a .$content)).{.return.false;.}.}.
ca5c0 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 ...$match.=.true;.if.($this->mat
ca5e0 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 chRegexps).{.$match.=.false;.for
ca600 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 each.($this->matchRegexps.as.$re
ca620 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 gex).{.if.(preg_match($regex,.$c
ca640 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 ontent)).{.return.true;.}.}.}..r
ca660 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 eturn.$match;.}.........protecte
ca680 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 d.function.toRegex($str).{.retur
ca6a0 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 n.$this->isRegex($str).?.$str.:.
ca6c0 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d '/'.preg_quote($str,.'/').'/';.}
ca6e0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
ca700 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a fony\Component\Finder\Iterator;.
ca720 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 70 .use.Symfony\Component\Finder\Sp
ca740 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 50 61 74 68 73 lFileInfo;.......class.FilePaths
ca760 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 0a Iterator.extends.\ArrayIterator.
ca780 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 {....private.$baseDir;.....priva
ca7a0 74 65 20 24 62 61 73 65 44 69 72 4c 65 6e 67 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 te.$baseDirLength;.....private.$
ca7c0 73 75 62 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 61 74 68 6e 61 6d subPath;.....private.$subPathnam
ca7e0 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 70 75 e;.....private.$current;......pu
ca800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 blic.function.__construct(array.
ca820 24 70 61 74 68 73 2c 20 24 62 61 73 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 $paths,.$baseDir).{.$this->baseD
ca840 69 72 20 3d 20 24 62 61 73 65 44 69 72 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e ir.=.$baseDir;.$this->baseDirLen
ca860 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 62 61 73 65 44 69 72 29 3b 0a 0a 70 61 72 65 6e 74 3a gth.=.strlen($baseDir);..parent:
ca880 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 :__construct($paths);.}........p
ca8a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 61 6c 6c 28 24 6e 61 6d 65 2c 20 61 72 72 ublic.function.__call($name,.arr
ca8c0 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 ay.$arguments).{.return.call_use
ca8e0 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e r_func_array(array($this->curren
ca900 74 28 29 2c 20 24 6e 61 6d 65 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a t(),.$name),.$arguments);.}.....
ca920 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 ..public.function.current().{.re
ca940 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 turn.$this->current;.}.....publi
ca960 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d c.function.key().{.return.$this-
ca980 3e 63 75 72 72 65 6e 74 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c >current->getPathname();.}..publ
ca9a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 6e 65 78 ic.function.next().{.parent::nex
ca9c0 74 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d t();.$this->buildProperties();.}
ca9e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 70 61 72 ..public.function.rewind().{.par
caa00 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 ent::rewind();.$this->buildPrope
caa20 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 rties();.}.....public.function.g
caa40 65 74 53 75 62 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 etSubPath().{.return.$this->subP
caa60 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 ath;.}.....public.function.getSu
caa80 62 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 bPathname().{.return.$this->subP
caaa0 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 athname;.}..private.function.bui
caac0 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 0a 7b 0a 24 61 62 73 6f 6c 75 74 65 50 61 74 68 20 3d ldProperties().{.$absolutePath.=
caae0 20 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e .parent::current();..if.($this->
cab00 62 61 73 65 44 69 72 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 baseDir.===.substr($absolutePath
cab20 2c 20 30 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 29 20 7b 0a 24 74 ,.0,.$this->baseDirLength)).{.$t
cab40 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 6c 74 72 69 6d 28 73 75 62 73 74 72 28 his->subPathname.=.ltrim(substr(
cab60 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e $absolutePath,.$this->baseDirLen
cab80 67 74 68 29 2c 20 27 2f 5c 5c 27 29 3b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 gth),.'/\\');.$dir.=.dirname($th
caba0 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 is->subPathname);.$this->subPath
cabc0 20 3d 20 27 2e 27 20 3d 3d 3d 20 24 64 69 72 20 3f 20 27 27 20 3a 20 24 64 69 72 3b 0a 7d 20 65 .=.'.'.===.$dir.?.''.:.$dir;.}.e
cabe0 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 75 lse.{.$this->subPath.=.$this->su
cac00 62 50 61 74 68 6e 61 6d 65 20 3d 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e bPathname.=.'';.}..$this->curren
cac20 74 20 3d 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 t.=.new.SplFileInfo(parent::curr
cac40 65 6e 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 73 75 ent(),.$this->subPath,.$this->su
cac60 62 50 61 74 68 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a bPathname);.}.}.<?php...........
cac80 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 namespace.Symfony\Component\Find
caca0 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e er\Iterator;..use.Symfony\Compon
cacc0 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 ent\Finder\Comparator\NumberComp
cace0 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 6e 67 65 46 69 6c arator;.......class.SizeRangeFil
cad00 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 terIterator.extends.FilterIterat
cad20 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 or.{.private.$comparators.=.arra
cad40 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f y();........public.function.__co
cad60 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 nstruct(\Iterator.$iterator,.arr
cad80 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 ay.$comparators).{.$this->compar
cada0 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f ators.=.$comparators;..parent::_
cadc0 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 _construct($iterator);.}.......p
cade0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 ublic.function.accept().{.$filei
cae00 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 28 21 24 66 69 nfo.=.$this->current();.if.(!$fi
cae20 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b leinfo->isFile()).{.return.true;
cae40 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 53 69 .}..$filesize.=.$fileinfo->getSi
cae60 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 ze();.foreach.($this->comparator
cae80 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e s.as.$compare).{.if.(!$compare->
caea0 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b test($filesize)).{.return.false;
caec0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .}.}..return.true;.}.}.<?php....
caee0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
caf00 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nt\Finder\Iterator;.......class.
caf20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 ExcludeDirectoryFilterIterator.e
caf40 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 xtends.FilterIterator.{.private.
caf60 24 70 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $patterns;........public.functio
caf80 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f n.__construct(\Iterator.$iterato
cafa0 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e r,.array.$directories).{.$this->
cafc0 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 patterns.=.array();.foreach.($di
cafe0 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 rectories.as.$directory).{.$this
cb000 2d 3e 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 27 2e 70 72 65 67 5f 71 75 6f ->patterns[].=.'#(^|/)'.preg_quo
cb020 74 65 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 29 2e 27 28 2f 7c 24 29 23 27 3b 0a 7d 0a te($directory,.'#').'(/|$)#';.}.
cb040 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b .parent::__construct($iterator);
cb060 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 .}.......public.function.accept(
cb080 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 20 3f 20 24 74 68 ).{.$path.=.$this->isDir().?.$th
cb0a0 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 is->current()->getRelativePathna
cb0c0 6d 65 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 me().:.$this->current()->getRela
cb0e0 74 69 76 65 50 61 74 68 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c tivePath();.$path.=.strtr($path,
cb100 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 74 .'\\',.'/');.foreach.($this->pat
cb120 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 terns.as.$pattern).{.if.(preg_ma
cb140 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 tch($pattern,.$path)).{.return.f
cb160 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 alse;.}.}..return.true;.}.}.<?ph
cb180 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
cb1a0 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a mponent\Finder\Iterator;........
cb1c0 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 .abstract.class.FilterIterator.e
cb1e0 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 xtends.\FilterIterator.{.......p
cb200 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 69 74 65 72 61 ublic.function.rewind().{.$itera
cb220 74 6f 72 20 3d 20 24 74 68 69 73 3b 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e tor.=.$this;.while.($iterator.in
cb240 73 74 61 6e 63 65 6f 66 20 5c 4f 75 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 6e 6e 65 stanceof.\OuterIterator).{.$inne
cb260 72 49 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 rIterator.=.$iterator->getInnerI
cb280 74 65 72 61 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 69 terator();..if.($innerIterator.i
cb2a0 6e 73 74 61 6e 63 65 6f 66 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 nstanceof.RecursiveDirectoryIter
cb2c0 61 74 6f 72 29 20 7b 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 69 73 52 65 ator).{.if.($innerIterator->isRe
cb2e0 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 6e 65 windable()).{.$innerIterator->ne
cb300 78 74 28 29 3b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 72 65 77 69 6e 64 28 29 3b 0a xt();.$innerIterator->rewind();.
cb320 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 }.}.elseif.($iterator->getInnerI
cb340 74 65 72 61 74 6f 72 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 65 6d terator().instanceof.\Filesystem
cb360 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 Iterator).{.$iterator->getInnerI
cb380 74 65 72 61 74 6f 72 28 29 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 terator()->next();.$iterator->ge
cb3a0 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 24 69 tInnerIterator()->rewind();.}.$i
cb3c0 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 terator.=.$iterator->getInnerIte
cb3e0 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a rator();.}..parent::rewind();.}.
cb400 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
cb420 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a ony\Component\Finder\Iterator;..
cb440 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 use.Symfony\Component\Finder\Exp
cb460 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 ression\Expression;.......abstra
cb480 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 ct.class.MultiplePcreFilterItera
cb4a0 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f tor.extends.FilterIterator.{.pro
cb4c0 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 tected.$matchRegexps;.protected.
cb4e0 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $noMatchRegexps;.........public.
cb500 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 function.__construct(\Iterator.$
cb520 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 2c 20 iterator,.array.$matchPatterns,.
cb540 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a 7b 0a 24 74 68 69 73 2d array.$noMatchPatterns).{.$this-
cb560 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 >matchRegexps.=.array();.foreach
cb580 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a .($matchPatterns.as.$pattern).{.
cb5a0 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 $this->matchRegexps[].=.$this->t
cb5c0 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 oRegex($pattern);.}..$this->noMa
cb5e0 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 tchRegexps.=.array();.foreach.($
cb600 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 noMatchPatterns.as.$pattern).{.$
cb620 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e this->noMatchRegexps[].=.$this->
cb640 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f toRegex($pattern);.}..parent::__
cb660 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a construct($iterator);.}.........
cb680 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 24 73 74 72 29 protected.function.isRegex($str)
cb6a0 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 .{.return.Expression::create($st
cb6c0 72 29 2d 3e 69 73 52 65 67 65 78 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 r)->isRegex();.}.........abstrac
cb6e0 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 t.protected.function.toRegex($st
cb700 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 r);.}.<?php...........namespace.
cb720 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f Symfony\Component\Finder\Iterato
cb740 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 r;..........class.CustomFilterIt
cb760 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a erator.extends.FilterIterator.{.
cb780 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a private.$filters.=.array();.....
cb7a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
cb7c0 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 66 69 6c (\Iterator.$iterator,.array.$fil
cb7e0 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 ters).{.foreach.($filters.as.$fi
cb800 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 69 6c 74 65 72 lter).{.if.(!is_callable($filter
cb820 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
cb840 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 2e 27 xception('Invalid.PHP.callback.'
cb860 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 );.}.}.$this->filters.=.$filters
cb880 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 ;..parent::__construct($iterator
cb8a0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 );.}.......public.function.accep
cb8c0 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 t().{.$fileinfo.=.$this->current
cb8e0 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 61 73 20 ();..foreach.($this->filters.as.
cb900 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 $filter).{.if.(false.===.call_us
cb920 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 29 20 7b 0a 72 er_func($filter,.$fileinfo)).{.r
cb940 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d eturn.false;.}.}..return.true;.}
cb960 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
cb980 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a fony\Component\Finder\Iterator;.
cb9a0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 .use.Symfony\Component\Finder\Ex
cb9c0 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 pression\Expression;.......class
cb9e0 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 .FilenameFilterIterator.extends.
cba00 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a MultiplePcreFilterIterator.{....
cba20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 ...public.function.accept().{.$f
cba40 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 46 ilename.=.$this->current()->getF
cba60 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f ilename();....foreach.($this->no
cba80 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 MatchRegexps.as.$regex).{.if.(pr
cbaa0 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 eg_match($regex,.$filename)).{.r
cbac0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 eturn.false;.}.}....$match.=.tru
cbae0 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d e;.if.($this->matchRegexps).{.$m
cbb00 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 atch.=.false;.foreach.($this->ma
cbb20 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 tchRegexps.as.$regex).{.if.(preg
cbb40 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 _match($regex,.$filename)).{.ret
cbb60 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a urn.true;.}.}.}..return.$match;.
cbb80 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 }............protected.function.
cbba0 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f toRegex($str).{.return.Expressio
cbbc0 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d 3e 67 65 74 52 65 67 65 78 28 29 2d 3e 72 65 6e n::create($str)->getRegex()->ren
cbbe0 64 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 der();.}.}.<?php...........names
cbc00 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 pace.Symfony\Component\Finder\It
cbc20 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 erator;..use.Symfony\Component\F
cbc40 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b inder\Comparator\DateComparator;
cbc60 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 .......class.DateRangeFilterIter
cbc80 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 ator.extends.FilterIterator.{.pr
cbca0 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a ivate.$comparators.=.array();...
cbcc0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
cbce0 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d (\Iterator.$iterator,.array.$com
cbd00 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d parators).{.$this->comparators.=
cbd20 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 .$comparators;..parent::__constr
cbd40 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 uct($iterator);.}.......public.f
cbd60 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 unction.accept().{.$fileinfo.=.$
cbd80 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f this->current();..if.(!$fileinfo
cbda0 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 ->isFile()).{.return.true;.}..$f
cbdc0 69 6c 65 64 61 74 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b iledate.=.$fileinfo->getMTime();
cbde0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 .foreach.($this->comparators.as.
cbe00 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 $compare).{.if.(!$compare->test(
cbe20 24 66 69 6c 65 64 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a $filedate)).{.return.false;.}.}.
cbe40 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .return.true;.}.}.<?php.........
cbe60 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
cbe80 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 nder\Iterator;.......class.FileT
cbea0 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 ypeFilterIterator.extends.Filter
cbec0 49 74 65 72 61 74 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b Iterator.{.const.ONLY_FILES.=.1;
cbee0 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 .const.ONLY_DIRECTORIES.=.2;..pr
cbf00 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ivate.$mode;........public.funct
cbf20 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 ion.__construct(\Iterator.$itera
cbf40 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 tor,.$mode).{.$this->mode.=.$mod
cbf60 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f e;..parent::__construct($iterato
cbf80 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 r);.}.......public.function.acce
cbfa0 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e pt().{.$fileinfo.=.$this->curren
cbfc0 74 28 29 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 t();.if.(self::ONLY_DIRECTORIES.
cbfe0 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 ===.(self::ONLY_DIRECTORIES.&.$t
cc000 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 his->mode).&&.$fileinfo->isFile(
cc020 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c )).{.return.false;.}.elseif.(sel
cc040 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 f::ONLY_FILES.===.(self::ONLY_FI
cc060 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d LES.&.$this->mode).&&.$fileinfo-
cc080 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 >isDir()).{.return.false;.}..ret
cc0a0 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 urn.true;.}.}.<?php...........na
cc0c0 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
cc0e0 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e \Iterator;..use.Symfony\Componen
cc100 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 41 63 63 65 73 73 44 65 6e 69 65 64 45 t\Finder\Exception\AccessDeniedE
cc120 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c xception;.use.Symfony\Component\
cc140 46 69 6e 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 Finder\SplFileInfo;.......class.
cc160 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e RecursiveDirectoryIterator.exten
cc180 64 73 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 0a 7b ds.\RecursiveDirectoryIterator.{
cc1a0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 ....private.$ignoreUnreadableDir
cc1c0 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 77 69 6e 64 61 62 6c 65 3b 0a 0a 0a 0a 0a s;.....private.$rewindable;.....
cc1e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
cc200 74 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 2c 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 t($path,.$flags,.$ignoreUnreadab
cc220 6c 65 44 69 72 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 leDirs.=.false).{.if.($flags.&.(
cc240 73 65 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 self::CURRENT_AS_PATHNAME.|.self
cc260 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ::CURRENT_AS_SELF)).{.throw.new.
cc280 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 \RuntimeException('This.iterator
cc2a0 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 .only.support.returning.current.
cc2c0 61 73 20 66 69 6c 65 69 6e 66 6f 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e as.fileinfo.');.}..parent::__con
cc2e0 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e 69 67 struct($path,.$flags);.$this->ig
cc300 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 24 69 67 6e 6f 72 65 55 6e 72 65 noreUnreadableDirs.=.$ignoreUnre
cc320 61 64 61 62 6c 65 44 69 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 adableDirs;.}.......public.funct
cc340 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 53 70 6c 46 69 ion.current().{.return.new.SplFi
cc360 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 74 leInfo(parent::current()->getPat
cc380 68 6e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 2c 20 24 74 hname(),.$this->getSubPath(),.$t
cc3a0 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a his->getSubPathname());.}.......
cc3c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a public.function.getChildren().{.
cc3e0 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 68 69 6c 64 72 65 6e try.{.return.parent::getChildren
cc400 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 ();.}.catch.(\UnexpectedValueExc
cc420 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e eption.$e).{.if.($this->ignoreUn
cc440 72 65 61 64 61 62 6c 65 44 69 72 73 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 5c 52 65 readableDirs).{...return.new.\Re
cc460 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 29 3b 0a 7d cursiveArrayIterator(array());.}
cc480 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 .else.{.throw.new.AccessDeniedEx
cc4a0 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 65 2d 3e 67 65 ception($e->getMessage(),.$e->ge
cc4c0 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 tCode(),.$e);.}.}.}.....public.f
cc4e0 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d unction.rewind().{.if.(false.===
cc500 20 24 74 68 69 73 2d 3e 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e .$this->isRewindable()).{.return
cc520 3b 0a 7d 0a 0a 0a 20 70 61 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a ;.}....parent::next();..parent::
cc540 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rewind();.}.......public.functio
cc560 6e 20 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 n.isRewindable().{.if.(null.!==.
cc580 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 $this->rewindable).{.return.$thi
cc5a0 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 s->rewindable;.}..if.(false.!==.
cc5c0 24 73 74 72 65 61 6d 20 3d 20 40 6f 70 65 6e 64 69 72 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 $stream.=.@opendir($this->getPat
cc5e0 68 28 29 29 29 20 7b 0a 24 69 6e 66 6f 73 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 6d 65 74 61 h())).{.$infos.=.stream_get_meta
cc600 5f 64 61 74 61 28 24 73 74 72 65 61 6d 29 3b 0a 63 6c 6f 73 65 64 69 72 28 24 73 74 72 65 61 6d _data($stream);.closedir($stream
cc620 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 73 5b 27 73 65 65 6b 61 62 6c 65 27 5d 29 20 7b 0a 72 65 );..if.($infos['seekable']).{.re
cc640 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 74 72 75 65 3b 0a 7d turn.$this->rewindable.=.true;.}
cc660 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 66 .}..return.$this->rewindable.=.f
cc680 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 alse;.}.}.<?php...........namesp
cc6a0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 ace.Symfony\Component\Finder\Ite
cc6c0 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 46 69 6c 74 65 72 49 74 rator;........class.PathFilterIt
cc6e0 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 erator.extends.MultiplePcreFilte
cc700 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rIterator.{.......public.functio
cc720 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e n.accept().{.$filename.=.$this->
cc740 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 current()->getRelativePathname()
cc760 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 ;..if.(defined('PHP_WINDOWS_VERS
cc780 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 73 74 72 74 72 ION_MAJOR')).{.$filename.=.strtr
cc7a0 28 24 66 69 6c 65 6e 61 6d 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 ($filename,.'\\',.'/');.}....for
cc7c0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 each.($this->noMatchRegexps.as.$
cc7e0 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 regex).{.if.(preg_match($regex,.
cc800 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a $filename)).{.return.false;.}.}.
cc820 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 ...$match.=.true;.if.($this->mat
cc840 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 chRegexps).{.$match.=.false;.for
cc860 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 each.($this->matchRegexps.as.$re
cc880 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 gex).{.if.(preg_match($regex,.$f
cc8a0 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a ilename)).{.return.true;.}.}.}..
cc8c0 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$match;.}................
cc8e0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 protected.function.toRegex($str)
cc900 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f .{.return.$this->isRegex($str).?
cc920 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 .$str.:.'/'.preg_quote($str,.'/'
cc940 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ).'/';.}.}.<?php...........names
cc960 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f pace.Symfony\Component\Finder\Co
cc980 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 mparator;.......class.DateCompar
cc9a0 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a ator.extends.Comparator.{.......
cc9c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 ..public.function.__construct($t
cc9e0 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d est).{.if.(!preg_match('#^\s*(==
cca00 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e |!=|[<>]=?|after|since|before|un
cca20 74 69 6c 29 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 til)?\s*(.+?)\s*$#i',.$test,.$ma
cca40 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 tches)).{.throw.new.\InvalidArgu
cca60 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e mentException(sprintf('Don\'t.un
cca80 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 64 61 74 65 20 74 65 73 74 2e 27 2c 20 derstand."%s".as.a.date.test.',.
ccaa0 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 $test));.}..try.{.$date.=.new.\D
ccac0 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 ateTime($matches[2]);.$target.=.
ccae0 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 $date->format('U');.}.catch.(\Ex
ccb00 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ception.$e).{.throw.new.\Invalid
ccb20 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 22 25 73 22 20 ArgumentException(sprintf('"%s".
ccb40 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b is.not.a.valid.date.',.$matches[
ccb60 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 2]));.}..$operator.=.isset($matc
ccb80 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 hes[1]).?.$matches[1].:.'==';.if
ccba0 20 28 27 73 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 .('since'.===.$operator.||.'afte
ccbc0 72 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 r'.===.$operator).{.$operator.=.
ccbe0 27 3e 27 3b 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f '>';.}..if.('until'.===.$operato
ccc00 72 20 7c 7c 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 r.||.'before'.===.$operator).{.$
ccc20 6f 70 65 72 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 operator.=.'<';.}..$this->setOpe
ccc40 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 rator($operator);.$this->setTarg
ccc60 65 74 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a et($target);.}.}.<?php..........
ccc80 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e .namespace.Symfony\Component\Fin
ccca0 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a der\Comparator;.................
cccc0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 .......class.NumberComparator.ex
ccce0 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 tends.Comparator.{........public
ccd00 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 .function.__construct($test).{.i
ccd20 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d f.(!preg_match('#^\s*(==|!=|[<>]
ccd40 3d 3f 29 3f 5c 73 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 =?)?\s*([0-9\.]+)\s*([kmg]i?)?\s
ccd60 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 *$#i',.$test,.$matches)).{.throw
ccd80 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
ccda0 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 printf('Don\'t.understand."%s".a
ccdc0 73 20 61 20 6e 75 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 s.a.number.test.',.$test));.}..$
ccde0 74 61 72 67 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 69 66 20 28 21 69 73 5f 6e 75 target.=.$matches[2];.if.(!is_nu
cce00 6d 65 72 69 63 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 meric($target)).{.throw.new.\Inv
cce20 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 alidArgumentException(sprintf('I
cce40 6e 76 61 6c 69 64 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 2c 20 24 74 61 72 67 65 74 29 29 3b nvalid.number."%s".',.$target));
cce60 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 .}.if.(isset($matches[3])).{...s
cce80 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 witch.(strtolower($matches[3])).
ccea0 7b 0a 63 61 73 65 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 3b 0a 62 72 65 {.case.'k':.$target.*=.1000;.bre
ccec0 61 6b 3b 0a 63 61 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 3b 0a ak;.case.'ki':.$target.*=.1024;.
ccee0 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 break;.case.'m':.$target.*=.1000
ccf00 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 000;.break;.case.'mi':.$target.*
ccf20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 27 3a 0a 24 74 =.1024*1024;.break;.case.'g':.$t
ccf40 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 arget.*=.1000000000;.break;.case
ccf60 20 27 67 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 2a 31 30 32 34 .'gi':.$target.*=.1024*1024*1024
ccf80 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 ;.break;.}.}..$this->setTarget($
ccfa0 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 69 73 73 65 target);.$this->setOperator(isse
ccfc0 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 t($matches[1]).?.$matches[1].:.'
ccfe0 3d 3d 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ==');.}.}.<?php...........namesp
cd000 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d ace.Symfony\Component\Finder\Com
cd020 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a parator;.......class.Comparator.
cd040 7b 0a 70 72 69 76 61 74 65 20 24 74 61 72 67 65 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 {.private.$target;.private.$oper
cd060 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ator.=.'==';.......public.functi
cd080 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 on.getTarget().{.return.$this->t
cd0a0 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 arget;.}.......public.function.s
cd0c0 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 etTarget($target).{.$this->targe
cd0e0 74 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 t.=.$target;.}.......public.func
cd100 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getOperator().{.return.$thi
cd120 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s->operator;.}.........public.fu
cd140 6e 63 74 69 6f 6e 20 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a nction.setOperator($operator).{.
cd160 69 66 20 28 21 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d if.(!$operator).{.$operator.=.'=
cd180 3d 27 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 6f 72 2c 20 =';.}..if.(!in_array($operator,.
cd1a0 61 72 72 61 79 28 27 3e 27 2c 20 27 3c 27 2c 20 27 3e 3d 27 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 array('>',.'<',.'>=',.'<=',.'=='
cd1c0 2c 20 27 21 3d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 ,.'!='))).{.throw.new.\InvalidAr
cd1e0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 gumentException(sprintf('Invalid
cd200 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 2e 27 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 3b 0a 7d .operator."%s".',.$operator));.}
cd220 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 7d ..$this->operator.=.$operator;.}
cd240 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 28 24 74 .........public.function.test($t
cd260 65 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 20 est).{.switch.($this->operator).
cd280 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 20 24 74 68 69 73 {.case.'>':.return.$test.>.$this
cd2a0 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 ->target;.case.'>=':.return.$tes
cd2c0 74 20 3e 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 72 65 t.>=.$this->target;.case.'<':.re
cd2e0 74 75 72 6e 20 24 74 65 73 74 20 3c 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 turn.$test.<.$this->target;.case
cd300 20 27 3c 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 3d 20 24 74 68 69 73 2d 3e 74 61 .'<=':.return.$test.<=.$this->ta
cd320 72 67 65 74 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 21 3d rget;.case.'!=':.return.$test.!=
cd340 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 .$this->target;.}..return.$test.
cd360 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ==.$this->target;.}.}.<?php.....
cd380 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
cd3a0 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 63 t\Finder\Exception;.....class.Ac
cd3c0 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 55 6e 65 cessDeniedException.extends.\Une
cd3e0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a xpectedValueException.{.}.<?php.
cd400 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
cd420 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 onent\Finder\Exception;.....inte
cd440 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 rface.ExceptionInterface.{....pu
cd460 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 28 29 3b 0a 7d 0a 3c 3f blic.function.getAdapter();.}.<?
cd480 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
cd4a0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a Component\Finder\Exception;.....
cd4c0 63 6c 61 73 73 20 4f 70 65 72 61 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 class.OperationNotPermitedExcept
cd4e0 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 ion.extends.AdapterFailureExcept
cd500 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ion.{.}.<?php...........namespac
cd520 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 e.Symfony\Component\Finder\Excep
cd540 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e tion;..use.Symfony\Component\Fin
cd560 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a der\Adapter\AdapterInterface;...
cd580 0a 0a 0a 0a 63 6c 61 73 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f ....class.AdapterFailureExceptio
cd5a0 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c n.extends.\RuntimeException.impl
cd5c0 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 ements.ExceptionInterface.{....p
cd5e0 72 69 76 61 74 65 20 24 61 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rivate.$adapter;.......public.fu
cd600 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 nction.__construct(AdapterInterf
cd620 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 5c ace.$adapter,.$message.=.null,.\
cd640 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 Exception.$previous.=.null).{.$t
cd660 68 69 73 2d 3e 61 64 61 70 74 65 72 20 3d 20 24 61 64 61 70 74 65 72 3b 0a 70 61 72 65 6e 74 3a his->adapter.=.$adapter;.parent:
cd680 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 20 3f 3a 20 27 53 65 61 72 63 68 :__construct($message.?:.'Search
cd6a0 20 66 61 69 6c 65 64 20 77 69 74 68 20 22 27 2e 24 61 64 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d .failed.with."'.$adapter->getNam
cd6c0 65 28 29 2e 27 22 20 61 64 61 70 74 65 72 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a e().'".adapter.',.$previous);.}.
cd6e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 28 29 ....public.function.getAdapter()
cd700 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f .{.return.$this->adapter;.}.}.<?
cd720 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
cd740 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 Component\Finder\Exception;..use
cd760 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 .Symfony\Component\Finder\Adapte
cd780 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c r\AdapterInterface;.use.Symfony\
cd7a0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a Component\Finder\Shell\Command;.
cd7c0 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 ....class.ShellCommandFailureExc
cd7e0 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 eption.extends.AdapterFailureExc
cd800 65 70 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a eption.{....private.$command;...
cd820 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
cd840 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 43 6f 6d 6d 61 AdapterInterface.$adapter,.Comma
cd860 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 nd.$command,.\Exception.$previou
cd880 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f s.=.null).{.$this->command.=.$co
cd8a0 6d 6d 61 6e 64 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 64 61 70 mmand;.parent::__construct($adap
cd8c0 74 65 72 2c 20 27 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 ter,.'Shell.command.failed:."'.$
cd8e0 63 6f 6d 6d 61 6e 64 2d 3e 6a 6f 69 6e 28 29 2e 27 22 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 command->join().'".',.$previous)
cd900 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 ;.}.....public.function.getComma
cd920 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a nd().{.return.$this->command;.}.
cd940 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
cd960 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 ony\Component\Finder;.......clas
cd980 73 20 53 70 6c 46 69 6c 65 49 6e 66 6f 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 46 69 6c 65 49 6e s.SplFileInfo.extends.\SplFileIn
cd9a0 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 70 72 69 76 fo.{.private.$relativePath;.priv
cd9c0 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ate.$relativePathname;.........p
cd9e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 ublic.function.__construct($file
cda00 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 ,.$relativePath,.$relativePathna
cda20 6d 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 me).{.parent::__construct($file)
cda40 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 72 65 6c 61 74 69 76 ;.$this->relativePath.=.$relativ
cda60 65 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 20 3d ePath;.$this->relativePathname.=
cda80 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$relativePathname;.}.......publ
cdaa0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 0a 7b 0a ic.function.getRelativePath().{.
cdac0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 0a return.$this->relativePath;.}...
cdae0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 ....public.function.getRelativeP
cdb00 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 athname().{.return.$this->relati
cdb20 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e vePathname;.}.........public.fun
cdb40 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 24 6c 65 76 65 6c 20 3d 20 65 ction.getContents().{.$level.=.e
cdb60 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 30 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 rror_reporting(0);.$content.=.fi
cdb80 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 6e 61 le_get_contents($this->getPathna
cdba0 6d 65 28 29 29 3b 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 24 6c 65 76 65 6c 29 3b 0a me());.error_reporting($level);.
cdbc0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 24 65 72 72 6f 72 if.(false.===.$content).{.$error
cdbe0 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c .=.error_get_last();.throw.new.\
cdc00 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 RuntimeException($error['message
cdc20 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 7d 0a 3c 3f 70 ']);.}..return.$content;.}.}.<?p
cdc40 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e hp...........namespace.Seld\Json
cdc60 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a 7d 0a 3c 3f 70 68 70 Lint;..class.Undefined.{.}.<?php
cdc80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 ...........namespace.Seld\JsonLi
cdca0 6e 74 3b 0a 0a 75 73 65 20 73 74 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a nt;..use.stdClass;..............
cdcc0 0a 63 6c 61 73 73 20 4a 73 6f 6e 50 61 72 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 44 45 54 45 43 54 .class.JsonParser.{.const.DETECT
cdce0 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 41 4c 4c 4f 57 5f _KEY_CONFLICTS.=.1;.const.ALLOW_
cdd00 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6c DUPLICATE_KEYS.=.2;..private.$fl
cdd20 61 67 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 76 73 ags;.private.$stack;.private.$vs
cdd40 74 61 63 6b 3b 20 0a 20 70 72 69 76 61 74 65 20 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 72 69 76 61 tack;...private.$lstack;...priva
cdd60 74 65 20 24 79 79 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6d 62 6f 6c 73 20 3d 20 61 72 72 61 79 te.$yy;.private.$symbols.=.array
cdd80 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 32 2c 0a 27 4a 53 4f 4e 53 74 72 69 6e 67 27 20 3d 3e 20 (.'error'.=>.2,.'JSONString'.=>.
cdda0 33 2c 0a 27 53 54 52 49 4e 47 27 20 3d 3e 20 34 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 72 27 20 3d 3,.'STRING'.=>.4,.'JSONNumber'.=
cddc0 3e 20 35 2c 0a 27 4e 55 4d 42 45 52 27 20 3d 3e 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c 6c 4c 69 74 >.5,.'NUMBER'.=>.6,.'JSONNullLit
cdde0 65 72 61 6c 27 20 3d 3e 20 37 2c 0a 27 4e 55 4c 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 4f 4e 42 6f eral'.=>.7,.'NULL'.=>.8,.'JSONBo
cde00 6f 6c 65 61 6e 4c 69 74 65 72 61 6c 27 20 3d 3e 20 39 2c 0a 27 54 52 55 45 27 20 3d 3e 20 31 30 oleanLiteral'.=>.9,.'TRUE'.=>.10
cde20 2c 0a 27 46 41 4c 53 45 27 20 3d 3e 20 31 31 2c 0a 27 4a 53 4f 4e 54 65 78 74 27 20 3d 3e 20 31 ,.'FALSE'.=>.11,.'JSONText'.=>.1
cde40 32 2c 0a 27 4a 53 4f 4e 56 61 6c 75 65 27 20 3d 3e 20 31 33 2c 0a 27 45 4f 46 27 20 3d 3e 20 31 2,.'JSONValue'.=>.13,.'EOF'.=>.1
cde60 34 2c 0a 27 4a 53 4f 4e 4f 62 6a 65 63 74 27 20 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e 41 72 72 61 4,.'JSONObject'.=>.15,.'JSONArra
cde80 79 27 20 3d 3e 20 31 36 2c 0a 27 7b 27 20 3d 3e 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 31 38 2c 0a y'.=>.16,.'{'.=>.17,.'}'.=>.18,.
cdea0 27 4a 53 4f 4e 4d 65 6d 62 65 72 4c 69 73 74 27 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 4e 4d 65 6d 'JSONMemberList'.=>.19,.'JSONMem
cdec0 62 65 72 27 20 3d 3e 20 32 30 2c 0a 27 3a 27 20 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d 3e 20 32 32 ber'.=>.20,.':'.=>.21,.','.=>.22
cdee0 2c 0a 27 5b 27 20 3d 3e 20 32 33 2c 0a 27 5d 27 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f 4e 45 6c 65 ,.'['.=>.23,.']'.=>.24,.'JSONEle
cdf00 6d 65 6e 74 4c 69 73 74 27 20 3d 3e 20 32 35 2c 0a 27 24 61 63 63 65 70 74 27 20 3d 3e 20 30 2c mentList'.=>.25,.'$accept'.=>.0,
cdf20 0a 27 24 65 6e 64 27 20 3d 3e 20 31 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 .'$end'.=>.1,.);..private.$termi
cdf40 6e 61 6c 73 5f 20 3d 20 61 72 72 61 79 28 0a 32 20 3d 3e 20 22 65 72 72 6f 72 22 2c 0a 34 20 3d nals_.=.array(.2.=>."error",.4.=
cdf60 3e 20 22 53 54 52 49 4e 47 22 2c 0a 36 20 3d 3e 20 22 4e 55 4d 42 45 52 22 2c 0a 38 20 3d 3e 20 >."STRING",.6.=>."NUMBER",.8.=>.
cdf80 22 4e 55 4c 4c 22 2c 0a 31 30 20 3d 3e 20 22 54 52 55 45 22 2c 0a 31 31 20 3d 3e 20 22 46 41 4c "NULL",.10.=>."TRUE",.11.=>."FAL
cdfa0 53 45 22 2c 0a 31 34 20 3d 3e 20 22 45 4f 46 22 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c 0a 31 38 20 SE",.14.=>."EOF",.17.=>."{",.18.
cdfc0 3d 3e 20 22 7d 22 2c 0a 32 31 20 3d 3e 20 22 3a 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 2c 0a 32 33 =>."}",.21.=>.":",.22.=>.",",.23
cdfe0 20 3d 3e 20 22 5b 22 2c 0a 32 34 20 3d 3e 20 22 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 .=>."[",.24.=>."]",.);..private.
ce000 24 70 72 6f 64 75 63 74 69 6f 6e 73 5f 20 3d 20 61 72 72 61 79 28 0a 30 2c 0a 61 72 72 61 79 28 $productions_.=.array(.0,.array(
ce020 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 37 2c 20 31 29 2c 3,.1),.array(5,.1),.array(7,.1),
ce040 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 .array(9,.1),.array(9,.1),.array
ce060 28 31 32 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c (12,.2),.array(13,.1),.array(13,
ce080 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c .1),.array(13,.1),.array(13,.1),
ce0a0 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 .array(13,.1),.array(13,.1),.arr
ce0c0 61 79 28 31 35 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 ay(15,.2),.array(15,.3),.array(2
ce0e0 30 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 33 0,.3),.array(19,.1),.array(19,.3
ce100 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 33 29 2c 0a 61 ),.array(16,.2),.array(16,.3),.a
ce120 72 72 61 79 28 32 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 33 29 0a 29 3b 0a 0a 70 72 rray(25,.1),.array(25,.3).);..pr
ce140 69 76 61 74 65 20 24 74 61 62 6c 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 33 20 3d 3e 20 ivate.$table.=.array(array(3.=>.
ce160 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 5,.4.=>.array(1,12),.5.=>.6,.6.=
ce180 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 >.array(1,13),.7.=>.3,.8.=>.arra
ce1a0 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 y(1,9),.9.=>.4,.10.=>.array(1,10
ce1c0 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 32 20 3d 3e 20 31 2c 20 31 ),.11.=>.array(1,11),.12.=>.1,.1
ce1e0 33 20 3d 3e 20 32 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 3.=>.2,.15.=>.7,.16.=>.8,.17.=>.
ce200 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c array(1,14),.23.=>.array(1,15)),
ce220 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 33 29 29 2c 20 61 72 72 61 79 28 20 31 .array(.1.=>.array(3)),.array(.1
ce240 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 4.=>.array(1,16)),.array(.14.=>.
ce260 61 72 72 61 79 28 32 2c 37 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 32 array(2,7),.18.=>.array(2,7),.22
ce280 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 .=>.array(2,7),.24.=>.array(2,7)
ce2a0 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,8),.18.=
ce2c0 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 >.array(2,8),.22.=>.array(2,8),.
ce2e0 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,8)),.array(.14.=>.
ce300 61 72 72 61 79 28 32 2c 39 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 32 array(2,9),.18.=>.array(2,9),.22
ce320 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 .=>.array(2,9),.24.=>.array(2,9)
ce340 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 31 38 20 ),.array(.14.=>.array(2,10),.18.
ce360 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 =>.array(2,10),.22.=>.array(2,10
ce380 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 ),.24.=>.array(2,10)),.array(.14
ce3a0 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 .=>.array(2,11),.18.=>.array(2,1
ce3c0 31 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 1),.22.=>.array(2,11),.24.=>.arr
ce3e0 61 79 28 32 2c 31 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c ay(2,11)),.array(.14.=>.array(2,
ce400 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 32 20 3d 3e 20 61 72 12),.18.=>.array(2,12),.22.=>.ar
ce420 72 61 79 28 32 2c 31 32 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 29 2c 20 61 ray(2,12),.24.=>.array(2,12)),.a
ce440 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 31 38 20 3d 3e 20 61 72 rray(.14.=>.array(2,3),.18.=>.ar
ce460 72 61 79 28 32 2c 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 34 20 3d ray(2,3),.22.=>.array(2,3),.24.=
ce480 3e 20 61 72 72 61 79 28 32 2c 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 >.array(2,3)),.array(.14.=>.arra
ce4a0 79 28 32 2c 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 32 20 3d 3e 20 y(2,4),.18.=>.array(2,4),.22.=>.
ce4c0 61 72 72 61 79 28 32 2c 34 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 29 2c 20 61 array(2,4),.24.=>.array(2,4)),.a
ce4e0 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 31 38 20 3d 3e 20 61 72 rray(.14.=>.array(2,5),.18.=>.ar
ce500 72 61 79 28 32 2c 35 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 34 20 3d ray(2,5),.22.=>.array(2,5),.24.=
ce520 3e 20 61 72 72 61 79 28 32 2c 35 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 >.array(2,5)),.array(.14.=>.arra
ce540 79 28 32 2c 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 31 20 3d 3e 20 y(2,1),.18.=>.array(2,1),.21.=>.
ce560 61 72 72 61 79 28 32 2c 31 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 34 array(2,1),.22.=>.array(2,1),.24
ce580 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 .=>.array(2,1)),.array(.14.=>.ar
ce5a0 72 61 79 28 32 2c 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 32 20 3d ray(2,2),.18.=>.array(2,2),.22.=
ce5c0 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 29 2c >.array(2,2),.24.=>.array(2,2)),
ce5e0 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 .array(.3.=>.20,.4.=>.array(1,12
ce600 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 37 29 2c 20 31 39 20 3d 3e 20 31 38 2c 20 ),.18.=>.array(1,17),.19.=>.18,.
ce620 32 30 20 3d 3e 20 31 39 20 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 20.=>.19.),.array(.3.=>.5,.4.=>.
ce640 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 array(1,12),.5.=>.6,.6.=>.array(
ce660 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 1,13),.7.=>.3,.8.=>.array(1,9),.
ce680 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 9.=>.4,.10.=>.array(1,10),.11.=>
ce6a0 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 32 33 2c 20 31 35 20 3d 3e 20 37 2c .array(1,11),.13.=>.23,.15.=>.7,
ce6c0 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 .16.=>.8,.17.=>.array(1,14),.23.
ce6e0 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 31 =>.array(1,15),.24.=>.array(1,21
ce700 29 2c 20 32 35 20 3d 3e 20 32 32 20 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 ),.25.=>.22.),.array(.1.=>.array
ce720 28 32 2c 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 (2,6)),.array(.14.=>.array(2,13)
ce740 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 ,.18.=>.array(2,13),.22.=>.array
ce760 28 32 2c 31 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 29 2c 20 61 72 72 61 (2,13),.24.=>.array(2,13)),.arra
ce780 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 y(.18.=>.array(1,24),.22.=>.arra
ce7a0 79 28 31 2c 32 35 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 y(1,25)),.array(.18.=>.array(2,1
ce7c0 36 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 32 6),.22.=>.array(2,16)),.array(.2
ce7e0 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 1.=>.array(1,26)),.array(.14.=>.
ce800 61 72 72 61 79 28 32 2c 31 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 array(2,18),.18.=>.array(2,18),.
ce820 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 22.=>.array(2,18),.24.=>.array(2
ce840 2c 31 38 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 38 29 2c ,18)),.array(.22.=>.array(1,28),
ce860 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 37 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d .24.=>.array(1,27)),.array(.22.=
ce880 3e 20 61 72 72 61 79 28 32 2c 32 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 29 >.array(2,20),.24.=>.array(2,20)
ce8a0 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 31 38 20 ),.array(.14.=>.array(2,14),.18.
ce8c0 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 =>.array(2,14),.22.=>.array(2,14
ce8e0 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 29 2c 20 61 72 72 61 79 28 20 33 20 ),.24.=>.array(2,14)),.array(.3.
ce900 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 32 30 20 3d 3e 20 32 =>.20,.4.=>.array(1,12),.20.=>.2
ce920 39 20 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 9.),.array(.3.=>.5,.4.=>.array(1
ce940 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 ,12),.5.=>.6,.6.=>.array(1,13),.
ce960 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 7.=>.3,.8.=>.array(1,9),.9.=>.4,
ce980 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 .10.=>.array(1,10),.11.=>.array(
ce9a0 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 30 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 1,11),.13.=>.30,.15.=>.7,.16.=>.
ce9c0 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 8,.17.=>.array(1,14),.23.=>.arra
ce9e0 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 y(1,15)),.array(.14.=>.array(2,1
cea00 39 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 9),.18.=>.array(2,19),.22.=>.arr
cea20 61 79 28 32 2c 31 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 29 2c 20 61 72 ay(2,19),.24.=>.array(2,19)),.ar
cea40 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 ray(.3.=>.5,.4.=>.array(1,12),.5
cea60 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c .=>.6,.6.=>.array(1,13),.7.=>.3,
cea80 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 .8.=>.array(1,9),.9.=>.4,.10.=>.
ceaa0 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 array(1,10),.11.=>.array(1,11),.
ceac0 31 33 20 3d 3e 20 33 31 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 13.=>.31,.15.=>.7,.16.=>.8,.17.=
ceae0 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 >.array(1,14),.23.=>.array(1,15)
ceb00 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 2c 20 32 32 20 ),.array(.18.=>.array(2,17),.22.
ceb20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 =>.array(2,17)),.array(.18.=>.ar
ceb40 72 61 79 28 32 2c 31 35 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 29 2c 20 61 ray(2,15),.22.=>.array(2,15)),.a
ceb60 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 2c 20 32 34 20 3d 3e 20 61 rray(.22.=>.array(2,21),.24.=>.a
ceb80 72 72 61 79 28 32 2c 32 31 29 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c rray(2,21)),.);..private.$defaul
ceba0 74 41 63 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 36 20 3d 3e 20 61 72 72 61 79 28 32 2c tActions.=.array(.16.=>.array(2,
cebc0 20 36 29 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 74 .6).);......public.function.lint
cebe0 28 24 69 6e 70 75 74 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 69 ($input).{.try.{.$this->parse($i
cec00 6e 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e nput);.}.catch.(ParsingException
cec20 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$e).{.return.$e;.}.}.......publ
cec40 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 69 6e 70 75 74 2c 20 24 66 6c 61 67 73 ic.function.parse($input,.$flags
cec60 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 0a .=.0).{.$this->flags.=.$flags;..
cec80 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e $this->stack.=.array(0);.$this->
ceca0 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 vstack.=.array(null);.$this->lst
cecc0 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 ack.=.array();..$yytext.=.'';.$y
cece0 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 ylineno.=.0;.$yyleng.=.0;.$recov
ced00 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 52 52 4f 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 ering.=.0;.$TERROR.=.2;.$EOF.=.1
ced20 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 20 3d 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 ;..$this->lexer.=.new.Lexer();.$
ced40 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a this->lexer->setInput($input);..
ced60 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 $yyloc.=.$this->lexer->yylloc;.$
ced80 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f this->lstack[].=.$yyloc;..$symbo
ceda0 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c l.=.null;.$preErrorSymbol.=.null
cedc0 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b ;.$state.=.null;.$action.=.null;
cede0 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 20 3d 20 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 .$a.=.null;.$r.=.null;.$yyval.=.
cee00 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 new.stdClass;.$p.=.null;.$len.=.
cee20 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 null;.$newState.=.null;.$expecte
cee40 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 53 74 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 d.=.null;.$errStr.=.null;..while
cee60 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 .(true).{...$state.=.$this->stac
cee80 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 k[count($this->stack)-1];....if.
ceea0 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 (isset($this->defaultActions[$st
ceec0 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c ate])).{.$action.=.$this->defaul
ceee0 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 tActions[$state];.}.else.{.if.($
cef00 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 symbol.==.null).{.$symbol.=.$thi
cef20 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 s->lex();.}...$action.=.isset($t
cef40 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 his->table[$state][$symbol]).?.$
cef60 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 this->table[$state][$symbol].:.f
cef80 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 alse;.}....if.(!$action.||.!$act
cefa0 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 21 24 72 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 ion[0]).{.if.(!$recovering).{...
cefc0 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $expected.=.array();.foreach.($t
cefe0 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e his->table[$state].as.$p.=>.$ign
cf000 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c ore).{.if.(isset($this->terminal
cf020 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 3e 20 32 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d s_[$p]).&&.$p.>.2).{.$expected[]
cf040 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 20 2e .=."'"...$this->terminals_[$p]..
cf060 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 ."'";.}.}..$message.=.null;.if.(
cf080 69 6e 5f 61 72 72 61 79 28 22 27 53 54 52 49 4e 47 27 22 2c 20 24 65 78 70 65 63 74 65 64 29 20 in_array("'STRING'",.$expected).
cf0a0 26 26 20 69 6e 5f 61 72 72 61 79 28 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d &&.in_array(substr($this->lexer-
cf0c0 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 29 29 >match,.0,.1),.array('"',."'")))
cf0e0 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 49 6e 76 61 6c 69 64 20 73 74 72 69 6e 67 22 3b 0a .{.$message.=."Invalid.string";.
cf100 69 66 20 28 22 27 22 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d if.("'".===.substr($this->lexer-
cf120 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 >match,.0,.1)).{.$message..=.",.
cf140 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 75 73 65 64 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 it.appears.you.used.single.quote
cf160 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 6f 75 62 6c 65 20 71 75 6f 74 65 73 22 3b 0a 7d 20 65 s.instead.of.double.quotes";.}.e
cf180 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 2e 2b 3f 28 5c 5c 5c 5c 5b 5e 22 lseif.(preg_match('{".+?(\\\\[^"
cf1a0 62 66 6e 72 74 2f 5c 5c 5c 5c 75 5d 29 7d 27 2c 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 bfnrt/\\\\u])}',.$this->lexer->g
cf1c0 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d etUpcomingInput(),.$match)).{.$m
cf1e0 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 essage..=.",.it.appears.you.have
cf200 20 61 6e 20 75 6e 65 73 63 61 70 65 64 20 62 61 63 6b 73 6c 61 73 68 20 61 74 3a 20 22 2e 24 6d .an.unescaped.backslash.at:.".$m
cf220 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b atch[1];.}.elseif.(preg_match('{
cf240 22 28 3f 3a 5b 5e 22 5d 2b 7c 5c 5c 5c 5c 22 29 2a 24 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 6c 65 "(?:[^"]+|\\\\")*$}m',.$this->le
cf260 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 29 29 20 7b 0a 24 6d 65 73 xer->getUpcomingInput())).{.$mes
cf280 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 66 6f 72 67 6f 74 sage..=.",.it.appears.you.forgot
cf2a0 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 64 20 74 68 65 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 74 .to.terminated.the.string,.or.at
cf2c0 74 65 6d 70 74 65 64 20 74 6f 20 77 72 69 74 65 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 tempted.to.write.a.multiline.str
cf2e0 69 6e 67 20 77 68 69 63 68 20 69 73 20 69 6e 76 61 6c 69 64 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 72 ing.which.is.invalid";.}.}..$err
cf300 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 Str.=.'Parse.error.on.line.'...(
cf320 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d $yylineno+1)...":\n";.$errStr..=
cf340 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 .$this->lexer->showPosition()...
cf360 22 5c 6e 22 3b 0a 69 66 20 28 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d "\n";.if.($message).{.$errStr..=
cf380 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 28 .$message;.}.else.{.$errStr..=.(
cf3a0 63 6f 75 6e 74 28 24 65 78 70 65 63 74 65 64 29 20 3e 20 31 29 20 3f 20 22 45 78 70 65 63 74 65 count($expected).>.1).?."Expecte
cf3c0 64 20 6f 6e 65 20 6f 66 3a 20 22 20 3a 20 22 45 78 70 65 63 74 65 64 3a 20 22 3b 0a 24 65 72 72 d.one.of:.".:."Expected:.";.$err
cf3e0 53 74 72 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b Str..=.implode(',.',.$expected);
cf400 0a 7d 0a 0a 69 66 20 28 27 2c 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 74 72 69 6d 28 24 74 68 69 .}..if.(','.===.substr(trim($thi
cf420 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 29 2c 20 2d 31 29 29 20 s->lexer->getPastInput()),.-1)).
cf440 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 20 2d 20 49 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 {.$errStr..=.".-.It.appears.you.
cf460 68 61 76 65 20 61 6e 20 65 78 74 72 61 20 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 22 3b 0a 7d have.an.extra.trailing.comma";.}
cf480 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 24 65 72 72 53 74 72 2c 20 61 72 72 ..$this->parseError($errStr,.arr
cf4a0 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 ay(.'text'.=>.$this->lexer->matc
cf4c0 68 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 74 65 72 6d h,.'token'.=>.!empty($this->term
cf4e0 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e inals_[$symbol]).?.$this->termin
cf500 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 24 73 79 6d 62 6f 6c 2c 0a 27 6c 69 6e 65 27 20 als_[$symbol].:.$symbol,.'line'.
cf520 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 27 6c 6f 63 27 =>.$this->lexer->yylineno,.'loc'
cf540 20 3d 3e 20 24 79 79 6c 6f 63 2c 0a 27 65 78 70 65 63 74 65 64 27 20 3d 3e 20 24 65 78 70 65 63 .=>.$yyloc,.'expected'.=>.$expec
cf560 74 65 64 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 3d ted,.));.}....if.($recovering.==
cf580 20 33 29 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 24 45 4f 46 29 20 7b 0a 74 68 72 .3).{.if.($symbol.==.$EOF).{.thr
cf5a0 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 ow.new.ParsingException($errStr.
cf5c0 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 24 79 79 6c ?:.'Parsing.halted.');.}....$yyl
cf5e0 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 eng.=.$this->lexer->yyleng;.$yyt
cf600 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c ext.=.$this->lexer->yytext;.$yyl
cf620 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a ineno.=.$this->lexer->yylineno;.
cf640 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 $yyloc.=.$this->lexer->yylloc;.$
cf660 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 0a 20 77 68 69 6c symbol.=.$this->lex();.}....whil
cf680 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 e.(true).{...if.(array_key_exist
cf6a0 73 28 24 54 45 52 52 4f 52 2c 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 29 s($TERROR,.$this->table[$state])
cf6c0 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 73 74 61 74 65 20 3d 3d 20 30 29 20 7b 0a ).{.break;.}.if.($state.==.0).{.
cf6e0 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 throw.new.ParsingException($errS
cf700 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 24 74 68 69 tr.?:.'Parsing.halted.');.}.$thi
cf720 73 2d 3e 70 6f 70 53 74 61 63 6b 28 31 29 3b 0a 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e s->popStack(1);.$state.=.$this->
cf740 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 7d 0a stack[count($this->stack)-1];.}.
cf760 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 24 73 79 6d 62 6f 6c 3b 20 0a 20 24 73 .$preErrorSymbol.=.$symbol;...$s
cf780 79 6d 62 6f 6c 20 3d 20 24 54 45 52 52 4f 52 3b 20 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 ymbol.=.$TERROR;...$state.=.$thi
cf7a0 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b s->stack[count($this->stack)-1];
cf7c0 0a 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 .$action.=.isset($this->table[$s
cf7e0 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 tate][$TERROR]).?.$this->table[$
cf800 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 20 3a 20 66 61 6c 73 65 3b 0a 24 72 65 63 6f 76 65 state][$TERROR].:.false;.$recove
cf820 72 69 6e 67 20 3d 20 33 3b 20 0a 20 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 ring.=.3;...}....if.(is_array($a
cf840 63 74 69 6f 6e 5b 30 5d 29 20 26 26 20 63 6f 75 6e 74 28 24 61 63 74 69 6f 6e 29 20 3e 20 31 29 ction[0]).&&.count($action).>.1)
cf860 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 50 .{.throw.new.ParsingException('P
cf880 61 72 73 65 20 45 72 72 6f 72 3a 20 6d 75 6c 74 69 70 6c 65 20 61 63 74 69 6f 6e 73 20 70 6f 73 arse.Error:.multiple.actions.pos
cf8a0 73 69 62 6c 65 20 61 74 20 73 74 61 74 65 3a 20 27 20 2e 20 24 73 74 61 74 65 20 2e 20 27 2c 20 sible.at.state:.'...$state...',.
cf8c0 74 6f 6b 65 6e 3a 20 27 20 2e 20 24 73 79 6d 62 6f 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 token:.'...$symbol);.}..switch.(
cf8e0 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 63 61 73 65 20 31 3a 20 0a 20 24 74 68 69 73 2d 3e 73 $action[0]).{.case.1:...$this->s
cf900 74 61 63 6b 5b 5d 20 3d 20 24 73 79 6d 62 6f 6c 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b tack[].=.$symbol;.$this->vstack[
cf920 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 74 68 69 73 2d ].=.$this->lexer->yytext;.$this-
cf940 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 >lstack[].=.$this->lexer->yylloc
cf960 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 61 63 74 69 6f 6e 5b 31 5d 3b 20 0a ;.$this->stack[].=.$action[1];..
cf980 20 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 21 24 70 72 65 45 72 72 6f 72 53 .$symbol.=.null;.if.(!$preErrorS
cf9a0 79 6d 62 6f 6c 29 20 7b 20 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 ymbol).{...$yyleng.=.$this->lexe
cf9c0 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 r->yyleng;.$yytext.=.$this->lexe
cf9e0 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 r->yytext;.$yylineno.=.$this->le
cfa00 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c xer->yylineno;.$yyloc.=.$this->l
cfa20 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3e 20 exer->yylloc;.if.($recovering.>.
cfa40 30 29 20 7b 0a 24 72 65 63 6f 76 65 72 69 6e 67 2d 2d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 20 0a 0).{.$recovering--;.}.}.else.{..
cfa60 20 24 73 79 6d 62 6f 6c 20 3d 20 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 3b 0a 24 70 72 65 .$symbol.=.$preErrorSymbol;.$pre
cfa80 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 ErrorSymbol.=.null;.}.break;..ca
cfaa0 73 65 20 32 3a 20 0a 20 24 6c 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e se.2:...$len.=.$this->production
cfac0 73 5f 5b 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 31 5d 3b 0a 0a 0a 20 24 79 79 76 61 6c 2d 3e 74 6f s_[$action[1]][1];....$yyval->to
cfae0 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d ken.=.$this->vstack[count($this-
cfb00 3e 76 73 74 61 63 6b 29 20 2d 20 24 6c 65 6e 5d 3b 20 0a 20 0a 20 24 79 79 76 61 6c 2d 3e 73 74 >vstack).-.$len];.....$yyval->st
cfb20 6f 72 65 20 3d 20 61 72 72 61 79 28 20 0a 20 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 ore.=.array(...'first_line'.=>.$
cfb40 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b this->lstack[count($this->lstack
cfb60 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 6c 69 6e 65 27 5d 2c 0a ).-.($len.?:.1)]['first_line'],.
cfb80 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 'last_line'.=>.$this->lstack[cou
cfba0 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 6c 69 6e nt($this->lstack).-.1]['last_lin
cfbc0 65 27 5d 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 e'],.'first_column'.=>.$this->ls
cfbe0 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 tack[count($this->lstack).-.($le
cfc00 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f n.?:.1)]['first_column'],.'last_
cfc20 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 column'.=>.$this->lstack[count($
cfc40 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 this->lstack).-.1]['last_column'
cfc60 5d 2c 0a 29 3b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 ],.);.$r.=.$this->performAction(
cfc80 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e $yyval,.$yytext,.$yyleng,.$yylin
cfca0 65 6e 6f 2c 20 24 61 63 74 69 6f 6e 5b 31 5d 2c 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 eno,.$action[1],.$this->vstack,.
cfcc0 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 3b 0a 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 $this->lstack);..if.(!$r.instanc
cfce0 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 69 eof.Undefined).{.return.$r;.}..i
cfd00 66 20 28 24 6c 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 24 6c 65 6e 29 f.($len).{.$this->popStack($len)
cfd20 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f ;.}..$this->stack[].=.$this->pro
cfd40 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 30 5d 3b 20 0a 20 24 74 68 69 ductions_[$action[1]][0];...$thi
cfd60 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 3b 0a 24 74 68 s->vstack[].=.$yyval->token;.$th
cfd80 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 3b 0a 24 6e is->lstack[].=.$yyval->store;.$n
cfda0 65 77 53 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 74 68 69 73 2d 3e 73 74 ewState.=.$this->table[$this->st
cfdc0 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 32 5d 5d 5b 24 74 68 69 ack[count($this->stack)-2]][$thi
cfde0 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 5d s->stack[count($this->stack)-1]]
cfe00 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 6e 65 77 53 74 61 74 65 3b 0a 62 72 ;.$this->stack[].=.$newState;.br
cfe20 65 61 6b 3b 0a 0a 63 61 73 65 20 33 3a 20 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d eak;..case.3:...return.true;.}.}
cfe40 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ..return.true;.}..protected.func
cfe60 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 tion.parseError($str,.$hash).{.t
cfe80 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 2c 20 hrow.new.ParsingException($str,.
cfea0 24 68 61 73 68 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f $hash);.}........private.functio
cfec0 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 73 74 64 43 6c 61 73 73 20 24 79 79 76 61 6c 2c n.performAction(stdClass.$yyval,
cfee0 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 79 .$yytext,.$yyleng,.$yylineno,.$y
cff00 79 73 74 61 74 65 2c 20 26 24 74 6f 6b 65 6e 73 29 0a 7b 0a 0a 20 24 6c 65 6e 20 3d 20 63 6f 75 ystate,.&$tokens).{...$len.=.cou
cff20 6e 74 28 24 74 6f 6b 65 6e 73 29 20 2d 20 31 3b 0a 73 77 69 74 63 68 20 28 24 79 79 73 74 61 74 nt($tokens).-.1;.switch.($yystat
cff40 65 29 20 7b 0a 63 61 73 65 20 31 3a 0a 24 79 79 74 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c e).{.case.1:.$yytext.=.preg_repl
cff60 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 3f 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c ace_callback('{(?:\\\\["bfnrt/\\
cff80 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 29 7d 27 2c 20 61 72 72 61 \\]|\\\\u[a-fA-F0-9]{4})}',.arra
cffa0 79 28 24 74 68 69 73 2c 20 27 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 29 2c y($this,.'stringInterpolation'),
cffc0 20 24 79 79 74 65 78 74 29 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 79 79 74 65 .$yytext);.$yyval->token.=.$yyte
cffe0 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 79 xt;.break;.case.2:.if.(strpos($y
d0000 79 74 65 78 74 2c 20 27 65 27 29 20 21 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 73 74 72 70 6f 73 28 ytext,.'e').!==.false.||.strpos(
d0020 24 79 79 74 65 78 74 2c 20 27 45 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 79 79 76 61 $yytext,.'E').!==.false).{.$yyva
d0040 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 6c 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 20 l->token.=.floatval($yytext);.}.
d0060 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 73 74 72 70 6f 73 28 24 79 else.{.$yyval->token.=.strpos($y
d0080 79 74 65 78 74 2c 20 27 2e 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 69 6e 74 76 61 6c 28 24 ytext,.'.').===.false.?.intval($
d00a0 79 79 74 65 78 74 29 20 3a 20 66 6c 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 0a 62 yytext).:.floatval($yytext);.}.b
d00c0 72 65 61 6b 3b 0a 63 61 73 65 20 33 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 75 reak;.case.3:.$yyval->token.=.nu
d00e0 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e ll;.break;.case.4:.$yyval->token
d0100 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 35 3a 0a 24 79 79 76 61 6c 2d 3e .=.true;.break;.case.5:.$yyval->
d0120 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 36 3a 0a 72 65 token.=.false;.break;.case.6:.re
d0140 74 75 72 6e 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 turn.$yyval->token.=.$tokens[$le
d0160 6e 2d 31 5d 3b 0a 63 61 73 65 20 31 33 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e n-1];.case.13:.$yyval->token.=.n
d0180 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 ew.stdClass;.break;.case.14:.$yy
d01a0 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 val->token.=.$tokens[$len-1];.br
d01c0 65 61 6b 3b 0a 63 61 73 65 20 31 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 eak;.case.15:.$yyval->token.=.ar
d01e0 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 ray($tokens[$len-2],.$tokens[$le
d0200 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 36 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b n]);.break;.case.16:.$yyval->tok
d0220 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 en.=.new.stdClass;.$property.=.$
d0240 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 tokens[$len][0].===.''.?.'_empty
d0260 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 _'.:.$tokens[$len][0];.$yyval->t
d0280 6f 6b 65 6e 2d 3e 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b oken->$property.=.$tokens[$len][
d02a0 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 37 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 1];.break;.case.17:.$yyval->toke
d02c0 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 24 6b 65 79 20 3d 20 24 74 6f 6b n.=.$tokens[$len-2];.$key.=.$tok
d02e0 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 ens[$len][0].===.''.?.'_empty_'.
d0300 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d 3e :.$tokens[$len][0];.if.(($this->
d0320 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 flags.&.self::DETECT_KEY_CONFLIC
d0340 54 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 TS).&&.isset($tokens[$len-2]->{$
d0360 6b 65 79 7d 29 29 20 7b 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 key})).{.$errStr.=.'Parse.error.
d0380 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e on.line.'...($yylineno+1)...":\n
d03a0 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 ";.$errStr..=.$this->lexer->show
d03c0 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 Position()..."\n";.$errStr..=."D
d03e0 75 70 6c 69 63 61 74 65 20 6b 65 79 3a 20 22 2e 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d uplicate.key:.".$tokens[$len][0]
d0400 3b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 ;.throw.new.ParsingException($er
d0420 72 53 74 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 rStr);.}.elseif.(($this->flags.&
d0440 20 73 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 .self::ALLOW_DUPLICATE_KEYS).&&.
d0460 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 isset($tokens[$len-2]->{$key})).
d0480 7b 0a 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 {.$duplicateCount.=.1;.do.{.$dup
d04a0 6c 69 63 61 74 65 4b 65 79 20 3d 20 24 6b 65 79 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 licateKey.=.$key...'.'...$duplic
d04c0 61 74 65 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 ateCount++;.}.while.(isset($toke
d04e0 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 64 75 70 6c 69 63 61 74 65 4b 65 79 29 29 3b 0a 24 6b 65 ns[$len-2]->$duplicateKey));.$ke
d0500 79 20 3d 20 24 64 75 70 6c 69 63 61 74 65 4b 65 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 y.=.$duplicateKey;.}.$tokens[$le
d0520 6e 2d 32 5d 2d 3e 24 6b 65 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 n-2]->$key.=.$tokens[$len][1];.b
d0540 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 reak;.case.18:.$yyval->token.=.a
d0560 72 72 61 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e rray();.break;.case.19:.$yyval->
d0580 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a token.=.$tokens[$len-1];.break;.
d05a0 63 61 73 65 20 32 30 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 case.20:.$yyval->token.=.array($
d05c0 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 tokens[$len]);.break;.case.21:.$
d05e0 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d tokens[$len-2][].=.$tokens[$len]
d0600 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 ;.$yyval->token.=.$tokens[$len-2
d0620 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 ];.break;.}..return.new.Undefine
d0640 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 d();.}..private.function.stringI
d0660 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 24 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 nterpolation($match).{.switch.($
d0680 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 61 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 match[0]).{.case.'\\\\':.return.
d06a0 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 '\\';.case.'\"':.return.'"';.cas
d06c0 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 e.'\b':.return.chr(8);.case.'\f'
d06e0 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 31 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 :.return.chr(12);.case.'\n':.ret
d0700 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 urn."\n";.case.'\r':.return."\r"
d0720 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 ;.case.'\t':.return."\t";.case.'
d0740 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 2f 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e \/':.return."/";.default:.return
d0760 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 .html_entity_decode('&#x'.ltrim(
d0780 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 substr($match[0],.2),.'0').';',.
d07a0 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 0,.'UTF-8');.}.}..private.functi
d07c0 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d on.popStack($n).{.$this->stack.=
d07e0 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 .array_slice($this->stack,.0,.-.
d0800 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 (2.*.$n));.$this->vstack.=.array
d0820 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a _slice($this->vstack,.0,.-.$n);.
d0840 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 $this->lstack.=.array_slice($thi
d0860 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 s->lstack,.0,.-.$n);.}..private.
d0880 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d function.lex().{.$token.=.$this-
d08a0 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 20 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f >lexer->lex().?:.1;.....if.(!is_
d08c0 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 numeric($token)).{.$token.=.isse
d08e0 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 t($this->symbols[$token]).?.$thi
d0900 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a s->symbols[$token].:.$token;.}..
d0920 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a return.$token;.}.}.<?php........
d0940 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 0a 0a 0a ...namespace.Seld\JsonLint;.....
d0960 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 45 4f 46 20 3d 20 31 ..class.Lexer.{.private.$EOF.=.1
d0980 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 ;.private.$rules.=.array(.0.=>.'
d09a0 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 27 2f 5e 2d 3f 28 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b /^\s+/',.1.=>.'/^-?([0-9]|[1-9][
d09c0 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 28 5b 65 45 5d 5b 2b 2d 5d 3f 5b 30 2d 39 5d 0-9]+)(\.[0-9]+)?([eE][+-]?[0-9]
d09e0 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 27 7b 5e 22 28 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c +)?\b/',.2.=>.'{^"(\\\\["bfnrt/\
d0a00 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 \\\]|\\\\u[a-fA-F0-9]{4}|[^\0-\x
d0a20 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 29 2a 22 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 09\x0a-\x1f\\\\"])*"}',.3.=>.'/^
d0a40 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d 2f 27 2c 0a 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 \{/',.4.=>.'/^\}/',.5.=>.'/^\[/'
d0a60 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a 37 20 3d 3e 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d ,.6.=>.'/^\]/',.7.=>.'/^,/',.8.=
d0a80 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 2f 5e 74 72 75 65 5c 62 2f 27 2c 0a 31 30 20 3d >.'/^:/',.9.=>.'/^true\b/',.10.=
d0aa0 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a 31 31 20 3d 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f >.'/^false\b/',.11.=>.'/^null\b/
d0ac0 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 0a 31 33 20 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 ',.12.=>.'/^$/',.13.=>.'/^./',.)
d0ae0 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a ;..private.$conditions.=.array(.
d0b00 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 61 79 28 0a 22 72 75 6c 65 73 22 20 3d 3e 20 61 "INITIAL".=>.array(."rules".=>.a
d0b20 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 rray(0,1,2,3,4,5,6,7,8,9,10,11,1
d0b40 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 65 22 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 2,13),."inclusive".=>.true,.),.)
d0b60 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 3b 0a 70 72 69 76 ;..private.$conditionStack;.priv
d0b80 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 72 65 3b 0a 70 72 69 76 61 ate.$input;.private.$more;.priva
d0ba0 74 65 20 24 64 6f 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 74 63 68 65 64 3b 0a 0a 70 75 62 te.$done;.private.$matched;..pub
d0bc0 6c 69 63 20 24 6d 61 74 63 68 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 69 6e 65 6e 6f 3b 0a 70 75 lic.$match;.public.$yylineno;.pu
d0be0 62 6c 69 63 20 24 79 79 6c 65 6e 67 3b 0a 70 75 62 6c 69 63 20 24 79 79 74 65 78 74 3b 0a 70 75 blic.$yyleng;.public.$yytext;.pu
d0c00 62 6c 69 63 20 24 79 79 6c 6c 6f 63 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c blic.$yylloc;..public.function.l
d0c20 65 78 28 29 0a 7b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 21 ex().{.$r.=.$this->next();.if.(!
d0c40 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 $r.instanceof.Undefined).{.retur
d0c60 6e 20 24 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a n.$r;.}..return.$this->lex();.}.
d0c80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 .public.function.setInput($input
d0ca0 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 ).{.$this->input.=.$input;.$this
d0cc0 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 ->more.=.false;.$this->done.=.fa
d0ce0 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 79 79 lse;.$this->yylineno.=.$this->yy
d0d00 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d leng.=.0;.$this->yytext.=.$this-
d0d20 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 24 74 >matched.=.$this->match.=.'';.$t
d0d40 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 20 3d 20 61 72 72 61 79 28 27 49 4e 49 his->conditionStack.=.array('INI
d0d60 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 27 66 TIAL');.$this->yylloc.=.array('f
d0d80 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 irst_line'.=>.1,.'first_column'.
d0da0 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 6c 61 73 74 5f 63 6f =>.0,.'last_line'.=>.1,.'last_co
d0dc0 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 lumn'.=>.0);..return.$this;.}..p
d0de0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 0a 7b 0a ublic.function.showPosition().{.
d0e00 24 70 72 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 74 68 $pre.=.str_replace("\n",.'',.$th
d0e20 69 73 2d 3e 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 29 3b 0a 24 63 20 3d 20 73 74 72 5f 72 65 is->getPastInput());.$c.=.str_re
d0e40 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 29 29 3b 20 0a 0a 72 65 74 75 72 peat('-',.strlen($pre));...retur
d0e60 6e 20 24 70 72 65 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 n.$pre...str_replace("\n",.'',.$
d0e80 74 68 69 73 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 29 20 2e 20 22 5c 6e 22 this->getUpcomingInput())..."\n"
d0ea0 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ...$c..."^";.}..public.function.
d0ec0 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 72 28 getPastInput().{.$past.=.substr(
d0ee0 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d $this->matched,.0,.strlen($this-
d0f00 3e 6d 61 74 63 68 65 64 29 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 >matched).-.strlen($this->match)
d0f20 29 3b 0a 0a 72 65 74 75 72 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 20 3f );..return.(strlen($past).>.20.?
d0f40 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e 20 73 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d 32 30 .'...'.:.'')...substr($past,.-20
d0f60 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 70 63 6f 6d 69 6e );.}..public.function.getUpcomin
d0f80 67 49 6e 70 75 74 28 29 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 3b gInput().{.$next.=.$this->match;
d0fa0 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 78 74 .if.(strlen($next).<.20).{.$next
d0fc0 20 2e 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 2c 20 32 30 20 2d ..=.substr($this->input,.0,.20.-
d0fe0 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 .strlen($next));.}..return.subst
d1000 72 28 24 6e 65 78 74 2c 20 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 r($next,.0,.20)...(strlen($next)
d1020 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 .>.20.?.'...'.:.'');.}..protecte
d1040 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 d.function.parseError($str,.$has
d1060 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 3b h).{.throw.new.\Exception($str);
d1080 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 69 66 .}..private.function.next().{.if
d10a0 20 28 24 74 68 69 73 2d 3e 64 6f 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 .($this->done).{.return.$this->E
d10c0 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 24 74 68 69 73 OF;.}.if.(!$this->input).{.$this
d10e0 2d 3e 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b ->done.=.true;.}..$token.=.null;
d1100 0a 24 6d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 69 .$match.=.null;.$col.=.null;.$li
d1120 6e 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 6f 72 65 29 20 7b nes.=.null;..if.(!$this->more).{
d1140 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 .$this->yytext.=.'';.$this->matc
d1160 68 20 3d 20 27 27 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 h.=.'';.}..$rules.=.$this->getCu
d1180 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e 74 28 rrentRules();.$rulesLen.=.count(
d11a0 24 72 75 6c 65 73 29 3b 0a 0a 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c 65 73 $rules);..for.($i=0;.$i.<.$rules
d11c0 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 Len;.$i++).{.if.(preg_match($thi
d11e0 73 2d 3e 72 75 6c 65 73 5b 24 72 75 6c 65 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 s->rules[$rules[$i]],.$this->inp
d1200 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f ut,.$match)).{.preg_match_all('/
d1220 5c 6e 2e 2a 2f 27 2c 20 24 6d 61 74 63 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c 69 6e \n.*/',.$match[0],.$lines);.$lin
d1240 65 73 20 3d 20 24 6c 69 6e 65 73 5b 30 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a 24 74 es.=.$lines[0];.if.($lines).{.$t
d1260 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 3b 0a his->yylineno.+=.count($lines);.
d1280 7d 0a 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 73 74 }..$this->yylloc.=.array(.'first
d12a0 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 6c 69 _line'.=>.$this->yylloc['last_li
d12c0 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 ne'],.'last_line'.=>.$this->yyli
d12e0 6e 65 6e 6f 2b 31 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d neno+1,.'first_column'.=>.$this-
d1300 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f >yylloc['last_column'],.'last_co
d1320 6c 75 6d 6e 27 20 3d 3e 20 24 6c 69 6e 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 73 5b lumn'.=>.$lines.?.strlen($lines[
d1340 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 73 2d count($lines).-.1]).-.1.:.$this-
d1360 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 6e 28 >yylloc['last_column'].+.strlen(
d1380 24 6d 61 74 63 68 5b 30 5d 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e 3d 20 $match[0]),.);.$this->yytext..=.
d13a0 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 74 63 $match[0];.$this->match..=.$matc
d13c0 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 73 20 3d 20 24 6d 61 74 63 68 3b 0a 24 h[0];.$this->matches.=.$match;.$
d13e0 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 79 79 74 this->yyleng.=.strlen($this->yyt
d1400 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 ext);.$this->more.=.false;.$this
d1420 2d 3e 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 73 ->input.=.substr($this->input,.s
d1440 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 trlen($match[0]));.$this->matche
d1460 64 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e d..=.$match[0];.$token.=.$this->
d1480 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c 20 24 74 68 69 73 2d performAction($rules[$i],.$this-
d14a0 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e >conditionStack[count($this->con
d14c0 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a ditionStack)-1]);.if.($token).{.
d14e0 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 return.$token;.}..return.new.Und
d1500 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 efined();.}.}..if.($this->input.
d1520 3d 3d 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 0a ===."").{.return.$this->EOF;.}..
d1540 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 61 6c 20 65 72 72 6f $this->parseError(.'Lexical.erro
d1560 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 r.on.line.'...($this->yylineno+1
d1580 29 20 2e 20 22 2e 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e 5c 6e 22 20 2e 20 24 )..."..Unrecognized.text.\n"...$
d15a0 74 68 69 73 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 61 79 28 0a 27 74 65 this->showPosition(),.array(.'te
d15c0 78 74 27 20 3d 3e 20 22 22 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 6c 69 6e xt'.=>."",.'token'.=>.null,.'lin
d15e0 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a 29 3b 0a 7d 0a 0a 70 e'.=>.$this->yylineno,.).);.}..p
d1600 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 65 67 69 6e 28 24 63 6f 6e 64 69 74 69 6f 6e rivate.function.begin($condition
d1620 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 5d 20 3d 20 24 63 ).{.$this->conditionStack[].=.$c
d1640 6f 6e 64 69 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f ondition;.}..private.function.po
d1660 70 53 74 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 pState().{.return.array_pop($thi
d1680 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 s->conditionStack);.}..private.f
d16a0 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 52 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 unction.getCurrentRules().{.retu
d16c0 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 64 rn.$this->conditions[$this->cond
d16e0 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f itionStack[count($this->conditio
d1700 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b 27 72 75 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 nStack)-1]]['rules'];.}..private
d1720 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 61 76 6f 69 64 69 6e .function.performAction($avoidin
d1740 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 2c 20 24 59 59 5f 53 54 41 52 54 29 0a 7b 0a g_name_collisions,.$YY_START).{.
d1760 24 59 59 53 54 41 54 45 20 3d 20 24 59 59 5f 53 54 41 52 54 3b 0a 73 77 69 74 63 68 20 28 24 61 $YYSTATE.=.$YY_START;.switch.($a
d1780 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 voiding_name_collisions).{.case.
d17a0 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 0:.break;.case.1:.return.6;.brea
d17c0 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 k;.case.2:.$this->yytext.=.subst
d17e0 72 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 2c 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e r($this->yytext,.1,.$this->yylen
d1800 67 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 34 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 g-2);..return.4;.case.3:.return.
d1820 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 65 74 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 17;.case.4:.return.18;.case.5:.r
d1840 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 eturn.23;.case.6:.return.24;.cas
d1860 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 32 3b 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 e.7:.return.22;.case.8:.return.2
d1880 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 74 75 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 1;.case.9:.return.10;.case.10:.r
d18a0 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 65 20 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 eturn.11;.case.11:.return.8;.cas
d18c0 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 31 34 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e e.12:.return.14;.case.13:.return
d18e0 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .'INVALID';.}.}.}.<?php.........
d1900 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 ..namespace.Seld\JsonLint;..clas
d1920 73 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 s.ParsingException.extends.\Exce
d1940 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 ption.{.protected.$details;..pub
d1960 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 lic.function.__construct($messag
d1980 65 2c 20 24 64 65 74 61 69 6c 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e e,.$details.=.array()).{.$this->
d19a0 64 65 74 61 69 6c 73 20 3d 20 24 64 65 74 61 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f details.=.$details;.parent::__co
d19c0 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e nstruct($message);.}..public.fun
d19e0 63 74 69 6f 6e 20 67 65 74 44 65 74 61 69 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getDetails().{.return.$thi
d1a00 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 s->details;.}.}.<?php..namespace
d1a20 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a .JsonSchema\Constraints;........
d1a40 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 class.Undefined.extends.Constrai
d1a60 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 nt.{....function.check($value,.$
d1a80 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 schema.=.null,.$path.=.null,.$i.
d1aa0 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 =.null).{.if.(!is_object($schema
d1ac0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 )).{.return;.}..$path.=.$this->i
d1ae0 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 ncrementPath($path,.$i);....$thi
d1b00 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c s->validateCommonProperties($val
d1b20 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 ue,.$schema,.$path);....$this->v
d1b40 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 alidateTypes($value,.$schema,.$p
d1b60 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ath,.$i);...}..........public.fu
d1b80 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 nction.validateTypes($value,.$sc
d1ba0 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
d1bc0 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 null).{...if.(is_array($value)).
d1be0 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 {.$this->checkArray($value,.$sch
d1c00 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a ema,.$path,.$i);.}....if.(is_obj
d1c20 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 ect($value).&&.isset($schema->pr
d1c40 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 63 74 28 operties)).{.$this->checkObject(
d1c60 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 2c 20 24 70 61 $value,.$schema->properties,.$pa
d1c80 74 68 2c 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f th,.isset($schema->additionalPro
d1ca0 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 perties).?.$schema->additionalPr
d1cc0 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 73 74 operties.:.null);.}....if.(is_st
d1ce0 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 53 74 72 69 ring($value)).{.$this->checkStri
d1d00 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a ng($value,.$schema,.$path,.$i);.
d1d20 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 }....if.(is_numeric($value)).{.$
d1d40 74 68 69 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d this->checkNumber($value,.$schem
d1d60 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 a,.$path,.$i);.}....if.(isset($s
d1d80 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 45 6e 75 6d chema->enum)).{.$this->checkEnum
d1da0 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a ($value,.$schema,.$path,.$i);.}.
d1dc0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 }..........protected.function.va
d1de0 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 lidateCommonProperties($value,.$
d1e00 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 schema.=.null,.$path.=.null,.$i.
d1e20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 =.null).{...if.(isset($schema->e
d1e40 78 74 65 6e 64 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 xtends)).{.$this->checkUndefined
d1e60 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 ($value,.$schema->extends,.$path
d1e80 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 ,.$i);.}....if.(is_object($value
d1ea0 29 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 4f 66 20 55 6e 64 65 66 69 6e 65 64 ).&&.$value.instanceOf.Undefined
d1ec0 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 ).{.if.(isset($schema->required)
d1ee0 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e .&&.$schema->required).{.$this->
d1f00 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 addError($path,."is.missing.and.
d1f20 69 74 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 it.is.required");.}.}.else.{.$th
d1f40 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 is->checkType($value,.$schema,.$
d1f60 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 path);.}....if.(isset($schema->d
d1f80 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d isallow)).{.$initErrors.=.$this-
d1fa0 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 >getErrors();..$this->checkUndef
d1fc0 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 2c 20 ined($value,.$schema->disallow,.
d1fe0 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 $path);....if.(count($this->getE
d2000 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 20 rrors()).==.count($initErrors)).
d2020 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 20 64 69 73 61 6c {.$this->addError($path,.".disal
d2040 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 20 6d 61 74 63 68 65 64 22 29 3b 0a 7d 20 65 6c 73 lowed.value.was.matched");.}.els
d2060 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b e.{.$this->errors.=.$initErrors;
d2080 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 .}.}.}.}<?php..namespace.JsonSch
d20a0 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 ema\Constraints;........class.Ty
d20c0 70 65 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 pe.extends.Constraint.{....funct
d20e0 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 63 68 65 6d 61 ion.check($value.=.null,.$schema
d2100 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c .=.null,.$path.=.null,.$i.=.null
d2120 29 0a 7b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 29 ).{.$type.=.isset($schema->type)
d2140 20 3f 20 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 20 3a 20 6e 75 6c 6c 3b 0a 24 69 73 56 61 6c 69 .?.$schema->type.:.null;.$isVali
d2160 64 20 3d 20 74 72 75 65 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 29 29 20 d.=.true;..if.(is_array($type)).
d2180 7b 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 66 61 6c 73 65 3b 0a 24 {...$validatedOneType.=.false;.$
d21a0 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 errors.=.array();.foreach.($type
d21c0 20 61 73 20 24 74 70 29 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 .as.$tp).{.$validator.=.new.Type
d21e0 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 20 3d ($this->checkMode);.$subSchema.=
d2200 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e 74 79 .new.\stdClass();.$subSchema->ty
d2220 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c pe.=.$tp;.$validator->check($val
d2240 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a 24 65 ue,.$subSchema,.$path,.null);.$e
d2260 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a rror.=.$validator->getErrors();.
d2280 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 65 .if.(!count($error)).{.$validate
d22a0 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b dOneType.=.true;.break;.}.else.{
d22c0 0a 24 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 7d 0a 69 66 20 28 21 24 76 61 6c .$errors.=.$error;.}.}.if.(!$val
d22e0 69 64 61 74 65 64 4f 6e 65 54 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 idatedOneType).{.return.$this->a
d2300 64 64 45 72 72 6f 72 73 28 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 ddErrors($errors);.}.}.elseif.(i
d2320 73 5f 6f 62 6a 65 63 74 28 24 74 79 70 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 s_object($type)).{.$this->checkU
d2340 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 2c 20 24 70 61 74 68 29 3b 0a ndefined($value,.$type,.$path);.
d2360 7d 20 65 6c 73 65 20 7b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 }.else.{.$isValid.=.$this->valid
d2380 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 ateType($value,.$type);.}..if.($
d23a0 69 73 56 61 6c 69 64 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 isValid.===.false).{.$this->addE
d23c0 72 72 6f 72 28 24 70 61 74 68 2c 20 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 20 2e 20 22 20 rror($path,.gettype($value)...".
d23e0 76 61 6c 75 65 20 66 6f 75 6e 64 2c 20 62 75 74 20 61 20 22 20 2e 20 24 74 79 70 65 20 2e 20 22 value.found,.but.a."...$type..."
d2400 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .is.required");.}.}..........pro
d2420 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 tected.function.validateType($va
d2440 6c 75 65 2c 20 24 74 79 70 65 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 lue,.$type).{...if.(!$type).{.re
d2460 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 turn.true;.}..switch.($type).{.c
d2480 61 73 65 20 27 69 6e 74 65 67 65 72 27 20 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 65 67 65 72 29 ase.'integer'.:.return.(integer)
d24a0 24 76 61 6c 75 65 20 3d 3d 20 24 76 61 6c 75 65 20 3f 20 74 72 75 65 20 3a 20 69 73 5f 69 6e 74 $value.==.$value.?.true.:.is_int
d24c0 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6e 75 6d 62 65 72 27 20 3a 0a 72 65 74 75 72 6e ($value);.case.'number'.:.return
d24e0 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 62 6f 6f 6c 65 .is_numeric($value);.case.'boole
d2500 61 6e 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 63 61 an'.:.return.is_bool($value);.ca
d2520 73 65 20 27 6f 62 6a 65 63 74 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6f 62 6a 65 63 74 28 24 se.'object'.:.return.is_object($
d2540 76 61 6c 75 65 29 3b 0a 0a 20 63 61 73 65 20 27 61 72 72 61 79 27 20 3a 0a 72 65 74 75 72 6e 20 value);...case.'array'.:.return.
d2560 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 73 74 72 69 6e 67 27 20 is_array($value);.case.'string'.
d2580 3a 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 :.return.is_string($value);.case
d25a0 20 27 6e 75 6c 6c 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c 75 65 29 .'null'.:.return.is_null($value)
d25c0 3b 0a 63 61 73 65 20 27 61 6e 79 27 20 3a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 64 65 66 61 ;.case.'any'.:.return.true;.defa
d25e0 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 ult:.throw.new.\InvalidArgumentE
d2600 78 63 65 70 74 69 6f 6e 28 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f xception((is_object($value).?.'o
d2620 62 6a 65 63 74 27 20 3a 20 24 76 61 6c 75 65 29 20 2e 20 27 20 69 73 20 61 20 69 6e 76 61 6c 69 bject'.:.$value)...'.is.a.invali
d2640 64 20 74 79 70 65 20 66 6f 72 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 d.type.for.'...$type);.}.}.}<?ph
d2660 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 p..namespace.JsonSchema\Constrai
d2680 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 68 65 6d 61 20 65 78 74 65 6e 64 73 nts;........class.Schema.extends
d26a0 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .Constraint.{....public.function
d26c0 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c .check($element,.$schema.=.null,
d26e0 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 .$path.=.null,.$i.=.null).{.if.(
d2700 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 $schema.!==.null).{...$this->che
d2720 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 2c 20 27 ckUndefined($element,.$schema,.'
d2740 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 65 6c 65 6d 65 6e 74 ',.'');.}.elseif.(isset($element
d2760 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 29 ->{$this->inlineSchemaProperty})
d2780 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 ).{...$this->checkUndefined($ele
d27a0 6d 65 6e 74 2c 20 24 65 6c 65 6d 65 6e 74 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 ment,.$element->{$this->inlineSc
d27c0 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b hemaProperty},.'',.'');.}.else.{
d27e0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
d2800 74 69 6f 6e 28 27 6e 6f 20 73 63 68 65 6d 61 20 66 6f 75 6e 64 20 74 6f 20 76 65 72 69 66 79 20 tion('no.schema.found.to.verify.
d2820 61 67 61 69 6e 73 74 27 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 against');.}.}.}<?php..namespace
d2840 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a .JsonSchema\Constraints;........
d2860 63 6c 61 73 73 20 4e 75 6d 62 65 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a class.Number.extends.Constraint.
d2880 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d {....public.function.check($elem
d28a0 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c ent,.$schema.=.null,.$path.=.nul
d28c0 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 l,.$i.=.null).{...if.(isset($sch
d28e0 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3c 20 24 73 63 68 ema->minimum).&&.$element.<.$sch
d2900 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 ema->minimum).{.$this->addError(
d2920 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 $path,."must.have.a.minimum.valu
d2940 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a e.of."...$schema->minimum);.}...
d2960 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 26 26 20 .if.(isset($schema->maximum).&&.
d2980 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 $element.>.$schema->maximum).{.$
d29a0 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 this->addError($path,."must.have
d29c0 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d .a.maximum.value.of."...$schema-
d29e0 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d >maximum);.}....if.(isset($schem
d2a00 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 25 20 24 73 a->divisibleBy).&&.$element.%.$s
d2a20 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 chema->divisibleBy.!=.0).{.$this
d2a40 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6e 6f 74 20 64 69 76 69 73 69 ->addError($path,."is.not.divisi
d2a60 62 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 ble.by."...$schema->divisibleBy)
d2a80 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 ;.}.}.}<?php..namespace.JsonSche
d2aa0 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 62 6a ma\Constraints;........class.Obj
d2ac0 65 63 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 ect.extends.Constraint.{....func
d2ae0 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e tion.check($element,.$definition
d2b00 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e .=.null,.$path.=.null,.$addition
d2b20 61 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 alProp.=.null).{...$this->valida
d2b40 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 teDefinition($element,.$definiti
d2b60 6f 6e 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 45 6c on,.$path);....$this->validateEl
d2b80 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 ement($element,.$definition,.$pa
d2ba0 74 68 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a th,.$additionalProp);.}.........
d2bc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 .public.function.validateElement
d2be0 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e ($element,.$objectDefinition.=.n
d2c00 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 ull,.$path.=.null,.$additionalPr
d2c20 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e 74 20 61 op.=.null).{.foreach.($element.a
d2c40 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 s.$i.=>.$value).{..$property.=.$
d2c60 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 2c 20 this->getProperty($element,.$i,.
d2c80 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 new.Undefined());.$definition.=.
d2ca0 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 $this->getProperty($objectDefini
d2cc0 74 69 6f 6e 2c 20 24 69 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 tion,.$i);....if.($this->getProp
d2ce0 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 72 65 64 27 29 20 26 26 erty($definition,.'required').&&
d2d00 20 21 24 70 72 6f 70 65 72 74 79 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 .!$property).{.$this->addError($
d2d20 70 61 74 68 2c 20 22 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 path,."the.property."...$i...".i
d2d40 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 64 64 69 74 69 6f 6e s.required");.}....if.($addition
d2d60 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6e 6c 69 6e alProp.===.false.&&.$this->inlin
d2d80 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 21 3d 3d 20 24 69 20 26 26 20 21 24 64 65 66 69 eSchemaProperty.!==.$i.&&.!$defi
d2da0 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c nition).{.$this->addError($path,
d2dc0 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 6e 6f 74 ."The.property."...$i...".is.not
d2de0 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 6f 65 73 .defined.and.the.definition.does
d2e00 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 65 73 .not.allow.additional.properties
d2e20 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 26 26 20 ");.}....if.($additionalProp.&&.
d2e40 21 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 !$definition).{.$this->checkUnde
d2e60 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 2c 20 24 fined($value,.$additionalProp,.$
d2e80 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 24 72 65 71 75 69 72 65 20 3d 20 24 74 68 69 73 path,.$i);.}....$require.=.$this
d2ea0 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 ->getProperty($definition,.'requ
d2ec0 69 72 65 73 27 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 26 26 20 21 24 74 68 69 73 2d 3e ires');.if.($require.&&.!$this->
d2ee0 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 65 29 29 getProperty($element,.$require))
d2f00 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 .{.$this->addError($path,."the.p
d2f20 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e resence.of.the.property."...$i..
d2f40 20 22 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 20 2e 20 .".requires.that."...$require...
d2f60 22 20 61 6c 73 6f 20 62 65 20 70 72 65 73 65 6e 74 22 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d ".also.be.present");.}....$this-
d2f80 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 64 65 66 69 6e 69 74 >checkUndefined($value,.$definit
d2fa0 69 6f 6e 20 3f 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 ion.?.:.new.\stdClass(),.$path,.
d2fc0 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $i);.}.}.........public.function
d2fe0 20 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f .validateDefinition($element,.$o
d3000 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 bjectDefinition.=.null,.$path.=.
d3020 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 null).{.foreach.($objectDefiniti
d3040 6f 6e 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 70 72 6f 70 65 72 74 79 20 on.as.$i.=>.$value).{.$property.
d3060 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 =.$this->getProperty($element,.$
d3080 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e i,.new.Undefined());.$definition
d30a0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 6f 62 6a 65 63 74 44 65 66 .=.$this->getProperty($objectDef
d30c0 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 inition,.$i);.$this->checkUndefi
d30e0 6e 65 64 28 24 70 72 6f 70 65 72 74 79 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 ned($property,.$definition,.$pat
d3100 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 h,.$i);.}.}..........protected.f
d3120 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 70 unction.getProperty($element,.$p
d3140 72 6f 70 65 72 74 79 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 roperty,.$fallback.=.null).{.if.
d3160 28 69 73 5f 61 72 72 61 79 28 24 65 6c 65 6d 65 6e 74 29 20 29 20 7b 0a 72 65 74 75 72 6e 20 61 (is_array($element).).{.return.a
d3180 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 70 72 6f 70 65 72 74 79 2c 20 24 65 6c 65 6d rray_key_exists($property,.$elem
d31a0 65 6e 74 29 20 3f 20 24 65 6c 65 6d 65 6e 74 5b 24 70 72 6f 70 65 72 74 79 5d 20 3a 20 24 66 61 ent).?.$element[$property].:.$fa
d31c0 6c 6c 62 61 63 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 65 llback;.}.else.{.return.isset($e
d31e0 6c 65 6d 65 6e 74 2d 3e 24 70 72 6f 70 65 72 74 79 29 20 3f 20 24 65 6c 65 6d 65 6e 74 2d 3e 24 lement->$property).?.$element->$
d3200 70 72 6f 70 65 72 74 79 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 property.:.$fallback;.}.}.}<?php
d3220 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e ..namespace.JsonSchema\Constrain
d3240 74 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e ts;.......interface.ConstraintIn
d3260 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 terface.{......function.getError
d3280 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 s();.......function.addErrors(ar
d32a0 72 61 79 20 24 65 72 72 6f 72 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 64 ray.$errors);........function.ad
d32c0 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 66 dError($path,.$message);.......f
d32e0 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e unction.isValid();...........fun
d3300 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 ction.check($value,.$schema.=.nu
d3320 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 3c ll,.$path.=.null,.$i.=.null);.}<
d3340 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 ?php..namespace.JsonSchema\Const
d3360 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f raints;........abstract.class.Co
d3380 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e nstraint.implements.ConstraintIn
d33a0 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d terface.{.protected.$checkMode.=
d33c0 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 .self::CHECK_MODE_NORMAL;.protec
d33e0 74 65 64 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 ted.$errors.=.array();.protected
d3400 20 24 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d .$inlineSchemaProperty.=.'$schem
d3420 61 27 3b 0a 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 a';..const.CHECK_MODE_NORMAL.=.1
d3440 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 ;.const.CHECK_MODE_TYPE_CAST.=.2
d3460 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ;.....public.function.__construc
d3480 74 28 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f t($checkMode.=.self::CHECK_MODE_
d34a0 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 NORMAL).{.$this->checkMode.=.$ch
d34c0 65 63 6b 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 eckMode;.}.....public.function.a
d34e0 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 ddError($path,.$message).{.$this
d3500 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 3d ->errors[].=.array(.'property'.=
d3520 3e 20 24 70 61 74 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 0a 29 >.$path,.'message'.=>.$message.)
d3540 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 ;.}.....public.function.addError
d3560 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 s(array.$errors).{.$this->errors
d3580 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 65 .=.array_merge($this->errors,.$e
d35a0 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 rrors);.}.....public.function.ge
d35c0 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 tErrors().{.return.array_unique(
d35e0 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 3b 0a 7d 0a $this->errors,.SORT_REGULAR);.}.
d3600 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 ........protected.function.incre
d3620 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 mentPath($path,.$i).{.if.($path.
d3640 21 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 !==.'').{.if.(is_int($i)).{.$pat
d3660 68 20 2e 3d 20 27 5b 27 20 2e 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 h..=.'['...$i...']';.}.else.if.(
d3680 24 69 20 3d 3d 20 27 27 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 $i.==.'').{.$path..=.'';.}.else.
d36a0 7b 0a 24 70 61 74 68 20 2e 3d 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a {.$path..=.'.'...$i;.}.}.else.{.
d36c0 24 70 61 74 68 20 3d 20 24 69 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a $path.=.$i;.}..return.$path;.}..
d36e0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b ........protected.function.check
d3700 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 Array($value,.$schema.=.null,.$p
d3720 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 ath.=.null,.$i.=.null).{.$valida
d3740 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6c 6c 65 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 68 65 63 tor.=.new.Collection($this->chec
d3760 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 kMode);.$validator->check($value
d3780 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 ,.$schema,.$path,.$i);..$this->a
d37a0 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 ddErrors($validator->getErrors()
d37c0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e );.}..........protected.function
d37e0 20 63 68 65 63 6b 4f 62 6a 65 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e .checkObject($value,.$schema.=.n
d3800 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ull,.$path.=.null,.$i.=.null).{.
d3820 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 4f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e 63 $validator.=.new.Object($this->c
d3840 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 heckMode);.$validator->check($va
d3860 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 lue,.$schema,.$path,.$i);..$this
d3880 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 ->addErrors($validator->getError
d38a0 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 s());.}..........protected.funct
d38c0 69 6f 6e 20 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 ion.checkType($value,.$schema.=.
d38e0 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b null,.$path.=.null,.$i.=.null).{
d3900 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 28 24 74 68 69 73 2d 3e 63 68 .$validator.=.new.Type($this->ch
d3920 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c eckMode);.$validator->check($val
d3940 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d ue,.$schema,.$path,.$i);..$this-
d3960 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 >addErrors($validator->getErrors
d3980 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ());.}..........protected.functi
d39a0 6f 6e 20 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d on.checkUndefined($value,.$schem
d39c0 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c a.=.null,.$path.=.null,.$i.=.nul
d39e0 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 l).{.$validator.=.new.Undefined(
d3a00 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 $this->checkMode);.$validator->c
d3a20 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 heck($value,.$schema,.$path,.$i)
d3a40 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e ;..$this->addErrors($validator->
d3a60 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 getErrors());.}..........protect
d3a80 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 ed.function.checkString($value,.
d3aa0 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 $schema.=.null,.$path.=.null,.$i
d3ac0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 74 72 69 .=.null).{.$validator.=.new.Stri
d3ae0 6e 67 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 ng($this->checkMode);.$validator
d3b00 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 ->check($value,.$schema,.$path,.
d3b20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f $i);..$this->addErrors($validato
d3b40 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 r->getErrors());.}..........prot
d3b60 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 ected.function.checkNumber($valu
d3b80 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c e,.$schema.=.null,.$path.=.null,
d3ba0 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 4e .$i.=.null).{.$validator.=.new.N
d3bc0 75 6d 62 65 72 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 umber($this->checkMode);.$valida
d3be0 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 tor->check($value,.$schema,.$pat
d3c00 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 h,.$i);..$this->addErrors($valid
d3c20 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ator->getErrors());.}..........p
d3c40 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c rotected.function.checkEnum($val
d3c60 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c ue,.$schema.=.null,.$path.=.null
d3c80 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 ,.$i.=.null).{.$validator.=.new.
d3ca0 45 6e 75 6d 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 Enum($this->checkMode);.$validat
d3cc0 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 or->check($value,.$schema,.$path
d3ce0 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 ,.$i);..$this->addErrors($valida
d3d00 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tor->getErrors());.}.....public.
d3d20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 function.isValid().{.return.!$th
d3d40 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 is->getErrors();.}.}<?php..names
d3d60 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a pace.JsonSchema\Constraints;....
d3d80 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6c 6c 65 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 43 6f 6e ....class.Collection.extends.Con
d3da0 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 straint.{....public.function.che
d3dc0 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 ck($value,.$schema.=.null,.$path
d3de0 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 .=.null,.$i.=.null).{...if.(isse
d3e00 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 t($schema->minItems).&&.count($v
d3e20 61 6c 75 65 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 7b 0a 24 74 68 alue).<.$schema->minItems).{.$th
d3e40 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 is->addError($path,."There.must.
d3e60 62 65 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e be.a.minimum.of."...$schema->min
d3e80 49 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 20 69 66 Items...".in.the.array");.}...if
d3ea0 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 26 26 20 63 6f .(isset($schema->maxItems).&&.co
d3ec0 75 6e 74 28 24 76 61 6c 75 65 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 unt($value).>.$schema->maxItems)
d3ee0 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 .{.$this->addError($path,."There
d3f00 20 6d 75 73 74 20 62 65 20 61 20 6d 61 78 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d .must.be.a.maximum.of."...$schem
d3f20 61 2d 3e 6d 61 78 49 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a a->maxItems...".in.the.array");.
d3f40 7d 0a 0a 20 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 75 6e 69 71 75 65 49 }.....if.(isset($schema->uniqueI
d3f60 74 65 6d 73 29 20 26 26 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 76 61 6c 75 65 29 20 21 3d tems).&&.array_unique($value).!=
d3f80 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 .$value).{.$this->addError($path
d3fa0 2c 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 73 20 61 6c 6c 6f 77 ,."There.are.no.duplicates.allow
d3fc0 65 64 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 ed.in.the.array");.}....if.(isse
d3fe0 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 t($schema->items)).{.$this->vali
d4000 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 dateItems($value,.$schema,.$path
d4020 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ,.$i);.}.}..........protected.fu
d4040 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 nction.validateItems($value,.$sc
d4060 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
d4080 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 69 null).{.if.(!is_array($schema->i
d40a0 74 65 6d 73 29 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b tems)).{...foreach.($value.as.$k
d40c0 20 3d 3e 20 24 76 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 .=>.$v).{.$initErrors.=.$this->g
d40e0 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 63 68 65 6d etErrors();....if.(!isset($schem
d4100 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 7c 7c 20 24 73 63 68 65 6d 61 2d 3e a->additionalItems).||.$schema->
d4120 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 additionalItems.===.false).{.$th
d4140 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e is->checkUndefined($v,.$schema->
d4160 69 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e items,.$path,.$k);.}....if.(coun
d4180 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 t($initErrors).<.count($this->ge
d41a0 74 45 72 72 6f 72 73 28 29 29 20 26 26 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 tErrors()).&&.(isset($schema->ad
d41c0 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 ditionalItems).&&.$schema->addit
d41e0 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 73 65 63 6f 6e 64 ionalItems.!==.false)).{.$second
d4200 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 Errors.=.$this->getErrors();.$th
d4220 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e is->checkUndefined($v,.$schema->
d4240 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 0a additionalItems,.$path,.$k);.}..
d4260 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f ..if.(isset($secondErrors).&&.co
d4280 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3c 20 24 74 68 69 73 2d 3e 67 65 74 45 unt($secondErrors).<.$this->getE
d42a0 72 72 6f 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 73 65 63 6f rrors()).{.$this->errors.=.$seco
d42c0 6e 64 45 72 72 6f 72 73 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e ndErrors;.}.elseif.(isset($secon
d42e0 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 dErrors).&&.count($secondErrors)
d4300 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 20 7b .==.count($this->getErrors())).{
d4320 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a .$this->errors.=.$initErrors;.}.
d4340 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 }.}.else.{...foreach.($value.as.
d4360 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 $k.=>.$v).{.if.(array_key_exists
d4380 28 24 6b 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 ($k,.$schema->items)).{.$this->c
d43a0 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 heckUndefined($v,.$schema->items
d43c0 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 [$k],.$path,.$k);.}.else.{...if.
d43e0 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 (array_key_exists('additionalIte
d4400 6d 73 27 2c 20 24 73 63 68 65 6d 61 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 ms',.$schema).&&.$schema->additi
d4420 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 onalItems.!==.false).{.$this->ch
d4440 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 eckUndefined($v,.$schema->additi
d4460 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a onalItems,.$path,.$k);.}.else.{.
d4480 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 0a 24 70 61 74 68 2c 0a 27 54 68 65 20 69 74 65 $this->addError(.$path,.'The.ite
d44a0 6d 20 27 20 2e 20 24 69 20 2e 20 27 5b 27 20 2e 20 24 6b 20 2e 20 27 5d 20 69 73 20 6e 6f 74 20 m.'...$i...'['...$k...'].is.not.
d44c0 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 6f 62 6a 54 79 70 65 44 65 66 20 61 6e 64 20 74 68 defined.in.the.objTypeDef.and.th
d44e0 65 20 6f 62 6a 54 79 70 65 44 65 66 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 e.objTypeDef.does.not.allow.addi
d4500 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 65 73 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 tional.properties'.);.}.}.}....f
d4520 6f 72 20 28 24 6b 20 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 3b 20 24 6b 20 3c 20 63 6f 75 or.($k.=.count($value);.$k.<.cou
d4540 6e 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 3b 20 24 6b 2b 2b 29 20 7b 0a 24 74 68 69 nt($schema->items);.$k++).{.$thi
d4560 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 s->checkUndefined(new.Undefined(
d4580 29 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b ),.$schema->items[$k],.$path,.$k
d45a0 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 );.}.}.}.}<?php..namespace.JsonS
d45c0 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 chema\Constraints;........class.
d45e0 45 6e 75 6d 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 Enum.extends.Constraint.{....pub
d4600 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 lic.function.check($element,.$sc
d4620 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
d4640 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 null).{.foreach.($schema->enum.a
d4660 73 20 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 70 6f 73 73 69 62 6c s.$possibleValue).{.if.($possibl
d4680 65 56 61 6c 75 65 20 3d 3d 20 24 65 6c 65 6d 65 6e 74 29 20 7b 0a 24 66 6f 75 6e 64 20 3d 20 74 eValue.==.$element).{.$found.=.t
d46a0 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 66 6f 75 rue;.break;.}.}..if.(!isset($fou
d46c0 6e 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 64 nd)).{.$this->addError($path,."d
d46e0 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 65 6e 75 6d oes.not.have.a.value.in.the.enum
d4700 65 72 61 74 69 6f 6e 20 22 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 63 68 65 6d eration."...implode(',.',.$schem
d4720 61 2d 3e 65 6e 75 6d 29 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 a->enum));.}.}.}<?php..namespace
d4740 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a .JsonSchema\Constraints;........
d4760 63 6c 61 73 73 20 53 74 72 69 6e 67 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a class.String.extends.Constraint.
d4780 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d {....public.function.check($elem
d47a0 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c ent,.$schema.=.null,.$path.=.nul
d47c0 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 l,.$i.=.null).{...if.(isset($sch
d47e0 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 ema->maxLength).&&.strlen($eleme
d4800 6e 74 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 nt).>.$schema->maxLength).{.$thi
d4820 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6d s->addError($path,."must.be.at.m
d4840 6f 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 22 20 63 ost."...$schema->maxLength...".c
d4860 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 haracters.long");.}....if.(isset
d4880 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 ($schema->minLength).&&.strlen($
d48a0 65 6c 65 6d 65 6e 74 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 7b element).<.$schema->minLength).{
d48c0 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 .$this->addError($path,."must.be
d48e0 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 .at.least."...$schema->minLength
d4900 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ...".characters.long");.}....if.
d4920 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 65 (isset($schema->pattern).&&.!pre
d4940 67 5f 6d 61 74 63 68 28 27 2f 27 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 20 2e g_match('/'...$schema->pattern..
d4960 20 27 2f 27 2c 20 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 .'/',.$element)).{.$this->addErr
d4980 6f 72 28 24 70 61 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 72 65 or($path,."does.not.match.the.re
d49a0 67 65 78 20 70 61 74 74 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e gex.pattern."...$schema->pattern
d49c0 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 );.}.}.}<?php..namespace.JsonSch
d49e0 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 ema;..use.JsonSchema\Constraints
d4a00 5c 53 63 68 65 6d 61 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 \Schema;.use.JsonSchema\Constrai
d4a20 6e 74 73 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 nts\Constraint;.........class.Va
d4a40 6c 69 64 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a lidator.extends.Constraint.{....
d4a60 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 ....function.check($value,.$sche
d4a80 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 ma.=.null,.$path.=.null,.$i.=.nu
d4aa0 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 63 68 65 6d 61 28 24 74 ll).{.$validator.=.new.Schema($t
d4ac0 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 his->checkMode);.$validator->che
d4ae0 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 45 ck($value,.$schema);.$this->addE
d4b00 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a rrors($validator->getErrors());.
d4b20 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 52 5f 5f }.}<?php....require_once.__DIR__
d4b40 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c ...'/composer'...'/autoload_real
d4b60 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 .php';..return.ComposerAutoloade
d4b80 72 49 6e 69 74 34 61 35 33 66 61 39 35 66 39 30 38 64 38 63 30 35 37 63 31 36 64 66 39 30 66 38 rInit4a53fa95f908d8c057c16df90f8
d4ba0 61 32 61 31 65 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 a2a1e::getLoader();.<?php....$ve
d4bc0 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 ndorDir.=.dirname(dirname(__FILE
d4be0 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 __));.$baseDir.=.dirname($vendor
d4c00 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 Dir);..return.array(.'Symfony\\C
d4c20 6f 6d 70 6f 6e 65 6e 74 5c 5c 59 61 6d 6c 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 omponent\\Yaml\\'.=>.array($vend
d4c40 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 27 29 2c 0a 27 53 79 6d 66 6f orDir...'/symfony/yaml'),.'Symfo
d4c60 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 73 5c 5c 27 20 3d 3e 20 61 72 72 ny\\Component\\Process\\'.=>.arr
d4c80 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 ay($vendorDir...'/symfony/proces
d4ca0 73 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6e 64 65 72 s'),.'Symfony\\Component\\Finder
d4cc0 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 \\'.=>.array($vendorDir...'/symf
d4ce0 6f 6e 79 2f 66 69 6e 64 65 72 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e ony/finder'),.'Symfony\\Componen
d4d00 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 t\\Console\\'.=>.array($vendorDi
d4d20 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 27 29 2c 0a 27 53 65 6c 64 5c 5c r...'/symfony/console'),.'Seld\\
d4d40 4a 73 6f 6e 4c 69 6e 74 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 JsonLint'.=>.array($vendorDir...
d4d60 27 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 27 29 2c 0a 27 4a 73 6f 6e 53 63 68 65 '/seld/jsonlint/src'),.'JsonSche
d4d80 6d 61 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 6a 75 73 74 ma'.=>.array($vendorDir...'/just
d4da0 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 27 29 2c 0a 27 43 6f inrainbow/json-schema/src'),.'Co
d4dc0 6d 70 6f 73 65 72 27 20 3d 3e 20 61 72 72 61 79 28 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 mposer'.=>.array($baseDir...'/sr
d4de0 63 27 29 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 c'),.);.<?php....$vendorDir.=.di
d4e00 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 rname(dirname(__FILE__));.$baseD
d4e20 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 ir.=.dirname($vendorDir);..retur
d4e40 6e 20 61 72 72 61 79 28 0a 27 46 69 6c 65 5f 49 74 65 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e n.array(.'File_Iterator'.=>.$ven
d4e60 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 dorDir...'/phpunit/php-file-iter
d4e80 61 74 6f 72 2f 46 69 6c 65 2f 49 74 65 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 46 69 6c 65 5f 49 ator/File/Iterator.php',.'File_I
d4ea0 74 65 72 61 74 6f 72 5f 46 61 63 61 64 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 terator_Facade'.=>.$vendorDir...
d4ec0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 2f 46 69 6c 65 '/phpunit/php-file-iterator/File
d4ee0 2f 49 74 65 72 61 74 6f 72 2f 46 61 63 61 64 65 2e 70 68 70 27 2c 0a 27 46 69 6c 65 5f 49 74 65 /Iterator/Facade.php',.'File_Ite
d4f00 72 61 74 6f 72 5f 46 61 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 rator_Factory'.=>.$vendorDir...'
d4f20 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 2f 46 69 6c 65 2f /phpunit/php-file-iterator/File/
d4f40 49 74 65 72 61 74 6f 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f Iterator/Factory.php',.'PHPUnit_
d4f60 45 78 74 65 6e 73 69 6f 6e 73 5f 47 72 6f 75 70 54 65 73 74 53 75 69 74 65 27 20 3d 3e 20 24 76 Extensions_GroupTestSuite'.=>.$v
d4f80 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 endorDir...'/phpunit/phpunit/PHP
d4fa0 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 47 72 6f 75 70 54 65 73 74 53 75 69 74 65 2e 70 Unit/Extensions/GroupTestSuite.p
d4fc0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 50 68 70 74 54 65 73 hp',.'PHPUnit_Extensions_PhptTes
d4fe0 74 43 61 73 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 tCase'.=>.$vendorDir...'/phpunit
d5000 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 50 68 70 74 /phpunit/PHPUnit/Extensions/Phpt
d5020 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f TestCase.php',.'PHPUnit_Extensio
d5040 6e 73 5f 50 68 70 74 54 65 73 74 43 61 73 65 5f 4c 6f 67 67 65 72 27 20 3d 3e 20 24 76 65 6e 64 ns_PhptTestCase_Logger'.=>.$vend
d5060 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d5080 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 50 68 70 74 54 65 73 74 43 61 73 65 2f 4c 6f 67 67 65 72 t/Extensions/PhptTestCase/Logger
d50a0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 50 68 70 74 54 .php',.'PHPUnit_Extensions_PhptT
d50c0 65 73 74 53 75 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 estSuite'.=>.$vendorDir...'/phpu
d50e0 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 50 nit/phpunit/PHPUnit/Extensions/P
d5100 68 70 74 54 65 73 74 53 75 69 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 hptTestSuite.php',.'PHPUnit_Exte
d5120 6e 73 69 6f 6e 73 5f 52 65 70 65 61 74 65 64 54 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 nsions_RepeatedTest'.=>.$vendorD
d5140 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 ir...'/phpunit/phpunit/PHPUnit/E
d5160 78 74 65 6e 73 69 6f 6e 73 2f 52 65 70 65 61 74 65 64 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 xtensions/RepeatedTest.php',.'PH
d5180 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 54 65 73 74 44 65 63 6f 72 61 74 6f 72 27 20 PUnit_Extensions_TestDecorator'.
d51a0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 =>.$vendorDir...'/phpunit/phpuni
d51c0 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 54 65 73 74 44 65 63 6f 72 61 74 t/PHPUnit/Extensions/TestDecorat
d51e0 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 54 69 63 or.php',.'PHPUnit_Extensions_Tic
d5200 6b 65 74 4c 69 73 74 65 6e 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 ketListener'.=>.$vendorDir...'/p
d5220 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e hpunit/phpunit/PHPUnit/Extension
d5240 73 2f 54 69 63 6b 65 74 4c 69 73 74 65 6e 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f s/TicketListener.php',.'PHPUnit_
d5260 46 72 61 6d 65 77 6f 72 6b 5f 41 73 73 65 72 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 Framework_Assert'.=>.$vendorDir.
d5280 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
d52a0 65 77 6f 72 6b 2f 41 73 73 65 72 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d ework/Assert.php',.'PHPUnit_Fram
d52c0 65 77 6f 72 6b 5f 41 73 73 65 72 74 69 6f 6e 46 61 69 6c 65 64 45 72 72 6f 72 27 20 3d 3e 20 24 ework_AssertionFailedError'.=>.$
d52e0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
d5300 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 41 73 73 65 72 74 69 6f 6e 46 61 69 6c 65 64 45 PUnit/Framework/AssertionFailedE
d5320 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f rror.php',.'PHPUnit_Framework_Co
d5340 6d 70 61 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 mparator'.=>.$vendorDir...'/phpu
d5360 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f nit/phpunit/PHPUnit/Framework/Co
d5380 6d 70 61 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 mparator.php',.'PHPUnit_Framewor
d53a0 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 46 61 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 k_ComparatorFactory'.=>.$vendorD
d53c0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 ir...'/phpunit/phpunit/PHPUnit/F
d53e0 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 46 61 63 74 6f 72 79 2e 70 68 70 27 2c ramework/ComparatorFactory.php',
d5400 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 41 .'PHPUnit_Framework_Comparator_A
d5420 72 72 61 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f rray'.=>.$vendorDir...'/phpunit/
d5440 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 phpunit/PHPUnit/Framework/Compar
d5460 61 74 6f 72 2f 41 72 72 61 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 ator/Array.php',.'PHPUnit_Framew
d5480 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 44 4f 4d 44 6f 63 75 6d 65 6e 74 27 20 3d 3e 20 24 ork_Comparator_DOMDocument'.=>.$
d54a0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
d54c0 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 4f 4d 44 6f PUnit/Framework/Comparator/DOMDo
d54e0 63 75 6d 65 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f cument.php',.'PHPUnit_Framework_
d5500 43 6f 6d 70 61 72 61 74 6f 72 5f 44 6f 75 62 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 Comparator_Double'.=>.$vendorDir
d5520 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 ...'/phpunit/phpunit/PHPUnit/Fra
d5540 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 6f 75 62 6c 65 2e 70 68 70 27 2c 0a 27 mework/Comparator/Double.php',.'
d5560 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 45 78 63 PHPUnit_Framework_Comparator_Exc
d5580 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 eption'.=>.$vendorDir...'/phpuni
d55a0 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 t/phpunit/PHPUnit/Framework/Comp
d55c0 61 72 61 74 6f 72 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f arator/Exception.php',.'PHPUnit_
d55e0 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 4d 6f 63 6b 4f 62 6a 65 63 74 27 Framework_Comparator_MockObject'
d5600 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
d5620 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f it/PHPUnit/Framework/Comparator/
d5640 4d 6f 63 6b 4f 62 6a 65 63 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 MockObject.php',.'PHPUnit_Framew
d5660 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 4e 75 6d 65 72 69 63 27 20 3d 3e 20 24 76 65 6e 64 ork_Comparator_Numeric'.=>.$vend
d5680 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d56a0 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 65 72 69 63 2e 70 t/Framework/Comparator/Numeric.p
d56c0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 hp',.'PHPUnit_Framework_Comparat
d56e0 6f 72 5f 4f 62 6a 65 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 or_Object'.=>.$vendorDir...'/php
d5700 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
d5720 6f 6d 70 61 72 61 74 6f 72 2f 4f 62 6a 65 63 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f omparator/Object.php',.'PHPUnit_
d5740 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 52 65 73 6f 75 72 63 65 27 20 3d Framework_Comparator_Resource'.=
d5760 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d5780 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 52 65 /PHPUnit/Framework/Comparator/Re
d57a0 73 6f 75 72 63 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f source.php',.'PHPUnit_Framework_
d57c0 43 6f 6d 70 61 72 61 74 6f 72 5f 53 63 61 6c 61 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 Comparator_Scalar'.=>.$vendorDir
d57e0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 ...'/phpunit/phpunit/PHPUnit/Fra
d5800 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 53 63 61 6c 61 72 2e 70 68 70 27 2c 0a 27 mework/Comparator/Scalar.php',.'
d5820 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 53 70 6c PHPUnit_Framework_Comparator_Spl
d5840 4f 62 6a 65 63 74 53 74 6f 72 61 67 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 ObjectStorage'.=>.$vendorDir...'
d5860 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f /phpunit/phpunit/PHPUnit/Framewo
d5880 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 53 70 6c 4f 62 6a 65 63 74 53 74 6f 72 61 67 65 2e 70 rk/Comparator/SplObjectStorage.p
d58a0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 hp',.'PHPUnit_Framework_Comparat
d58c0 6f 72 5f 54 79 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e or_Type'.=>.$vendorDir...'/phpun
d58e0 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d it/phpunit/PHPUnit/Framework/Com
d5900 70 61 72 61 74 6f 72 2f 54 79 70 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d parator/Type.php',.'PHPUnit_Fram
d5920 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 69 73 6f 6e 46 61 69 6c 75 72 65 27 20 3d 3e 20 24 76 65 6e ework_ComparisonFailure'.=>.$ven
d5940 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
d5960 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 69 73 6f 6e 46 61 69 6c 75 72 65 2e 70 it/Framework/ComparisonFailure.p
d5980 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
d59a0 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 nt'.=>.$vendorDir...'/phpunit/ph
d59c0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 punit/PHPUnit/Framework/Constrai
d59e0 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 nt.php',.'PHPUnit_Framework_Cons
d5a00 74 72 61 69 6e 74 5f 41 6e 64 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 traint_And'.=>.$vendorDir...'/ph
d5a20 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
d5a40 43 6f 6e 73 74 72 61 69 6e 74 2f 41 6e 64 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 Constraint/And.php',.'PHPUnit_Fr
d5a60 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 41 72 72 61 79 48 61 73 4b 65 79 27 20 amework_Constraint_ArrayHasKey'.
d5a80 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 =>.$vendorDir...'/phpunit/phpuni
d5aa0 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 41 t/PHPUnit/Framework/Constraint/A
d5ac0 72 72 61 79 48 61 73 4b 65 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 rrayHasKey.php',.'PHPUnit_Framew
d5ae0 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 41 74 74 72 69 62 75 74 65 27 20 3d 3e 20 24 76 65 ork_Constraint_Attribute'.=>.$ve
d5b00 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
d5b20 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 41 74 74 72 69 62 75 nit/Framework/Constraint/Attribu
d5b40 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 te.php',.'PHPUnit_Framework_Cons
d5b60 74 72 61 69 6e 74 5f 43 61 6c 6c 62 61 63 6b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e traint_Callback'.=>.$vendorDir..
d5b80 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
d5ba0 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 61 6c 6c 62 61 63 6b 2e 70 68 70 27 2c 0a 27 work/Constraint/Callback.php',.'
d5bc0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 6c 61 PHPUnit_Framework_Constraint_Cla
d5be0 73 73 48 61 73 41 74 74 72 69 62 75 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ssHasAttribute'.=>.$vendorDir...
d5c00 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
d5c20 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6c 61 73 73 48 61 73 41 74 74 72 69 62 75 74 65 ork/Constraint/ClassHasAttribute
d5c40 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
d5c60 61 69 6e 74 5f 43 6c 61 73 73 48 61 73 53 74 61 74 69 63 41 74 74 72 69 62 75 74 65 27 20 3d 3e aint_ClassHasStaticAttribute'.=>
d5c80 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
d5ca0 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6c 61 PHPUnit/Framework/Constraint/Cla
d5cc0 73 73 48 61 73 53 74 61 74 69 63 41 74 74 72 69 62 75 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 ssHasStaticAttribute.php',.'PHPU
d5ce0 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 6f 6d 70 6f 73 69 nit_Framework_Constraint_Composi
d5d00 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 te'.=>.$vendorDir...'/phpunit/ph
d5d20 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 punit/PHPUnit/Framework/Constrai
d5d40 6e 74 2f 43 6f 6d 70 6f 73 69 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d nt/Composite.php',.'PHPUnit_Fram
d5d60 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 6f 75 6e 74 27 20 3d 3e 20 24 76 65 6e 64 ework_Constraint_Count'.=>.$vend
d5d80 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d5da0 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6f 75 6e 74 2e 70 68 70 t/Framework/Constraint/Count.php
d5dc0 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 ',.'PHPUnit_Framework_Constraint
d5de0 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 _Exception'.=>.$vendorDir...'/ph
d5e00 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
d5e20 43 6f 6e 73 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 Constraint/Exception.php',.'PHPU
d5e40 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 45 78 63 65 70 74 69 nit_Framework_Constraint_Excepti
d5e60 6f 6e 43 6f 64 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 onCode'.=>.$vendorDir...'/phpuni
d5e80 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 t/phpunit/PHPUnit/Framework/Cons
d5ea0 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e 43 6f 64 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 traint/ExceptionCode.php',.'PHPU
d5ec0 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 45 78 63 65 70 74 69 nit_Framework_Constraint_Excepti
d5ee0 6f 6e 4d 65 73 73 61 67 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 onMessage'.=>.$vendorDir...'/php
d5f00 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
d5f20 6f 6e 73 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e 4d 65 73 73 61 67 65 2e 70 68 70 27 2c onstraint/ExceptionMessage.php',
d5f40 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 46 .'PHPUnit_Framework_Constraint_F
d5f60 69 6c 65 45 78 69 73 74 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ileExists'.=>.$vendorDir...'/php
d5f80 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
d5fa0 6f 6e 73 74 72 61 69 6e 74 2f 46 69 6c 65 45 78 69 73 74 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 onstraint/FileExists.php',.'PHPU
d5fc0 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 47 72 65 61 74 65 72 nit_Framework_Constraint_Greater
d5fe0 54 68 61 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f Than'.=>.$vendorDir...'/phpunit/
d6000 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 phpunit/PHPUnit/Framework/Constr
d6020 61 69 6e 74 2f 47 72 65 61 74 65 72 54 68 61 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f aint/GreaterThan.php',.'PHPUnit_
d6040 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 41 6e 79 74 68 69 6e 67 27 Framework_Constraint_IsAnything'
d6060 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
d6080 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f it/PHPUnit/Framework/Constraint/
d60a0 49 73 41 6e 79 74 68 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 IsAnything.php',.'PHPUnit_Framew
d60c0 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 45 6d 70 74 79 27 20 3d 3e 20 24 76 65 6e 64 ork_Constraint_IsEmpty'.=>.$vend
d60e0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d6100 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 45 6d 70 74 79 2e 70 t/Framework/Constraint/IsEmpty.p
d6120 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
d6140 6e 74 5f 49 73 45 71 75 61 6c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 nt_IsEqual'.=>.$vendorDir...'/ph
d6160 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
d6180 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 45 71 75 61 6c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 Constraint/IsEqual.php',.'PHPUni
d61a0 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 46 61 6c 73 65 27 20 t_Framework_Constraint_IsFalse'.
d61c0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 =>.$vendorDir...'/phpunit/phpuni
d61e0 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 t/PHPUnit/Framework/Constraint/I
d6200 73 46 61 6c 73 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f sFalse.php',.'PHPUnit_Framework_
d6220 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 49 64 65 6e 74 69 63 61 6c 27 20 3d 3e 20 24 76 65 6e 64 Constraint_IsIdentical'.=>.$vend
d6240 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d6260 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 49 64 65 6e 74 69 63 t/Framework/Constraint/IsIdentic
d6280 61 6c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 al.php',.'PHPUnit_Framework_Cons
d62a0 74 72 61 69 6e 74 5f 49 73 49 6e 73 74 61 6e 63 65 4f 66 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 traint_IsInstanceOf'.=>.$vendorD
d62c0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 ir...'/phpunit/phpunit/PHPUnit/F
d62e0 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 49 6e 73 74 61 6e 63 65 4f 66 ramework/Constraint/IsInstanceOf
d6300 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
d6320 61 69 6e 74 5f 49 73 4a 73 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 aint_IsJson'.=>.$vendorDir...'/p
d6340 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b hpunit/phpunit/PHPUnit/Framework
d6360 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 4a 73 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 /Constraint/IsJson.php',.'PHPUni
d6380 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 4e 75 6c 6c 27 20 3d t_Framework_Constraint_IsNull'.=
d63a0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d63c0 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 /PHPUnit/Framework/Constraint/Is
d63e0 4e 75 6c 6c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f Null.php',.'PHPUnit_Framework_Co
d6400 6e 73 74 72 61 69 6e 74 5f 49 73 54 72 75 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e nstraint_IsTrue'.=>.$vendorDir..
d6420 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
d6440 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 54 72 75 65 2e 70 68 70 27 2c 0a 27 50 48 work/Constraint/IsTrue.php',.'PH
d6460 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 54 79 70 PUnit_Framework_Constraint_IsTyp
d6480 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 e'.=>.$vendorDir...'/phpunit/php
d64a0 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e unit/PHPUnit/Framework/Constrain
d64c0 74 2f 49 73 54 79 70 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 t/IsType.php',.'PHPUnit_Framewor
d64e0 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4a 73 6f 6e 4d 61 74 63 68 65 73 27 20 3d 3e 20 24 76 65 k_Constraint_JsonMatches'.=>.$ve
d6500 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
d6520 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4a 73 6f 6e 4d 61 74 nit/Framework/Constraint/JsonMat
d6540 63 68 65 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f ches.php',.'PHPUnit_Framework_Co
d6560 6e 73 74 72 61 69 6e 74 5f 4a 73 6f 6e 4d 61 74 63 68 65 73 5f 45 72 72 6f 72 4d 65 73 73 61 67 nstraint_JsonMatches_ErrorMessag
d6580 65 50 72 6f 76 69 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 eProvider'.=>.$vendorDir...'/php
d65a0 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
d65c0 6f 6e 73 74 72 61 69 6e 74 2f 4a 73 6f 6e 4d 61 74 63 68 65 73 2f 45 72 72 6f 72 4d 65 73 73 61 onstraint/JsonMatches/ErrorMessa
d65e0 67 65 50 72 6f 76 69 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 geProvider.php',.'PHPUnit_Framew
d6600 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4c 65 73 73 54 68 61 6e 27 20 3d 3e 20 24 76 65 6e ork_Constraint_LessThan'.=>.$ven
d6620 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
d6640 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 65 73 73 54 68 61 6e it/Framework/Constraint/LessThan
d6660 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
d6680 61 69 6e 74 5f 4e 6f 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 aint_Not'.=>.$vendorDir...'/phpu
d66a0 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f nit/phpunit/PHPUnit/Framework/Co
d66c0 6e 73 74 72 61 69 6e 74 2f 4e 6f 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d nstraint/Not.php',.'PHPUnit_Fram
d66e0 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4f 62 6a 65 63 74 48 61 73 41 74 74 72 69 62 ework_Constraint_ObjectHasAttrib
d6700 75 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ute'.=>.$vendorDir...'/phpunit/p
d6720 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 hpunit/PHPUnit/Framework/Constra
d6740 69 6e 74 2f 4f 62 6a 65 63 74 48 61 73 41 74 74 72 69 62 75 74 65 2e 70 68 70 27 2c 0a 27 50 48 int/ObjectHasAttribute.php',.'PH
d6760 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4f 72 27 20 3d PUnit_Framework_Constraint_Or'.=
d6780 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d67a0 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4f 72 /PHPUnit/Framework/Constraint/Or
d67c0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
d67e0 61 69 6e 74 5f 50 43 52 45 4d 61 74 63 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 aint_PCREMatch'.=>.$vendorDir...
d6800 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
d6820 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 50 43 52 45 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 ork/Constraint/PCREMatch.php',.'
d6840 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 61 6d PHPUnit_Framework_Constraint_Sam
d6860 65 53 69 7a 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 eSize'.=>.$vendorDir...'/phpunit
d6880 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 /phpunit/PHPUnit/Framework/Const
d68a0 72 61 69 6e 74 2f 53 61 6d 65 53 69 7a 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 raint/SameSize.php',.'PHPUnit_Fr
d68c0 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 74 72 69 6e 67 43 6f 6e 74 61 69 6e amework_Constraint_StringContain
d68e0 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 s'.=>.$vendorDir...'/phpunit/php
d6900 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e unit/PHPUnit/Framework/Constrain
d6920 74 2f 53 74 72 69 6e 67 43 6f 6e 74 61 69 6e 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f t/StringContains.php',.'PHPUnit_
d6940 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 74 72 69 6e 67 45 6e 64 73 57 Framework_Constraint_StringEndsW
d6960 69 74 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ith'.=>.$vendorDir...'/phpunit/p
d6980 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 hpunit/PHPUnit/Framework/Constra
d69a0 69 6e 74 2f 53 74 72 69 6e 67 45 6e 64 73 57 69 74 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 int/StringEndsWith.php',.'PHPUni
d69c0 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 74 72 69 6e 67 4d 61 74 t_Framework_Constraint_StringMat
d69e0 63 68 65 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ches'.=>.$vendorDir...'/phpunit/
d6a00 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 phpunit/PHPUnit/Framework/Constr
d6a20 61 69 6e 74 2f 53 74 72 69 6e 67 4d 61 74 63 68 65 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 aint/StringMatches.php',.'PHPUni
d6a40 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 74 72 69 6e 67 53 74 61 t_Framework_Constraint_StringSta
d6a60 72 74 73 57 69 74 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e rtsWith'.=>.$vendorDir...'/phpun
d6a80 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e it/phpunit/PHPUnit/Framework/Con
d6aa0 73 74 72 61 69 6e 74 2f 53 74 72 69 6e 67 53 74 61 72 74 73 57 69 74 68 2e 70 68 70 27 2c 0a 27 straint/StringStartsWith.php',.'
d6ac0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 54 72 61 PHPUnit_Framework_Constraint_Tra
d6ae0 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 versableContains'.=>.$vendorDir.
d6b00 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
d6b20 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 54 72 61 76 65 72 73 61 62 6c 65 43 6f 6e 74 ework/Constraint/TraversableCont
d6b40 61 69 6e 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f ains.php',.'PHPUnit_Framework_Co
d6b60 6e 73 74 72 61 69 6e 74 5f 54 72 61 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 4f 6e 6c 79 nstraint_TraversableContainsOnly
d6b80 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
d6ba0 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 nit/PHPUnit/Framework/Constraint
d6bc0 2f 54 72 61 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 4f 6e 6c 79 2e 70 68 70 27 2c 0a 27 /TraversableContainsOnly.php',.'
d6be0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 58 6f 72 PHPUnit_Framework_Constraint_Xor
d6c00 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
d6c20 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 nit/PHPUnit/Framework/Constraint
d6c40 2f 58 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 72 /Xor.php',.'PHPUnit_Framework_Er
d6c60 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ror'.=>.$vendorDir...'/phpunit/p
d6c80 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 72 72 6f 72 2e 70 hpunit/PHPUnit/Framework/Error.p
d6ca0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 72 72 6f 72 5f 44 65 hp',.'PHPUnit_Framework_Error_De
d6cc0 70 72 65 63 61 74 65 64 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 precated'.=>.$vendorDir...'/phpu
d6ce0 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 72 nit/phpunit/PHPUnit/Framework/Er
d6d00 72 6f 72 2f 44 65 70 72 65 63 61 74 65 64 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 ror/Deprecated.php',.'PHPUnit_Fr
d6d20 61 6d 65 77 6f 72 6b 5f 45 72 72 6f 72 5f 4e 6f 74 69 63 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 amework_Error_Notice'.=>.$vendor
d6d40 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
d6d60 46 72 61 6d 65 77 6f 72 6b 2f 45 72 72 6f 72 2f 4e 6f 74 69 63 65 2e 70 68 70 27 2c 0a 27 50 48 Framework/Error/Notice.php',.'PH
d6d80 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 72 72 6f 72 5f 57 61 72 6e 69 6e 67 27 20 3d PUnit_Framework_Error_Warning'.=
d6da0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d6dc0 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 72 72 6f 72 2f 57 61 72 6e 69 6e 67 /PHPUnit/Framework/Error/Warning
d6de0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 78 63 65 70 74 .php',.'PHPUnit_Framework_Except
d6e00 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ion'.=>.$vendorDir...'/phpunit/p
d6e20 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 78 63 65 70 74 69 hpunit/PHPUnit/Framework/Excepti
d6e40 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 78 70 65 on.php',.'PHPUnit_Framework_Expe
d6e60 63 74 61 74 69 6f 6e 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 ctationFailedException'.=>.$vend
d6e80 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d6ea0 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 78 70 65 63 74 61 74 69 6f 6e 46 61 69 6c 65 64 45 78 63 t/Framework/ExpectationFailedExc
d6ec0 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f eption.php',.'PHPUnit_Framework_
d6ee0 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 IncompleteTest'.=>.$vendorDir...
d6f00 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
d6f20 6f 72 6b 2f 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ork/IncompleteTest.php',.'PHPUni
d6f40 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 45 72 72 6f 72 27 t_Framework_IncompleteTestError'
d6f60 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
d6f80 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 49 6e 63 6f 6d 70 6c 65 74 65 54 it/PHPUnit/Framework/IncompleteT
d6fa0 65 73 74 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 estError.php',.'PHPUnit_Framewor
d6fc0 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 49 64 65 6e 74 69 74 79 27 20 3d k_MockObject_Builder_Identity'.=
d6fe0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d7000 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f -mock-objects/PHPUnit/Framework/
d7020 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 49 64 65 6e 74 69 74 79 2e 70 68 70 27 MockObject/Builder/Identity.php'
d7040 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f ,.'PHPUnit_Framework_MockObject_
d7060 42 75 69 6c 64 65 72 5f 49 6e 76 6f 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 27 20 3d 3e 20 24 76 65 Builder_InvocationMocker'.=>.$ve
d7080 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b ndorDir...'/phpunit/phpunit-mock
d70a0 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f -objects/PHPUnit/Framework/MockO
d70c0 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 49 6e 76 6f 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 2e 70 bject/Builder/InvocationMocker.p
d70e0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 hp',.'PHPUnit_Framework_MockObje
d7100 63 74 5f 42 75 69 6c 64 65 72 5f 4d 61 74 63 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ct_Builder_Match'.=>.$vendorDir.
d7120 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 ..'/phpunit/phpunit-mock-objects
d7140 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 /PHPUnit/Framework/MockObject/Bu
d7160 69 6c 64 65 72 2f 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 ilder/Match.php',.'PHPUnit_Frame
d7180 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 4d 65 74 68 6f 64 4e 61 work_MockObject_Builder_MethodNa
d71a0 6d 65 4d 61 74 63 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e meMatch'.=>.$vendorDir...'/phpun
d71c0 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f it/phpunit-mock-objects/PHPUnit/
d71e0 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 4d 65 74 Framework/MockObject/Builder/Met
d7200 68 6f 64 4e 61 6d 65 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d hodNameMatch.php',.'PHPUnit_Fram
d7220 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 4e 61 6d 65 73 70 61 ework_MockObject_Builder_Namespa
d7240 63 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ce'.=>.$vendorDir...'/phpunit/ph
d7260 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 punit-mock-objects/PHPUnit/Frame
d7280 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 4e 61 6d 65 73 70 61 63 work/MockObject/Builder/Namespac
d72a0 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f e.php',.'PHPUnit_Framework_MockO
d72c0 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 50 61 72 61 6d 65 74 65 72 73 4d 61 74 63 68 27 20 3d bject_Builder_ParametersMatch'.=
d72e0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d7300 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f -mock-objects/PHPUnit/Framework/
d7320 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 50 61 72 61 6d 65 74 65 72 73 4d 61 74 MockObject/Builder/ParametersMat
d7340 63 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b ch.php',.'PHPUnit_Framework_Mock
d7360 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 53 74 75 62 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 Object_Builder_Stub'.=>.$vendorD
d7380 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 ir...'/phpunit/phpunit-mock-obje
d73a0 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 cts/PHPUnit/Framework/MockObject
d73c0 2f 42 75 69 6c 64 65 72 2f 53 74 75 62 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 /Builder/Stub.php',.'PHPUnit_Fra
d73e0 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 47 65 6e 65 72 61 74 6f 72 27 20 3d 3e 20 mework_MockObject_Generator'.=>.
d7400 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d $vendorDir...'/phpunit/phpunit-m
d7420 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f ock-objects/PHPUnit/Framework/Mo
d7440 63 6b 4f 62 6a 65 63 74 2f 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ckObject/Generator.php',.'PHPUni
d7460 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 6f 63 61 74 69 6f t_Framework_MockObject_Invocatio
d7480 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 n'.=>.$vendorDir...'/phpunit/php
d74a0 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 unit-mock-objects/PHPUnit/Framew
d74c0 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 63 61 74 69 6f 6e 2e 70 68 70 27 2c 0a ork/MockObject/Invocation.php',.
d74e0 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 'PHPUnit_Framework_MockObject_In
d7500 76 6f 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 vocationMocker'.=>.$vendorDir...
d7520 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 '/phpunit/phpunit-mock-objects/P
d7540 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f HPUnit/Framework/MockObject/Invo
d7560 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d cationMocker.php',.'PHPUnit_Fram
d7580 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 6f 63 61 74 69 6f 6e 5f 4f 62 6a 65 ework_MockObject_Invocation_Obje
d75a0 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ct'.=>.$vendorDir...'/phpunit/ph
d75c0 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 punit-mock-objects/PHPUnit/Frame
d75e0 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 63 61 74 69 6f 6e 2f 4f 62 6a 65 63 work/MockObject/Invocation/Objec
d7600 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f t.php',.'PHPUnit_Framework_MockO
d7620 62 6a 65 63 74 5f 49 6e 76 6f 63 61 74 69 6f 6e 5f 53 74 61 74 69 63 27 20 3d 3e 20 24 76 65 6e bject_Invocation_Static'.=>.$ven
d7640 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d dorDir...'/phpunit/phpunit-mock-
d7660 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 objects/PHPUnit/Framework/MockOb
d7680 6a 65 63 74 2f 49 6e 76 6f 63 61 74 69 6f 6e 2f 53 74 61 74 69 63 2e 70 68 70 27 2c 0a 27 50 48 ject/Invocation/Static.php',.'PH
d76a0 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 6f 6b PUnit_Framework_MockObject_Invok
d76c0 61 62 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f able'.=>.$vendorDir...'/phpunit/
d76e0 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 phpunit-mock-objects/PHPUnit/Fra
d7700 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 6b 61 62 6c 65 2e 70 68 70 27 mework/MockObject/Invokable.php'
d7720 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f ,.'PHPUnit_Framework_MockObject_
d7740 4d 61 74 63 68 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e Matcher'.=>.$vendorDir...'/phpun
d7760 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f it/phpunit-mock-objects/PHPUnit/
d7780 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2e 70 68 70 Framework/MockObject/Matcher.php
d77a0 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 ',.'PHPUnit_Framework_MockObject
d77c0 5f 4d 61 74 63 68 65 72 5f 41 6e 79 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 27 20 3d 3e 20 24 76 65 _Matcher_AnyInvokedCount'.=>.$ve
d77e0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b ndorDir...'/phpunit/phpunit-mock
d7800 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f -objects/PHPUnit/Framework/MockO
d7820 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 41 6e 79 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 2e 70 68 bject/Matcher/AnyInvokedCount.ph
d7840 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 p',.'PHPUnit_Framework_MockObjec
d7860 74 5f 4d 61 74 63 68 65 72 5f 41 6e 79 50 61 72 61 6d 65 74 65 72 73 27 20 3d 3e 20 24 76 65 6e t_Matcher_AnyParameters'.=>.$ven
d7880 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d dorDir...'/phpunit/phpunit-mock-
d78a0 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 objects/PHPUnit/Framework/MockOb
d78c0 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 41 6e 79 50 61 72 61 6d 65 74 65 72 73 2e 70 68 70 27 2c ject/Matcher/AnyParameters.php',
d78e0 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d .'PHPUnit_Framework_MockObject_M
d7900 61 74 63 68 65 72 5f 49 6e 76 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 atcher_Invocation'.=>.$vendorDir
d7920 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 ...'/phpunit/phpunit-mock-object
d7940 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d s/PHPUnit/Framework/MockObject/M
d7960 61 74 63 68 65 72 2f 49 6e 76 6f 63 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 atcher/Invocation.php',.'PHPUnit
d7980 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 49 6e _Framework_MockObject_Matcher_In
d79a0 76 6f 6b 65 64 41 74 49 6e 64 65 78 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f vokedAtIndex'.=>.$vendorDir...'/
d79c0 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 phpunit/phpunit-mock-objects/PHP
d79e0 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 Unit/Framework/MockObject/Matche
d7a00 72 2f 49 6e 76 6f 6b 65 64 41 74 49 6e 64 65 78 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f r/InvokedAtIndex.php',.'PHPUnit_
d7a20 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 49 6e 76 Framework_MockObject_Matcher_Inv
d7a40 6f 6b 65 64 41 74 4c 65 61 73 74 4f 6e 63 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e okedAtLeastOnce'.=>.$vendorDir..
d7a60 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f .'/phpunit/phpunit-mock-objects/
d7a80 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 PHPUnit/Framework/MockObject/Mat
d7aa0 63 68 65 72 2f 49 6e 76 6f 6b 65 64 41 74 4c 65 61 73 74 4f 6e 63 65 2e 70 68 70 27 2c 0a 27 50 cher/InvokedAtLeastOnce.php',.'P
d7ac0 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 HPUnit_Framework_MockObject_Matc
d7ae0 68 65 72 5f 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 her_InvokedCount'.=>.$vendorDir.
d7b00 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 ..'/phpunit/phpunit-mock-objects
d7b20 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 /PHPUnit/Framework/MockObject/Ma
d7b40 74 63 68 65 72 2f 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 tcher/InvokedCount.php',.'PHPUni
d7b60 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 49 t_Framework_MockObject_Matcher_I
d7b80 6e 76 6f 6b 65 64 52 65 63 6f 72 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 nvokedRecorder'.=>.$vendorDir...
d7ba0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 '/phpunit/phpunit-mock-objects/P
d7bc0 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 HPUnit/Framework/MockObject/Matc
d7be0 68 65 72 2f 49 6e 76 6f 6b 65 64 52 65 63 6f 72 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e her/InvokedRecorder.php',.'PHPUn
d7c00 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f it_Framework_MockObject_Matcher_
d7c20 4d 65 74 68 6f 64 4e 61 6d 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 MethodName'.=>.$vendorDir...'/ph
d7c40 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e punit/phpunit-mock-objects/PHPUn
d7c60 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f it/Framework/MockObject/Matcher/
d7c80 4d 65 74 68 6f 64 4e 61 6d 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 MethodName.php',.'PHPUnit_Framew
d7ca0 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 50 61 72 61 6d 65 74 65 72 ork_MockObject_Matcher_Parameter
d7cc0 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 s'.=>.$vendorDir...'/phpunit/php
d7ce0 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 unit-mock-objects/PHPUnit/Framew
d7d00 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 50 61 72 61 6d 65 74 65 72 ork/MockObject/Matcher/Parameter
d7d20 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f s.php',.'PHPUnit_Framework_MockO
d7d40 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 53 74 61 74 65 6c 65 73 73 49 6e 76 6f 63 61 74 69 6f bject_Matcher_StatelessInvocatio
d7d60 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 n'.=>.$vendorDir...'/phpunit/php
d7d80 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 unit-mock-objects/PHPUnit/Framew
d7da0 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 53 74 61 74 65 6c 65 73 73 ork/MockObject/Matcher/Stateless
d7dc0 49 6e 76 6f 63 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 Invocation.php',.'PHPUnit_Framew
d7de0 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 6f 63 6b 42 75 69 6c 64 65 72 27 20 3d 3e 20 24 ork_MockObject_MockBuilder'.=>.$
d7e00 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f vendorDir...'/phpunit/phpunit-mo
d7e20 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 ck-objects/PHPUnit/Framework/Moc
d7e40 6b 4f 62 6a 65 63 74 2f 4d 6f 63 6b 42 75 69 6c 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e kObject/MockBuilder.php',.'PHPUn
d7e60 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 6f 63 6b 4f 62 6a 65 it_Framework_MockObject_MockObje
d7e80 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ct'.=>.$vendorDir...'/phpunit/ph
d7ea0 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 punit-mock-objects/PHPUnit/Frame
d7ec0 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2e 70 68 70 27 2c work/MockObject/MockObject.php',
d7ee0 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 .'PHPUnit_Framework_MockObject_S
d7f00 74 75 62 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 tub'.=>.$vendorDir...'/phpunit/p
d7f20 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d hpunit-mock-objects/PHPUnit/Fram
d7f40 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2e 70 68 70 27 2c 0a 27 50 48 50 ework/MockObject/Stub.php',.'PHP
d7f60 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 43 Unit_Framework_MockObject_Stub_C
d7f80 6f 6e 73 65 63 75 74 69 76 65 43 61 6c 6c 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e onsecutiveCalls'.=>.$vendorDir..
d7fa0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f .'/phpunit/phpunit-mock-objects/
d7fc0 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 PHPUnit/Framework/MockObject/Stu
d7fe0 62 2f 43 6f 6e 73 65 63 75 74 69 76 65 43 61 6c 6c 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 b/ConsecutiveCalls.php',.'PHPUni
d8000 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 45 78 63 65 t_Framework_MockObject_Stub_Exce
d8020 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 ption'.=>.$vendorDir...'/phpunit
d8040 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 /phpunit-mock-objects/PHPUnit/Fr
d8060 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 45 78 63 65 70 74 69 6f amework/MockObject/Stub/Exceptio
d8080 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f n.php',.'PHPUnit_Framework_MockO
d80a0 62 6a 65 63 74 5f 53 74 75 62 5f 4d 61 74 63 68 65 72 43 6f 6c 6c 65 63 74 69 6f 6e 27 20 3d 3e bject_Stub_MatcherCollection'.=>
d80c0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d .$vendorDir...'/phpunit/phpunit-
d80e0 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d mock-objects/PHPUnit/Framework/M
d8100 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 4d 61 74 63 68 65 72 43 6f 6c 6c 65 63 74 69 6f 6e ockObject/Stub/MatcherCollection
d8120 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 .php',.'PHPUnit_Framework_MockOb
d8140 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ject_Stub_Return'.=>.$vendorDir.
d8160 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 ..'/phpunit/phpunit-mock-objects
d8180 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 /PHPUnit/Framework/MockObject/St
d81a0 75 62 2f 52 65 74 75 72 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f ub/Return.php',.'PHPUnit_Framewo
d81c0 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 41 72 67 75 6d 65 6e rk_MockObject_Stub_ReturnArgumen
d81e0 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 t'.=>.$vendorDir...'/phpunit/php
d8200 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 unit-mock-objects/PHPUnit/Framew
d8220 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 41 72 67 75 6d 65 ork/MockObject/Stub/ReturnArgume
d8240 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b nt.php',.'PHPUnit_Framework_Mock
d8260 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 43 61 6c 6c 62 61 63 6b 27 20 3d 3e 20 24 Object_Stub_ReturnCallback'.=>.$
d8280 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f vendorDir...'/phpunit/phpunit-mo
d82a0 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 ck-objects/PHPUnit/Framework/Moc
d82c0 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 43 61 6c 6c 62 61 63 6b 2e 70 68 70 27 kObject/Stub/ReturnCallback.php'
d82e0 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f ,.'PHPUnit_Framework_MockObject_
d8300 53 74 75 62 5f 52 65 74 75 72 6e 53 65 6c 66 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e Stub_ReturnSelf'.=>.$vendorDir..
d8320 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f .'/phpunit/phpunit-mock-objects/
d8340 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 PHPUnit/Framework/MockObject/Stu
d8360 62 2f 52 65 74 75 72 6e 53 65 6c 66 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d b/ReturnSelf.php',.'PHPUnit_Fram
d8380 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 56 61 6c 75 ework_MockObject_Stub_ReturnValu
d83a0 65 4d 61 70 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f eMap'.=>.$vendorDir...'/phpunit/
d83c0 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 phpunit-mock-objects/PHPUnit/Fra
d83e0 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 56 61 6c mework/MockObject/Stub/ReturnVal
d8400 75 65 4d 61 70 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d ueMap.php',.'PHPUnit_Framework_M
d8420 6f 63 6b 4f 62 6a 65 63 74 5f 56 65 72 69 66 69 61 62 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ockObject_Verifiable'.=>.$vendor
d8440 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a Dir...'/phpunit/phpunit-mock-obj
d8460 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 ects/PHPUnit/Framework/MockObjec
d8480 74 2f 56 65 72 69 66 69 61 62 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d t/Verifiable.php',.'PHPUnit_Fram
d84a0 65 77 6f 72 6b 5f 4f 75 74 70 75 74 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 ework_OutputError'.=>.$vendorDir
d84c0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 ...'/phpunit/phpunit/PHPUnit/Fra
d84e0 6d 65 77 6f 72 6b 2f 4f 75 74 70 75 74 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 mework/OutputError.php',.'PHPUni
d8500 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 65 6c 66 44 65 73 63 72 69 62 69 6e 67 27 20 3d 3e 20 24 t_Framework_SelfDescribing'.=>.$
d8520 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
d8540 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 65 6c 66 44 65 73 63 72 69 62 69 6e 67 2e 70 PUnit/Framework/SelfDescribing.p
d8560 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 6b 69 70 70 65 64 54 hp',.'PHPUnit_Framework_SkippedT
d8580 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 est'.=>.$vendorDir...'/phpunit/p
d85a0 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 6b 69 70 70 65 64 hpunit/PHPUnit/Framework/Skipped
d85c0 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 6b Test.php',.'PHPUnit_Framework_Sk
d85e0 69 70 70 65 64 54 65 73 74 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ippedTestError'.=>.$vendorDir...
d8600 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
d8620 6f 72 6b 2f 53 6b 69 70 70 65 64 54 65 73 74 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 ork/SkippedTestError.php',.'PHPU
d8640 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 6b 69 70 70 65 64 54 65 73 74 53 75 69 74 65 45 72 nit_Framework_SkippedTestSuiteEr
d8660 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ror'.=>.$vendorDir...'/phpunit/p
d8680 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 6b 69 70 70 65 64 hpunit/PHPUnit/Framework/Skipped
d86a0 54 65 73 74 53 75 69 74 65 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 TestSuiteError.php',.'PHPUnit_Fr
d86c0 61 6d 65 77 6f 72 6b 5f 53 79 6e 74 68 65 74 69 63 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 amework_SyntheticError'.=>.$vend
d86e0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d8700 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 79 6e 74 68 65 74 69 63 45 72 72 6f 72 2e 70 68 70 27 2c t/Framework/SyntheticError.php',
d8720 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 27 20 3d 3e 20 24 76 65 .'PHPUnit_Framework_Test'.=>.$ve
d8740 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
d8760 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 nit/Framework/Test.php',.'PHPUni
d8780 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 43 61 73 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 t_Framework_TestCase'.=>.$vendor
d87a0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
d87c0 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 Framework/TestCase.php',.'PHPUni
d87e0 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 46 61 69 6c 75 72 65 27 20 3d 3e 20 24 76 65 6e t_Framework_TestFailure'.=>.$ven
d8800 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
d8820 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 46 61 69 6c 75 72 65 2e 70 68 70 27 2c 0a 27 it/Framework/TestFailure.php',.'
d8840 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 4c 69 73 74 65 6e 65 72 27 20 PHPUnit_Framework_TestListener'.
d8860 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 =>.$vendorDir...'/phpunit/phpuni
d8880 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 4c 69 73 74 65 6e 65 72 t/PHPUnit/Framework/TestListener
d88a0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 52 65 .php',.'PHPUnit_Framework_TestRe
d88c0 73 75 6c 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f sult'.=>.$vendorDir...'/phpunit/
d88e0 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 52 65 phpunit/PHPUnit/Framework/TestRe
d8900 73 75 6c 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 sult.php',.'PHPUnit_Framework_Te
d8920 73 74 53 75 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e stSuite'.=>.$vendorDir...'/phpun
d8940 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 it/phpunit/PHPUnit/Framework/Tes
d8960 74 53 75 69 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f tSuite.php',.'PHPUnit_Framework_
d8980 54 65 73 74 53 75 69 74 65 5f 44 61 74 61 50 72 6f 76 69 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 TestSuite_DataProvider'.=>.$vend
d89a0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
d89c0 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 53 75 69 74 65 2f 44 61 74 61 50 72 6f 76 69 64 t/Framework/TestSuite/DataProvid
d89e0 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 57 61 72 6e er.php',.'PHPUnit_Framework_Warn
d8a00 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ing'.=>.$vendorDir...'/phpunit/p
d8a20 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 57 61 72 6e 69 6e 67 hpunit/PHPUnit/Framework/Warning
d8a40 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e 65 72 5f 42 61 73 65 54 65 73 74 52 .php',.'PHPUnit_Runner_BaseTestR
d8a60 75 6e 6e 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 unner'.=>.$vendorDir...'/phpunit
d8a80 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e 65 72 2f 42 61 73 65 54 65 73 74 /phpunit/PHPUnit/Runner/BaseTest
d8aa0 52 75 6e 6e 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e 65 72 5f 53 74 61 Runner.php',.'PHPUnit_Runner_Sta
d8ac0 6e 64 61 72 64 54 65 73 74 53 75 69 74 65 4c 6f 61 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ndardTestSuiteLoader'.=>.$vendor
d8ae0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
d8b00 52 75 6e 6e 65 72 2f 53 74 61 6e 64 61 72 64 54 65 73 74 53 75 69 74 65 4c 6f 61 64 65 72 2e 70 Runner/StandardTestSuiteLoader.p
d8b20 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e 65 72 5f 54 65 73 74 53 75 69 74 65 4c 6f hp',.'PHPUnit_Runner_TestSuiteLo
d8b40 61 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ader'.=>.$vendorDir...'/phpunit/
d8b60 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e 65 72 2f 54 65 73 74 53 75 69 74 65 phpunit/PHPUnit/Runner/TestSuite
d8b80 4c 6f 61 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e 65 72 5f 56 65 72 Loader.php',.'PHPUnit_Runner_Ver
d8ba0 73 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f sion'.=>.$vendorDir...'/phpunit/
d8bc0 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e 65 72 2f 56 65 72 73 69 6f 6e 2e 70 phpunit/PHPUnit/Runner/Version.p
d8be0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 54 65 78 74 55 49 5f 43 6f 6d 6d 61 6e 64 27 20 3d 3e hp',.'PHPUnit_TextUI_Command'.=>
d8c00 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
d8c20 50 48 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 27 2c 0a 27 50 48 PHPUnit/TextUI/Command.php',.'PH
d8c40 50 55 6e 69 74 5f 54 65 78 74 55 49 5f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 27 20 3d 3e 20 24 PUnit_TextUI_ResultPrinter'.=>.$
d8c60 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
d8c80 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 2e 70 68 70 27 2c PUnit/TextUI/ResultPrinter.php',
d8ca0 0a 27 50 48 50 55 6e 69 74 5f 54 65 78 74 55 49 5f 54 65 73 74 52 75 6e 6e 65 72 27 20 3d 3e 20 .'PHPUnit_TextUI_TestRunner'.=>.
d8cc0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
d8ce0 48 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 54 65 73 74 52 75 6e 6e 65 72 2e 70 68 70 27 2c 0a 27 HPUnit/TextUI/TestRunner.php',.'
d8d00 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 43 6c 61 73 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 PHPUnit_Util_Class'.=>.$vendorDi
d8d20 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 r...'/phpunit/phpunit/PHPUnit/Ut
d8d40 69 6c 2f 43 6c 61 73 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 43 6f 6e il/Class.php',.'PHPUnit_Util_Con
d8d60 66 69 67 75 72 61 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 figuration'.=>.$vendorDir...'/ph
d8d80 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 43 6f 6e 66 69 punit/phpunit/PHPUnit/Util/Confi
d8da0 67 75 72 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 44 65 70 guration.php',.'PHPUnit_Util_Dep
d8dc0 72 65 63 61 74 65 64 46 65 61 74 75 72 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 recatedFeature'.=>.$vendorDir...
d8de0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 44 '/phpunit/phpunit/PHPUnit/Util/D
d8e00 65 70 72 65 63 61 74 65 64 46 65 61 74 75 72 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f eprecatedFeature.php',.'PHPUnit_
d8e20 55 74 69 6c 5f 44 65 70 72 65 63 61 74 65 64 46 65 61 74 75 72 65 5f 4c 6f 67 67 65 72 27 20 3d Util_DeprecatedFeature_Logger'.=
d8e40 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
d8e60 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 44 65 70 72 65 63 61 74 65 64 46 65 61 74 75 72 65 2f /PHPUnit/Util/DeprecatedFeature/
d8e80 4c 6f 67 67 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 44 69 66 66 27 Logger.php',.'PHPUnit_Util_Diff'
d8ea0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
d8ec0 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 44 69 66 66 2e 70 68 70 27 2c 0a 27 50 48 50 55 it/PHPUnit/Util/Diff.php',.'PHPU
d8ee0 6e 69 74 5f 55 74 69 6c 5f 45 72 72 6f 72 48 61 6e 64 6c 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f nit_Util_ErrorHandler'.=>.$vendo
d8f00 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 rDir...'/phpunit/phpunit/PHPUnit
d8f20 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 /Util/ErrorHandler.php',.'PHPUni
d8f40 74 5f 55 74 69 6c 5f 46 69 6c 65 6c 6f 61 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 t_Util_Fileloader'.=>.$vendorDir
d8f60 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 ...'/phpunit/phpunit/PHPUnit/Uti
d8f80 6c 2f 46 69 6c 65 6c 6f 61 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c l/Fileloader.php',.'PHPUnit_Util
d8fa0 5f 46 69 6c 65 73 79 73 74 65 6d 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 _Filesystem'.=>.$vendorDir...'/p
d8fc0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 46 69 6c 65 hpunit/phpunit/PHPUnit/Util/File
d8fe0 73 79 73 74 65 6d 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 46 69 6c 74 65 system.php',.'PHPUnit_Util_Filte
d9000 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 r'.=>.$vendorDir...'/phpunit/php
d9020 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 46 69 6c 74 65 72 2e 70 68 70 27 2c 0a 27 unit/PHPUnit/Util/Filter.php',.'
d9040 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 47 65 74 6f 70 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 PHPUnit_Util_Getopt'.=>.$vendorD
d9060 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 ir...'/phpunit/phpunit/PHPUnit/U
d9080 74 69 6c 2f 47 65 74 6f 70 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 47 til/Getopt.php',.'PHPUnit_Util_G
d90a0 6c 6f 62 61 6c 53 74 61 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 lobalState'.=>.$vendorDir...'/ph
d90c0 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 47 6c 6f 62 61 punit/phpunit/PHPUnit/Util/Globa
d90e0 6c 53 74 61 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 49 6e 76 61 6c lState.php',.'PHPUnit_Util_Inval
d9100 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 idArgumentHelper'.=>.$vendorDir.
d9120 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c ..'/phpunit/phpunit/PHPUnit/Util
d9140 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 65 72 2e 70 68 70 27 2c 0a 27 50 48 /InvalidArgumentHelper.php',.'PH
d9160 50 55 6e 69 74 5f 55 74 69 6c 5f 4c 6f 67 5f 4a 53 4f 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 PUnit_Util_Log_JSON'.=>.$vendorD
d9180 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 ir...'/phpunit/phpunit/PHPUnit/U
d91a0 74 69 6c 2f 4c 6f 67 2f 4a 53 4f 4e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c til/Log/JSON.php',.'PHPUnit_Util
d91c0 5f 4c 6f 67 5f 4a 55 6e 69 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 _Log_JUnit'.=>.$vendorDir...'/ph
d91e0 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 4c 6f 67 2f 4a punit/phpunit/PHPUnit/Util/Log/J
d9200 55 6e 69 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 4c 6f 67 5f 54 41 50 Unit.php',.'PHPUnit_Util_Log_TAP
d9220 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
d9240 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 4c 6f 67 2f 54 41 50 2e 70 68 70 27 2c 0a 27 nit/PHPUnit/Util/Log/TAP.php',.'
d9260 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 48 50 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 PHPUnit_Util_PHP'.=>.$vendorDir.
d9280 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c ..'/phpunit/phpunit/PHPUnit/Util
d92a0 2f 50 48 50 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 48 50 5f 44 65 66 /PHP.php',.'PHPUnit_Util_PHP_Def
d92c0 61 75 6c 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ault'.=>.$vendorDir...'/phpunit/
d92e0 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 50 48 50 2f 44 65 66 61 75 6c 74 phpunit/PHPUnit/Util/PHP/Default
d9300 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 48 50 5f 57 69 6e 64 6f 77 73 .php',.'PHPUnit_Util_PHP_Windows
d9320 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
d9340 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 50 48 50 2f 57 69 6e 64 6f 77 73 2e 70 68 70 nit/PHPUnit/Util/PHP/Windows.php
d9360 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 72 69 6e 74 65 72 27 20 3d 3e 20 24 76 65 ',.'PHPUnit_Util_Printer'.=>.$ve
d9380 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
d93a0 6e 69 74 2f 55 74 69 6c 2f 50 72 69 6e 74 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f nit/Util/Printer.php',.'PHPUnit_
d93c0 55 74 69 6c 5f 53 74 72 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 Util_String'.=>.$vendorDir...'/p
d93e0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 53 74 72 69 hpunit/phpunit/PHPUnit/Util/Stri
d9400 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 27 20 3d 3e 20 ng.php',.'PHPUnit_Util_Test'.=>.
d9420 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
d9440 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f HPUnit/Util/Test.php',.'PHPUnit_
d9460 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 4e 61 6d 65 50 72 65 74 74 69 66 69 65 72 27 20 3d 3e 20 Util_TestDox_NamePrettifier'.=>.
d9480 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
d94a0 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f 4e 61 6d 65 50 72 65 74 74 69 66 69 HPUnit/Util/TestDox/NamePrettifi
d94c0 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 52 er.php',.'PHPUnit_Util_TestDox_R
d94e0 65 73 75 6c 74 50 72 69 6e 74 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f esultPrinter'.=>.$vendorDir...'/
d9500 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 phpunit/phpunit/PHPUnit/Util/Tes
d9520 74 44 6f 78 2f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 tDox/ResultPrinter.php',.'PHPUni
d9540 74 5f 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 5f 48 54 4d t_Util_TestDox_ResultPrinter_HTM
d9560 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 L'.=>.$vendorDir...'/phpunit/php
d9580 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f 52 65 73 75 6c 74 unit/PHPUnit/Util/TestDox/Result
d95a0 50 72 69 6e 74 65 72 2f 48 54 4d 4c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c Printer/HTML.php',.'PHPUnit_Util
d95c0 5f 54 65 73 74 44 6f 78 5f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 5f 54 65 78 74 27 20 3d 3e 20 _TestDox_ResultPrinter_Text'.=>.
d95e0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
d9600 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f 52 65 73 75 6c 74 50 72 69 6e 74 65 HPUnit/Util/TestDox/ResultPrinte
d9620 72 2f 54 65 78 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 53 r/Text.php',.'PHPUnit_Util_TestS
d9640 75 69 74 65 49 74 65 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f uiteIterator'.=>.$vendorDir...'/
d9660 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 phpunit/phpunit/PHPUnit/Util/Tes
d9680 74 53 75 69 74 65 49 74 65 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 tSuiteIterator.php',.'PHPUnit_Ut
d96a0 69 6c 5f 54 79 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e il_Type'.=>.$vendorDir...'/phpun
d96c0 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 79 70 65 2e 70 68 70 it/phpunit/PHPUnit/Util/Type.php
d96e0 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 58 4d 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ',.'PHPUnit_Util_XML'.=>.$vendor
d9700 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
d9720 55 74 69 6c 2f 58 4d 4c 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 Util/XML.php',.'PHP_CodeCoverage
d9740 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
d9760 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2e 70 code-coverage/PHP/CodeCoverage.p
d9780 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 44 72 69 76 65 72 27 20 3d hp',.'PHP_CodeCoverage_Driver'.=
d97a0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 >.$vendorDir...'/phpunit/php-cod
d97c0 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 44 72 69 76 e-coverage/PHP/CodeCoverage/Driv
d97e0 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 44 72 69 76 65 er.php',.'PHP_CodeCoverage_Drive
d9800 72 5f 58 64 65 62 75 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 r_Xdebug'.=>.$vendorDir...'/phpu
d9820 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f nit/php-code-coverage/PHP/CodeCo
d9840 76 65 72 61 67 65 2f 44 72 69 76 65 72 2f 58 64 65 62 75 67 2e 70 68 70 27 2c 0a 27 50 48 50 5f verage/Driver/Xdebug.php',.'PHP_
d9860 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 CodeCoverage_Exception'.=>.$vend
d9880 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 orDir...'/phpunit/php-code-cover
d98a0 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 45 78 63 65 70 74 69 6f 6e 2e 70 age/PHP/CodeCoverage/Exception.p
d98c0 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 46 69 6c 74 65 72 27 20 3d hp',.'PHP_CodeCoverage_Filter'.=
d98e0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 >.$vendorDir...'/phpunit/php-cod
d9900 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 46 69 6c 74 e-coverage/PHP/CodeCoverage/Filt
d9920 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 er.php',.'PHP_CodeCoverage_Repor
d9940 74 5f 43 6c 6f 76 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 t_Clover'.=>.$vendorDir...'/phpu
d9960 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f nit/php-code-coverage/PHP/CodeCo
d9980 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 43 6c 6f 76 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f verage/Report/Clover.php',.'PHP_
d99a0 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 46 61 63 74 6f 72 79 27 20 3d 3e 20 CodeCoverage_Report_Factory'.=>.
d99c0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d $vendorDir...'/phpunit/php-code-
d99e0 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 coverage/PHP/CodeCoverage/Report
d9a00 2f 46 61 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 /Factory.php',.'PHP_CodeCoverage
d9a20 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _Report_HTML'.=>.$vendorDir...'/
d9a40 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f phpunit/php-code-coverage/PHP/Co
d9a60 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2e 70 68 70 27 2c 0a 27 50 48 deCoverage/Report/HTML.php',.'PH
d9a80 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 P_CodeCoverage_Report_HTML_Rende
d9aa0 72 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 rer'.=>.$vendorDir...'/phpunit/p
d9ac0 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 hp-code-coverage/PHP/CodeCoverag
d9ae0 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 65 72 2e 70 68 70 27 2c 0a 27 50 48 e/Report/HTML/Renderer.php',.'PH
d9b00 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 P_CodeCoverage_Report_HTML_Rende
d9b20 72 65 72 5f 44 61 73 68 62 6f 61 72 64 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 rer_Dashboard'.=>.$vendorDir...'
d9b40 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 /phpunit/php-code-coverage/PHP/C
d9b60 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 65 72 odeCoverage/Report/HTML/Renderer
d9b80 2f 44 61 73 68 62 6f 61 72 64 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 /Dashboard.php',.'PHP_CodeCovera
d9ba0 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 72 65 72 5f 44 69 72 65 63 74 6f 72 ge_Report_HTML_Renderer_Director
d9bc0 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 y'.=>.$vendorDir...'/phpunit/php
d9be0 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f -code-coverage/PHP/CodeCoverage/
d9c00 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 65 72 2f 44 69 72 65 63 74 6f 72 79 2e 70 Report/HTML/Renderer/Directory.p
d9c20 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 48 54 hp',.'PHP_CodeCoverage_Report_HT
d9c40 4d 4c 5f 52 65 6e 64 65 72 65 72 5f 46 69 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ML_Renderer_File'.=>.$vendorDir.
d9c60 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 ..'/phpunit/php-code-coverage/PH
d9c80 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 P/CodeCoverage/Report/HTML/Rende
d9ca0 72 65 72 2f 46 69 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 rer/File.php',.'PHP_CodeCoverage
d9cc0 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _Report_Node'.=>.$vendorDir...'/
d9ce0 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f phpunit/php-code-coverage/PHP/Co
d9d00 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 4e 6f 64 65 2e 70 68 70 27 2c 0a 27 50 48 deCoverage/Report/Node.php',.'PH
d9d20 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 5f 44 69 72 65 63 P_CodeCoverage_Report_Node_Direc
d9d40 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f tory'.=>.$vendorDir...'/phpunit/
d9d60 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 php-code-coverage/PHP/CodeCovera
d9d80 67 65 2f 52 65 70 6f 72 74 2f 4e 6f 64 65 2f 44 69 72 65 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 ge/Report/Node/Directory.php',.'
d9da0 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 5f 46 69 6c PHP_CodeCoverage_Report_Node_Fil
d9dc0 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 e'.=>.$vendorDir...'/phpunit/php
d9de0 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f -code-coverage/PHP/CodeCoverage/
d9e00 52 65 70 6f 72 74 2f 4e 6f 64 65 2f 46 69 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 Report/Node/File.php',.'PHP_Code
d9e20 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 5f 49 74 65 72 61 74 6f 72 27 20 3d Coverage_Report_Node_Iterator'.=
d9e40 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 >.$vendorDir...'/phpunit/php-cod
d9e60 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f e-coverage/PHP/CodeCoverage/Repo
d9e80 72 74 2f 4e 6f 64 65 2f 49 74 65 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 rt/Node/Iterator.php',.'PHP_Code
d9ea0 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 50 48 50 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 Coverage_Report_PHP'.=>.$vendorD
d9ec0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 ir...'/phpunit/php-code-coverage
d9ee0 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 50 48 50 2e 70 68 70 /PHP/CodeCoverage/Report/PHP.php
d9f00 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 54 65 78 74 ',.'PHP_CodeCoverage_Report_Text
d9f20 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
d9f40 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 code-coverage/PHP/CodeCoverage/R
d9f60 65 70 6f 72 74 2f 54 65 78 74 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 eport/Text.php',.'PHP_CodeCovera
d9f80 67 65 5f 55 74 69 6c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e ge_Util'.=>.$vendorDir...'/phpun
d9fa0 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 it/php-code-coverage/PHP/CodeCov
d9fc0 65 72 61 67 65 2f 55 74 69 6c 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 erage/Util.php',.'PHP_CodeCovera
d9fe0 67 65 5f 55 74 69 6c 5f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 65 72 27 20 3d ge_Util_InvalidArgumentHelper'.=
da000 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 >.$vendorDir...'/phpunit/php-cod
da020 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 55 74 69 6c e-coverage/PHP/CodeCoverage/Util
da040 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 65 72 2e 70 68 70 27 2c 0a 27 50 48 /InvalidArgumentHelper.php',.'PH
da060 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 56 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 P_CodeCoverage_Version'.=>.$vend
da080 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 orDir...'/phpunit/php-code-cover
da0a0 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 56 65 72 73 69 6f 6e 2e 70 68 70 age/PHP/CodeCoverage/Version.php
da0c0 27 2c 0a 27 50 48 50 5f 54 69 6d 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 ',.'PHP_Timer'.=>.$vendorDir...'
da0e0 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 69 6d 65 72 2f 50 48 50 2f 54 69 6d 65 72 2e 70 68 70 /phpunit/php-timer/PHP/Timer.php
da100 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 ',.'PHP_Token'.=>.$vendorDir...'
da120 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
da140 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 57 69 74 68 53 63 6f 70 65 27 20 3d ken.php',.'PHP_TokenWithScope'.=
da160 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
da180 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
da1a0 6f 6b 65 6e 57 69 74 68 53 63 6f 70 65 41 6e 64 56 69 73 69 62 69 6c 69 74 79 27 20 3d 3e 20 24 okenWithScopeAndVisibility'.=>.$
da1c0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
da1e0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
da200 6e 5f 41 42 53 54 52 41 43 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 n_ABSTRACT'.=>.$vendorDir...'/ph
da220 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
da240 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 4d 50 45 52 53 41 4e 44 27 20 3d 3e 20 .php',.'PHP_Token_AMPERSAND'.=>.
da260 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
da280 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
da2a0 65 6e 5f 41 4e 44 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f en_AND_EQUAL'.=>.$vendorDir...'/
da2c0 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
da2e0 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 52 52 41 59 27 20 3d 3e 20 24 76 en.php',.'PHP_Token_ARRAY'.=>.$v
da300 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
da320 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
da340 5f 41 52 52 41 59 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 _ARRAY_CAST'.=>.$vendorDir...'/p
da360 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
da380 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 53 27 20 3d 3e 20 24 76 65 6e 64 6f n.php',.'PHP_Token_AS'.=>.$vendo
da3a0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
da3c0 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 54 27 m/PHP/Token.php',.'PHP_Token_AT'
da3e0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
da400 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
da420 5f 54 6f 6b 65 6e 5f 42 41 43 4b 54 49 43 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e _Token_BACKTICK'.=>.$vendorDir..
da440 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
da460 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 41 44 5f 43 48 41 52 41 Token.php',.'PHP_Token_BAD_CHARA
da480 43 54 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f CTER'.=>.$vendorDir...'/phpunit/
da4a0 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
da4c0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 4f 4f 4c 45 41 4e 5f 41 4e 44 27 20 3d 3e 20 24 76 65 6e .'PHP_Token_BOOLEAN_AND'.=>.$ven
da4e0 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
da500 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 eam/PHP/Token.php',.'PHP_Token_B
da520 4f 4f 4c 45 41 4e 5f 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 OOLEAN_OR'.=>.$vendorDir...'/php
da540 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
da560 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 4f 4f 4c 5f 43 41 53 54 27 20 3d 3e 20 24 php',.'PHP_Token_BOOL_CAST'.=>.$
da580 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
da5a0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
da5c0 6e 5f 42 52 45 41 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e n_BREAK'.=>.$vendorDir...'/phpun
da5e0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
da600 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 4c 4c 41 42 4c 45 27 20 3d 3e 20 24 76 65 6e p',.'PHP_Token_CALLABLE'.=>.$ven
da620 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
da640 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 eam/PHP/Token.php',.'PHP_Token_C
da660 41 52 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ARET'.=>.$vendorDir...'/phpunit/
da680 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
da6a0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 53 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 .'PHP_Token_CASE'.=>.$vendorDir.
da6c0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
da6e0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 54 43 48 27 20 3d /Token.php',.'PHP_Token_CATCH'.=
da700 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
da720 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
da740 6f 6b 65 6e 5f 43 48 41 52 41 43 54 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 oken_CHARACTER'.=>.$vendorDir...
da760 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
da780 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 41 53 53 27 20 3d 3e 20 oken.php',.'PHP_Token_CLASS'.=>.
da7a0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
da7c0 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
da7e0 65 6e 5f 43 4c 41 53 53 5f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 en_CLASS_C'.=>.$vendorDir...'/ph
da800 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
da820 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 41 53 53 5f 4e 41 4d 45 5f 43 4f 4e .php',.'PHP_Token_CLASS_NAME_CON
da840 53 54 41 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 STANT'.=>.$vendorDir...'/phpunit
da860 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
da880 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 4e 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 ,.'PHP_Token_CLONE'.=>.$vendorDi
da8a0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
da8c0 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 53 45 5f HP/Token.php',.'PHP_Token_CLOSE_
da8e0 42 52 41 43 4b 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e BRACKET'.=>.$vendorDir...'/phpun
da900 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
da920 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 53 45 5f 43 55 52 4c 59 27 20 3d 3e 20 24 p',.'PHP_Token_CLOSE_CURLY'.=>.$
da940 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
da960 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
da980 6e 5f 43 4c 4f 53 45 5f 53 51 55 41 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 n_CLOSE_SQUARE'.=>.$vendorDir...
da9a0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
da9c0 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 53 45 5f 54 41 47 27 oken.php',.'PHP_Token_CLOSE_TAG'
da9e0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
daa00 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
daa20 5f 54 6f 6b 65 6e 5f 43 4f 4c 4f 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _Token_COLON'.=>.$vendorDir...'/
daa40 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
daa60 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4d 4d 41 27 20 3d 3e 20 24 76 en.php',.'PHP_Token_COMMA'.=>.$v
daa80 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
daaa0 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
daac0 5f 43 4f 4d 4d 45 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 _COMMENT'.=>.$vendorDir...'/phpu
daae0 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
dab00 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e 43 41 54 5f 45 51 55 41 4c 27 20 3d 3e hp',.'PHP_Token_CONCAT_EQUAL'.=>
dab20 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
dab40 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
dab60 6b 65 6e 5f 43 4f 4e 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ken_CONST'.=>.$vendorDir...'/php
dab80 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
daba0 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e 53 54 41 4e 54 5f 45 4e 43 41 50 53 php',.'PHP_Token_CONSTANT_ENCAPS
dabc0 45 44 5f 53 54 52 49 4e 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ED_STRING'.=>.$vendorDir...'/php
dabe0 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
dac00 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e 54 49 4e 55 45 27 20 3d 3e 20 24 76 php',.'PHP_Token_CONTINUE'.=>.$v
dac20 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
dac40 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
dac60 5f 43 55 52 4c 59 5f 4f 50 45 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 _CURLY_OPEN'.=>.$vendorDir...'/p
dac80 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
daca0 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 45 43 27 20 3d 3e 20 24 76 65 6e 64 n.php',.'PHP_Token_DEC'.=>.$vend
dacc0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
dace0 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 45 am/PHP/Token.php',.'PHP_Token_DE
dad00 43 4c 41 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 CLARE'.=>.$vendorDir...'/phpunit
dad20 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dad40 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 45 46 41 55 4c 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ,.'PHP_Token_DEFAULT'.=>.$vendor
dad60 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
dad80 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 49 52 27 /PHP/Token.php',.'PHP_Token_DIR'
dada0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
dadc0 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
dade0 5f 54 6f 6b 65 6e 5f 44 49 56 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 _Token_DIV'.=>.$vendorDir...'/ph
dae00 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
dae20 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 49 56 5f 45 51 55 41 4c 27 20 3d 3e 20 .php',.'PHP_Token_DIV_EQUAL'.=>.
dae40 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dae60 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dae80 65 6e 5f 44 4e 55 4d 42 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 en_DNUMBER'.=>.$vendorDir...'/ph
daea0 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
daec0 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 27 20 3d 3e 20 24 76 65 6e 64 6f 72 .php',.'PHP_Token_DO'.=>.$vendor
daee0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
daf00 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 43 5f /PHP/Token.php',.'PHP_Token_DOC_
daf20 43 4f 4d 4d 45 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e COMMENT'.=>.$vendorDir...'/phpun
daf40 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
daf60 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 4c 4c 41 52 27 20 3d 3e 20 24 76 65 6e 64 6f p',.'PHP_Token_DOLLAR'.=>.$vendo
daf80 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
dafa0 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 4c m/PHP/Token.php',.'PHP_Token_DOL
dafc0 4c 41 52 5f 4f 50 45 4e 5f 43 55 52 4c 59 5f 42 52 41 43 45 53 27 20 3d 3e 20 24 76 65 6e 64 6f LAR_OPEN_CURLY_BRACES'.=>.$vendo
dafe0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
db000 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 54 m/PHP/Token.php',.'PHP_Token_DOT
db020 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
db040 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
db060 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c 45 5f 41 52 52 4f 57 27 20 3d 3e 20 24 76 65 6e 64 6f 72 P_Token_DOUBLE_ARROW'.=>.$vendor
db080 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
db0a0 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 /PHP/Token.php',.'PHP_Token_DOUB
db0c0 4c 45 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e LE_CAST'.=>.$vendorDir...'/phpun
db0e0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
db100 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c 45 5f 43 4f 4c 4f 4e 27 20 3d 3e 20 p',.'PHP_Token_DOUBLE_COLON'.=>.
db120 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
db140 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
db160 65 6e 5f 44 4f 55 42 4c 45 5f 51 55 4f 54 45 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 en_DOUBLE_QUOTES'.=>.$vendorDir.
db180 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
db1a0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 43 48 4f 27 20 3d 3e /Token.php',.'PHP_Token_ECHO'.=>
db1c0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
db1e0 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
db200 6b 65 6e 5f 45 4c 53 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 ken_ELSE'.=>.$vendorDir...'/phpu
db220 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
db240 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4c 53 45 49 46 27 20 3d 3e 20 24 76 65 6e 64 hp',.'PHP_Token_ELSEIF'.=>.$vend
db260 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
db280 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4d am/PHP/Token.php',.'PHP_Token_EM
db2a0 50 54 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 PTY'.=>.$vendorDir...'/phpunit/p
db2c0 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
db2e0 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 43 41 50 53 45 44 5f 41 4e 44 5f 57 48 49 54 45 53 50 41 'PHP_Token_ENCAPSED_AND_WHITESPA
db300 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 CE'.=>.$vendorDir...'/phpunit/ph
db320 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
db340 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 44 45 43 4c 41 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 PHP_Token_ENDDECLARE'.=>.$vendor
db360 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
db380 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 46 /PHP/Token.php',.'PHP_Token_ENDF
db3a0 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 OR'.=>.$vendorDir...'/phpunit/ph
db3c0 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
db3e0 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 46 4f 52 45 41 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 PHP_Token_ENDFOREACH'.=>.$vendor
db400 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
db420 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 49 /PHP/Token.php',.'PHP_Token_ENDI
db440 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 F'.=>.$vendorDir...'/phpunit/php
db460 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
db480 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 53 57 49 54 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 HP_Token_ENDSWITCH'.=>.$vendorDi
db4a0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
db4c0 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 57 48 49 HP/Token.php',.'PHP_Token_ENDWHI
db4e0 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 LE'.=>.$vendorDir...'/phpunit/ph
db500 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
db520 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 5f 48 45 52 45 44 4f 43 27 20 3d 3e 20 24 76 65 6e 64 6f PHP_Token_END_HEREDOC'.=>.$vendo
db540 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
db560 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 51 55 m/PHP/Token.php',.'PHP_Token_EQU
db580 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 AL'.=>.$vendorDir...'/phpunit/ph
db5a0 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
db5c0 50 48 50 5f 54 6f 6b 65 6e 5f 45 56 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 PHP_Token_EVAL'.=>.$vendorDir...
db5e0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
db600 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 58 43 4c 41 4d 41 54 49 4f oken.php',.'PHP_Token_EXCLAMATIO
db620 4e 5f 4d 41 52 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 N_MARK'.=>.$vendorDir...'/phpuni
db640 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
db660 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 58 49 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 ',.'PHP_Token_EXIT'.=>.$vendorDi
db680 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
db6a0 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 58 54 45 4e 44 HP/Token.php',.'PHP_Token_EXTEND
db6c0 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 S'.=>.$vendorDir...'/phpunit/php
db6e0 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
db700 48 50 5f 54 6f 6b 65 6e 5f 46 49 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 HP_Token_FILE'.=>.$vendorDir...'
db720 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
db740 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 49 4e 41 4c 27 20 3d 3e 20 24 ken.php',.'PHP_Token_FINAL'.=>.$
db760 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
db780 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
db7a0 6e 5f 46 49 4e 41 4c 4c 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 n_FINALLY'.=>.$vendorDir...'/php
db7c0 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
db7e0 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 php',.'PHP_Token_FOR'.=>.$vendor
db800 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
db820 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 4f 52 45 /PHP/Token.php',.'PHP_Token_FORE
db840 41 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ACH'.=>.$vendorDir...'/phpunit/p
db860 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
db880 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 55 4e 43 54 49 4f 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 'PHP_Token_FUNCTION'.=>.$vendorD
db8a0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
db8c0 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 55 4e 43 5f PHP/Token.php',.'PHP_Token_FUNC_
db8e0 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 C'.=>.$vendorDir...'/phpunit/php
db900 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
db920 48 50 5f 54 6f 6b 65 6e 5f 47 4c 4f 42 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e HP_Token_GLOBAL'.=>.$vendorDir..
db940 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
db960 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 47 4f 54 4f 27 20 3d 3e 20 Token.php',.'PHP_Token_GOTO'.=>.
db980 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
db9a0 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
db9c0 65 6e 5f 47 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 en_GT'.=>.$vendorDir...'/phpunit
db9e0 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dba00 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 27 20 3d 3e 20 24 ,.'PHP_Token_HALT_COMPILER'.=>.$
dba20 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
dba40 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
dba60 6e 5f 49 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f n_IF'.=>.$vendorDir...'/phpunit/
dba80 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
dbaa0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4d 50 4c 45 4d 45 4e 54 53 27 20 3d 3e 20 24 76 65 6e 64 .'PHP_Token_IMPLEMENTS'.=>.$vend
dbac0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
dbae0 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e am/PHP/Token.php',.'PHP_Token_IN
dbb00 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 C'.=>.$vendorDir...'/phpunit/php
dbb20 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dbb40 48 50 5f 54 6f 6b 65 6e 5f 49 4e 43 4c 55 44 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 HP_Token_INCLUDE'.=>.$vendorDir.
dbb60 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
dbb80 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 43 4c 55 44 45 5f /Token.php',.'PHP_Token_INCLUDE_
dbba0 4f 4e 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ONCE'.=>.$vendorDir...'/phpunit/
dbbc0 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
dbbe0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 4c 49 4e 45 5f 48 54 4d 4c 27 20 3d 3e 20 24 76 65 6e .'PHP_Token_INLINE_HTML'.=>.$ven
dbc00 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
dbc20 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 eam/PHP/Token.php',.'PHP_Token_I
dbc40 4e 53 54 41 4e 43 45 4f 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 NSTANCEOF'.=>.$vendorDir...'/php
dbc60 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
dbc80 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 53 54 45 41 44 4f 46 27 20 3d 3e 20 24 php',.'PHP_Token_INSTEADOF'.=>.$
dbca0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
dbcc0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
dbce0 6e 5f 49 4e 54 45 52 46 41 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 n_INTERFACE'.=>.$vendorDir...'/p
dbd00 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
dbd20 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 54 5f 43 41 53 54 27 20 3d 3e 20 n.php',.'PHP_Token_INT_CAST'.=>.
dbd40 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dbd60 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dbd80 65 6e 5f 49 53 53 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 en_ISSET'.=>.$vendorDir...'/phpu
dbda0 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
dbdc0 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 hp',.'PHP_Token_IS_EQUAL'.=>.$ve
dbde0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
dbe00 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
dbe20 49 53 5f 47 52 45 41 54 45 52 5f 4f 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 IS_GREATER_OR_EQUAL'.=>.$vendorD
dbe40 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
dbe60 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 49 44 PHP/Token.php',.'PHP_Token_IS_ID
dbe80 45 4e 54 49 43 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e ENTICAL'.=>.$vendorDir...'/phpun
dbea0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
dbec0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 4e 4f 54 5f 45 51 55 41 4c 27 20 3d 3e 20 p',.'PHP_Token_IS_NOT_EQUAL'.=>.
dbee0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dbf00 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dbf20 65 6e 5f 49 53 5f 4e 4f 54 5f 49 44 45 4e 54 49 43 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 en_IS_NOT_IDENTICAL'.=>.$vendorD
dbf40 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
dbf60 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 53 4d PHP/Token.php',.'PHP_Token_IS_SM
dbf80 41 4c 4c 45 52 5f 4f 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ALLER_OR_EQUAL'.=>.$vendorDir...
dbfa0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
dbfc0 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 6e 63 6c 75 64 65 73 27 20 oken.php',.'PHP_Token_Includes'.
dbfe0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
dc000 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
dc020 54 6f 6b 65 6e 5f 4c 49 4e 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 Token_LINE'.=>.$vendorDir...'/ph
dc040 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
dc060 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 49 53 54 27 20 3d 3e 20 24 76 65 6e 64 .php',.'PHP_Token_LIST'.=>.$vend
dc080 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
dc0a0 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4e am/PHP/Token.php',.'PHP_Token_LN
dc0c0 55 4d 42 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 UMBER'.=>.$vendorDir...'/phpunit
dc0e0 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dc100 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4f 47 49 43 41 4c 5f 41 4e 44 27 20 3d 3e 20 24 76 65 ,.'PHP_Token_LOGICAL_AND'.=>.$ve
dc120 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
dc140 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
dc160 4c 4f 47 49 43 41 4c 5f 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 LOGICAL_OR'.=>.$vendorDir...'/ph
dc180 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
dc1a0 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4f 47 49 43 41 4c 5f 58 4f 52 27 20 3d .php',.'PHP_Token_LOGICAL_XOR'.=
dc1c0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
dc1e0 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
dc200 6f 6b 65 6e 5f 4c 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e oken_LT'.=>.$vendorDir...'/phpun
dc220 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
dc240 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 45 54 48 4f 44 5f 43 27 20 3d 3e 20 24 76 65 6e p',.'PHP_Token_METHOD_C'.=>.$ven
dc260 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
dc280 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d eam/PHP/Token.php',.'PHP_Token_M
dc2a0 49 4e 55 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f INUS'.=>.$vendorDir...'/phpunit/
dc2c0 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
dc2e0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 49 4e 55 53 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e .'PHP_Token_MINUS_EQUAL'.=>.$ven
dc300 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
dc320 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d eam/PHP/Token.php',.'PHP_Token_M
dc340 4f 44 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 OD_EQUAL'.=>.$vendorDir...'/phpu
dc360 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
dc380 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 55 4c 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 hp',.'PHP_Token_MULT'.=>.$vendor
dc3a0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
dc3c0 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 55 4c 5f /PHP/Token.php',.'PHP_Token_MUL_
dc3e0 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 EQUAL'.=>.$vendorDir...'/phpunit
dc400 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dc420 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 41 4d 45 53 50 41 43 45 27 20 3d 3e 20 24 76 65 6e 64 ,.'PHP_Token_NAMESPACE'.=>.$vend
dc440 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
dc460 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 45 am/PHP/Token.php',.'PHP_Token_NE
dc480 57 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 W'.=>.$vendorDir...'/phpunit/php
dc4a0 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dc4c0 48 50 5f 54 6f 6b 65 6e 5f 4e 53 5f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 HP_Token_NS_C'.=>.$vendorDir...'
dc4e0 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
dc500 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 53 5f 53 45 50 41 52 41 54 4f ken.php',.'PHP_Token_NS_SEPARATO
dc520 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 R'.=>.$vendorDir...'/phpunit/php
dc540 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dc560 48 50 5f 54 6f 6b 65 6e 5f 4e 55 4d 5f 53 54 52 49 4e 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 HP_Token_NUM_STRING'.=>.$vendorD
dc580 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
dc5a0 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 42 4a 45 43 PHP/Token.php',.'PHP_Token_OBJEC
dc5c0 54 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 T_CAST'.=>.$vendorDir...'/phpuni
dc5e0 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
dc600 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 42 4a 45 43 54 5f 4f 50 45 52 41 54 4f 52 27 20 3d ',.'PHP_Token_OBJECT_OPERATOR'.=
dc620 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
dc640 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
dc660 6f 6b 65 6e 5f 4f 50 45 4e 5f 42 52 41 43 4b 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 oken_OPEN_BRACKET'.=>.$vendorDir
dc680 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
dc6a0 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 43 55 P/Token.php',.'PHP_Token_OPEN_CU
dc6c0 52 4c 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 RLY'.=>.$vendorDir...'/phpunit/p
dc6e0 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
dc700 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 53 51 55 41 52 45 27 20 3d 3e 20 24 76 65 6e 64 'PHP_Token_OPEN_SQUARE'.=>.$vend
dc720 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
dc740 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 am/PHP/Token.php',.'PHP_Token_OP
dc760 45 4e 5f 54 41 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 EN_TAG'.=>.$vendorDir...'/phpuni
dc780 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
dc7a0 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 54 41 47 5f 57 49 54 48 5f 45 43 48 4f ',.'PHP_Token_OPEN_TAG_WITH_ECHO
dc7c0 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
dc7e0 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
dc800 50 5f 54 6f 6b 65 6e 5f 4f 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 P_Token_OR_EQUAL'.=>.$vendorDir.
dc820 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
dc840 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 41 41 4d 41 59 49 4d /Token.php',.'PHP_Token_PAAMAYIM
dc860 5f 4e 45 4b 55 44 4f 54 41 59 49 4d 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _NEKUDOTAYIM'.=>.$vendorDir...'/
dc880 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
dc8a0 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 45 52 43 45 4e 54 27 20 3d 3e 20 en.php',.'PHP_Token_PERCENT'.=>.
dc8c0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dc8e0 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dc900 65 6e 5f 50 49 50 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e en_PIPE'.=>.$vendorDir...'/phpun
dc920 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
dc940 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 4c 55 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 p',.'PHP_Token_PLUS'.=>.$vendorD
dc960 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
dc980 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 4c 55 53 5f PHP/Token.php',.'PHP_Token_PLUS_
dc9a0 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 EQUAL'.=>.$vendorDir...'/phpunit
dc9c0 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dc9e0 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 52 49 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 ,.'PHP_Token_PRINT'.=>.$vendorDi
dca00 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
dca20 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 52 49 56 41 54 HP/Token.php',.'PHP_Token_PRIVAT
dca40 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 E'.=>.$vendorDir...'/phpunit/php
dca60 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dca80 48 50 5f 54 6f 6b 65 6e 5f 50 52 4f 54 45 43 54 45 44 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 HP_Token_PROTECTED'.=>.$vendorDi
dcaa0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
dcac0 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 55 42 4c 49 43 HP/Token.php',.'PHP_Token_PUBLIC
dcae0 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
dcb00 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
dcb20 50 5f 54 6f 6b 65 6e 5f 51 55 45 53 54 49 4f 4e 5f 4d 41 52 4b 27 20 3d 3e 20 24 76 65 6e 64 6f P_Token_QUESTION_MARK'.=>.$vendo
dcb40 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
dcb60 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 52 45 51 m/PHP/Token.php',.'PHP_Token_REQ
dcb80 55 49 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f UIRE'.=>.$vendorDir...'/phpunit/
dcba0 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
dcbc0 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 52 45 51 55 49 52 45 5f 4f 4e 43 45 27 20 3d 3e 20 24 76 65 .'PHP_Token_REQUIRE_ONCE'.=>.$ve
dcbe0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
dcc00 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
dcc20 52 45 54 55 52 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 RETURN'.=>.$vendorDir...'/phpuni
dcc40 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
dcc60 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 45 4d 49 43 4f 4c 4f 4e 27 20 3d 3e 20 24 76 65 6e ',.'PHP_Token_SEMICOLON'.=>.$ven
dcc80 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
dcca0 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 eam/PHP/Token.php',.'PHP_Token_S
dccc0 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 L'.=>.$vendorDir...'/phpunit/php
dcce0 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dcd00 48 50 5f 54 6f 6b 65 6e 5f 53 4c 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 HP_Token_SL_EQUAL'.=>.$vendorDir
dcd20 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
dcd40 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 52 27 20 3d 3e 20 P/Token.php',.'PHP_Token_SR'.=>.
dcd60 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dcd80 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dcda0 65 6e 5f 53 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 en_SR_EQUAL'.=>.$vendorDir...'/p
dcdc0 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
dcde0 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 54 41 52 54 5f 48 45 52 45 44 4f 43 n.php',.'PHP_Token_START_HEREDOC
dce00 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
dce20 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
dce40 50 5f 54 6f 6b 65 6e 5f 53 54 41 54 49 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 P_Token_STATIC'.=>.$vendorDir...
dce60 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
dce80 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 54 52 49 4e 47 27 20 3d 3e oken.php',.'PHP_Token_STRING'.=>
dcea0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
dcec0 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
dcee0 6b 65 6e 5f 53 54 52 49 4e 47 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e ken_STRING_CAST'.=>.$vendorDir..
dcf00 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
dcf20 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 54 52 49 4e 47 5f 56 41 Token.php',.'PHP_Token_STRING_VA
dcf40 52 4e 41 4d 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 RNAME'.=>.$vendorDir...'/phpunit
dcf60 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
dcf80 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 57 49 54 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 ,.'PHP_Token_SWITCH'.=>.$vendorD
dcfa0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
dcfc0 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 74 72 65 61 PHP/Token.php',.'PHP_Token_Strea
dcfe0 6d 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 m'.=>.$vendorDir...'/phpunit/php
dd000 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2f 53 74 72 65 61 6d 2e 70 -token-stream/PHP/Token/Stream.p
dd020 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 74 72 65 61 6d 5f 43 61 63 68 69 6e 67 46 61 hp',.'PHP_Token_Stream_CachingFa
dd040 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 ctory'.=>.$vendorDir...'/phpunit
dd060 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2f 53 74 72 65 /php-token-stream/PHP/Token/Stre
dd080 61 6d 2f 43 61 63 68 69 6e 67 46 61 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b am/CachingFactory.php',.'PHP_Tok
dd0a0 65 6e 5f 54 48 52 4f 57 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 en_THROW'.=>.$vendorDir...'/phpu
dd0c0 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
dd0e0 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 49 4c 44 45 27 20 3d 3e 20 24 76 65 6e 64 6f hp',.'PHP_Token_TILDE'.=>.$vendo
dd100 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
dd120 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 52 41 m/PHP/Token.php',.'PHP_Token_TRA
dd140 49 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 IT'.=>.$vendorDir...'/phpunit/ph
dd160 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
dd180 50 48 50 5f 54 6f 6b 65 6e 5f 54 52 41 49 54 5f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 PHP_Token_TRAIT_C'.=>.$vendorDir
dd1a0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
dd1c0 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 52 59 27 20 3d 3e P/Token.php',.'PHP_Token_TRY'.=>
dd1e0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
dd200 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
dd220 6b 65 6e 5f 55 4e 53 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ken_UNSET'.=>.$vendorDir...'/php
dd240 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
dd260 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 55 4e 53 45 54 5f 43 41 53 54 27 20 3d 3e 20 php',.'PHP_Token_UNSET_CAST'.=>.
dd280 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
dd2a0 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
dd2c0 65 6e 5f 55 53 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 en_USE'.=>.$vendorDir...'/phpuni
dd2e0 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
dd300 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 56 41 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 ',.'PHP_Token_VAR'.=>.$vendorDir
dd320 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
dd340 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 56 41 52 49 41 42 4c P/Token.php',.'PHP_Token_VARIABL
dd360 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 E'.=>.$vendorDir...'/phpunit/php
dd380 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
dd3a0 48 50 5f 54 6f 6b 65 6e 5f 57 48 49 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 HP_Token_WHILE'.=>.$vendorDir...
dd3c0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
dd3e0 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 57 48 49 54 45 53 50 41 43 45 oken.php',.'PHP_Token_WHITESPACE
dd400 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
dd420 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
dd440 50 5f 54 6f 6b 65 6e 5f 58 4f 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 P_Token_XOR_EQUAL'.=>.$vendorDir
dd460 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
dd480 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 59 49 45 4c 44 27 20 P/Token.php',.'PHP_Token_YIELD'.
dd4a0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
dd4c0 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 54 65 78 74 ken-stream/PHP/Token.php',.'Text
dd4e0 5f 54 65 6d 70 6c 61 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 _Template'.=>.$vendorDir...'/php
dd500 75 6e 69 74 2f 70 68 70 2d 74 65 78 74 2d 74 65 6d 70 6c 61 74 65 2f 54 65 78 74 2f 54 65 6d 70 unit/php-text-template/Text/Temp
dd520 6c 61 74 65 2e 70 68 70 27 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d late.php',.);.<?php....class.Com
dd540 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 34 61 35 33 66 61 39 35 66 39 30 38 64 poserAutoloaderInit4a53fa95f908d
dd560 38 63 30 35 37 63 31 36 64 66 39 30 66 38 61 32 61 31 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 8c057c16df90f8a2a1e.{.private.st
dd580 61 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e atic.$loader;..public.static.fun
dd5a0 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 24 63 6c 61 73 73 29 0a 7b 0a ction.loadClassLoader($class).{.
dd5c0 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 if.('Composer\Autoload\ClassLoad
dd5e0 65 72 27 20 3d 3d 3d 20 24 63 6c 61 73 73 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f er'.===.$class).{.require.__DIR_
dd600 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 _...'/ClassLoader.php';.}.}..pub
dd620 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a lic.static.function.getLoader().
dd640 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 29 20 7b 0a {.if.(null.!==.self::$loader).{.
dd660 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 70 6c 5f 61 75 74 return.self::$loader;.}..spl_aut
dd680 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 oload_register(array('ComposerAu
dd6a0 74 6f 6c 6f 61 64 65 72 49 6e 69 74 34 61 35 33 66 61 39 35 66 39 30 38 64 38 63 30 35 37 63 31 toloaderInit4a53fa95f908d8c057c1
dd6c0 36 64 66 39 30 66 38 61 32 61 31 65 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 6df90f8a2a1e',.'loadClassLoader'
dd6e0 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 20 3d 20 ),.true,.true);.self::$loader.=.
dd700 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 $loader.=.new.\Composer\Autoload
dd720 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 \ClassLoader();.spl_autoload_unr
dd740 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 egister(array('ComposerAutoloade
dd760 72 49 6e 69 74 34 61 35 33 66 61 39 35 66 39 30 38 64 38 63 30 35 37 63 31 36 64 66 39 30 66 38 rInit4a53fa95f908d8c057c16df90f8
dd780 61 32 61 31 65 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a 0a 24 76 a2a1e',.'loadClassLoader'));..$v
dd7a0 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 endorDir.=.dirname(__DIR__);.$ba
dd7c0 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 24 69 seDir.=.dirname($vendorDir);..$i
dd7e0 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 ncludePaths.=.require.__DIR__...
dd800 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 61 72 72 61 79 5f 70 75 73 68 '/include_paths.php';.array_push
dd820 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 ($includePaths,.get_include_path
dd840 28 29 29 3b 0a 73 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 5f ());.set_include_path(join(PATH_
dd860 53 45 50 41 52 41 54 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 24 6d 61 SEPARATOR,.$includePaths));..$ma
dd880 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 p.=.require.__DIR__...'/autoload
dd8a0 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 _namespaces.php';.foreach.($map.
dd8c0 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 as.$namespace.=>.$path).{.$loade
dd8e0 72 2d 3e 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 24 63 r->set($namespace,.$path);.}..$c
dd900 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 lassMap.=.require.__DIR__...'/au
dd920 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 69 66 20 28 24 63 6c 61 73 73 toload_classmap.php';.if.($class
dd940 4d 61 70 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 Map).{.$loader->addClassMap($cla
dd960 73 73 4d 61 70 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 74 72 75 ssMap);.}..$loader->register(tru
dd980 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a e);..return.$loader;.}.}.<?php..
dd9a0 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f ..$vendorDir.=.dirname(dirname(_
dd9c0 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 _FILE__));.$baseDir.=.dirname($v
dd9e0 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 76 65 6e 64 6f endorDir);..return.array(.$vendo
dda00 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 65 78 74 2d 74 65 6d 70 6c 61 rDir...'/phpunit/php-text-templa
dda20 74 65 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 te',.$vendorDir...'/phpunit/phpu
dda40 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 nit-mock-objects',.$vendorDir...
dda60 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 27 2c 0a 24 76 '/phpunit/php-file-iterator',.$v
dda80 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 69 6d 65 72 27 2c endorDir...'/phpunit/php-timer',
ddaa0 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
ddac0 6e 2d 73 74 72 65 61 6d 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 n-stream',.$vendorDir...'/phpuni
ddae0 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 t/php-code-coverage',.$vendorDir
ddb00 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 27 2c 0a 24 76 65 6e 64 6f 72 44 69 ...'/phpunit/phpunit',.$vendorDi
ddb20 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 27 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a r...'/symfony/yaml',.);.<?php...
ddb40 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f .........namespace.Composer\Auto
ddb60 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a load;...........................
ddb80 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 ...class.ClassLoader.{.private.$
ddba0 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c prefixes.=.array();.private.$fal
ddbc0 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 75 73 lbackDirs.=.array();.private.$us
ddbe0 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 63 eIncludePath.=.false;.private.$c
ddc00 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 lassMap.=.array();..public.funct
ddc20 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f ion.getPrefixes().{.return.call_
ddc40 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 user_func_array('array_merge',.$
ddc60 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 this->prefixes);.}..public.funct
ddc80 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getFallbackDirs().{.return.$
ddca0 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 this->fallbackDirs;.}..public.fu
ddcc0 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getClassMap().{.return.$t
ddce0 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->classMap;.}.....public.func
ddd00 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 tion.addClassMap(array.$classMap
ddd20 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 74 68 69 73 ).{.if.($this->classMap).{.$this
ddd40 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e ->classMap.=.array_merge($this->
ddd60 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 classMap,.$classMap);.}.else.{.$
ddd80 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 7d 0a this->classMap.=.$classMap;.}.}.
ddda0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 ........public.function.add($pre
dddc0 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b fix,.$paths,.$prepend.=.false).{
ddde0 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b .if.(!$prefix).{.if.($prepend).{
dde00 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 .$this->fallbackDirs.=.array_mer
dde20 67 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 ge(.(array).$paths,.$this->fallb
dde40 61 63 6b 44 69 72 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 ackDirs.);.}.else.{.$this->fallb
dde60 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 66 61 ackDirs.=.array_merge(.$this->fa
dde80 6c 6c 62 61 63 6b 44 69 72 73 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a llbackDirs,.(array).$paths.);.}.
ddea0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 66 69 72 73 74 20 3d 20 24 70 72 65 66 69 78 5b 30 5d 3b .return;.}..$first.=.$prefix[0];
ddec0 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 .if.(!isset($this->prefixes[$fir
ddee0 73 74 5d 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 st][$prefix])).{.$this->prefixes
ddf00 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 [$first][$prefix].=.(array).$pat
ddf20 68 73 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 hs;..return;.}.if.($prepend).{.$
ddf40 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 this->prefixes[$first][$prefix].
ddf60 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 =.array_merge(.(array).$paths,.$
ddf80 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 0a this->prefixes[$first][$prefix].
ddfa0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 );.}.else.{.$this->prefixes[$fir
ddfc0 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 st][$prefix].=.array_merge(.$thi
ddfe0 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 s->prefixes[$first][$prefix],.(a
de000 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rray).$paths.);.}.}........publi
de020 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a c.function.set($prefix,.$paths).
de040 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 {.if.(!$prefix).{.$this->fallbac
de060 6b 44 69 72 73 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 3b kDirs.=.(array).$paths;..return;
de080 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 73 75 62 73 74 72 28 24 70 72 65 66 69 .}.$this->prefixes[substr($prefi
de0a0 78 2c 20 30 2c 20 31 29 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 x,.0,.1)][$prefix].=.(array).$pa
de0c0 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ths;.}.......public.function.set
de0e0 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a UseIncludePath($useIncludePath).
de100 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e {.$this->useIncludePath.=.$useIn
de120 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cludePath;.}........public.funct
de140 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e ion.getUseIncludePath().{.return
de160 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$this->useIncludePath;.}.......
de180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e public.function.register($prepen
de1a0 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 d.=.false).{.spl_autoload_regist
de1c0 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 er(array($this,.'loadClass'),.tr
de1e0 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ue,.$prepend);.}.....public.func
de200 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 tion.unregister().{.spl_autoload
de220 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c _unregister(array($this,.'loadCl
de240 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ass'));.}........public.function
de260 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d .loadClass($class).{.if.($file.=
de280 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c .$this->findFile($class)).{.incl
de2a0 75 64 65 20 24 66 69 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a ude.$file;..return.true;.}.}....
de2c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 .....public.function.findFile($c
de2e0 6c 61 73 73 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 lass).{...if.('\\'.==.$class[0])
de300 20 7b 0a 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 7d .{.$class.=.substr($class,.1);.}
de320 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 ..if.(isset($this->classMap[$cla
de340 73 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 ss])).{.return.$this->classMap[$
de360 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 class];.}..if.(false.!==.$pos.=.
de380 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 63 6c 61 73 strrpos($class,.'\\')).{...$clas
de3a0 73 50 61 74 68 20 3d 20 73 74 72 74 72 28 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 sPath.=.strtr(substr($class,.0,.
de3c0 24 70 6f 73 29 2c 20 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 $pos),.'\\',.DIRECTORY_SEPARATOR
de3e0 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 3b 0a 24 63 6c 61 73 73 4e )...DIRECTORY_SEPARATOR;.$classN
de400 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a ame.=.substr($class,.$pos.+.1);.
de420 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 }.else.{...$classPath.=.null;.$c
de440 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 24 63 6c 61 73 73 50 61 74 68 lassName.=.$class;.}..$classPath
de460 20 2e 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 27 5f 27 2c 20 44 49 52 45 43 ..=.strtr($className,.'_',.DIREC
de480 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 24 66 69 72 73 TORY_SEPARATOR)...'.php';..$firs
de4a0 74 20 3d 20 24 63 6c 61 73 73 5b 30 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e t.=.$class[0];.if.(isset($this->
de4c0 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 prefixes[$first])).{.foreach.($t
de4e0 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 his->prefixes[$first].as.$prefix
de500 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 .=>.$dirs).{.if.(0.===.strpos($c
de520 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 lass,.$prefix)).{.foreach.($dirs
de540 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 .as.$dir).{.if.(file_exists($dir
de560 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 ...DIRECTORY_SEPARATOR...$classP
de580 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f ath)).{.return.$dir...DIRECTORY_
de5a0 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a SEPARATOR...$classPath;.}.}.}.}.
de5c0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 }..foreach.($this->fallbackDirs.
de5e0 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 as.$dir).{.if.(file_exists($dir.
de600 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 ..DIRECTORY_SEPARATOR...$classPa
de620 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 th)).{.return.$dir...DIRECTORY_S
de640 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 EPARATOR...$classPath;.}.}..if.(
de660 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d $this->useIncludePath.&&.$file.=
de680 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 63 6c .stream_resolve_include_path($cl
de6a0 61 73 73 50 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 0a 72 65 74 assPath)).{.return.$file;.}..ret
de6c0 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 urn.$this->classMap[$class].=.fa
de6e0 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 69 66 20 28 50 48 50 5f 53 41 50 49 20 21 3d 3d lse;.}.}.<?php..if.(PHP_SAPI.!==
de700 20 27 63 6c 69 27 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 57 61 72 6e 69 6e 67 3a 20 43 6f 6d .'cli').{.....echo.'Warning:.Com
de720 70 6f 73 65 72 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 76 6f 6b 65 64 20 76 69 61 20 74 68 65 20 poser.should.be.invoked.via.the.
de740 43 4c 49 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 48 50 2c 20 6e 6f 74 20 74 68 65 20 27 2e 50 48 CLI.version.of.PHP,.not.the.'.PH
de760 50 5f 53 41 50 49 2e 27 20 53 41 50 49 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 72 65 71 75 69 P_SAPI.'.SAPI'.PHP_EOL;.}..requi
de780 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 re.__DIR__.'/../src/bootstrap.ph
de7a0 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 p';..use.Composer\Console\Applic
de7c0 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 2d 31 29 3b 0a 0a 69 66 ation;..error_reporting(-1);..if
de7e0 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a .(function_exists('ini_set')).{.
de800 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f 65 72 72 6f 72 73 27 2c 20 31 ....@ini_set('display_errors',.1
de820 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 20 3d 20 66 75 6e 63 74 69 6f );......$memoryInBytes.=.functio
de840 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 75 6e 69 74 20 3d 20 73 74 72 n.($value).{.........$unit.=.str
de860 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 2d 31 2c 20 31 29 29 3b 0a tolower(substr($value,.-1,.1));.
de880 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 28 69 6e 74 29 20 24 76 61 6c 75 65 3b 0a 20 ........$value.=.(int).$value;..
de8a0 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 75 6e 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .......switch($unit).{..........
de8c0 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 ...case.'g':.................$va
de8e0 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 lue.*=.1024;.................//.
de900 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 no.break.(cumulative.multiplier)
de920 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6d 27 3a 0a 20 20 20 20 20 20 20 20 20 .............case.'m':..........
de940 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 .......$value.*=.1024;..........
de960 20 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d .......//.no.break.(cumulative.m
de980 75 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6b 27 3a ultiplier).............case.'k':
de9a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b .................$value.*=.1024;
de9c0 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 76 61 6c 75 .........}..........return.$valu
de9e0 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 3d 20 74 72 e;.....};......$memoryLimit.=.tr
dea00 69 6d 28 69 6e 69 5f 67 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 29 29 3b 0a 20 20 20 im(ini_get('memory_limit'));....
dea20 20 2f 2f 20 49 6e 63 72 65 61 73 65 20 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 20 69 66 20 69 74 20 .//.Increase.memory_limit.if.it.
dea40 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 35 31 32 4d 0a 20 20 20 20 69 66 20 28 24 6d 65 6d 6f is.lower.than.512M.....if.($memo
dea60 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 26 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 28 ryLimit.!=.-1.&&.$memoryInBytes(
dea80 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c 20 35 31 32 20 2a 20 31 30 32 34 20 2a 20 31 30 32 $memoryLimit).<.512.*.1024.*.102
deaa0 34 29 20 7b 0a 20 20 20 20 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 4).{.........@ini_set('memory_li
deac0 6d 69 74 27 2c 20 27 35 31 32 4d 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 75 6e 73 65 74 28 24 mit',.'512M');.....}.....unset($
deae0 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 3b 0a 7d 0a memoryInBytes,.$memoryLimit);.}.
deb00 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a .//.run.the.command.application.
deb20 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 $application.=.new.Application()
deb40 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 29 3b 0a 0a 43 6f 70 79 72 69 67 68 ;.$application->run();..Copyrigh
deb60 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 2c 20 4a 6f 72 64 69 20 t.(c).2011.Nils.Adermann,.Jordi.
deb80 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 Boggiano..Permission.is.hereby.g
deba0 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 ranted,.free.of.charge,.to.any.p
debc0 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 erson.obtaining.a.copy.of.this.s
debe0 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 oftware.and.associated.documenta
dec00 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 tion.files.(the."Software"),.to.
dec20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 deal.in.the.Software.without.res
dec40 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 triction,.including.without.limi
dec60 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 tation.the.rights.to.use,.copy,.
dec80 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 modify,.merge,.publish,.distribu
deca0 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 te,.sublicense,.and/or.sell.copi
decc0 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 es.of.the.Software,.and.to.permi
dece0 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 t.persons.to.whom.the.Software.i
ded00 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f s.furnished.to.do.so,.subject.to
ded20 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 .the.following.conditions:..The.
ded40 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 above.copyright.notice.and.this.
ded60 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 permission.notice.shall.be.inclu
ded80 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c ded.in.all.copies.or.substantial
deda0 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 .portions.of.the.Software...THE.
dedc0 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 SOFTWARE.IS.PROVIDED."AS.IS",.WI
dede0 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 THOUT.WARRANTY.OF.ANY.KIND,.EXPR
dee00 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f ESS.OR.IMPLIED,.INCLUDING.BUT.NO
dee20 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d T.LIMITED.TO.THE.WARRANTIES.OF.M
dee40 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 ERCHANTABILITY,.FITNESS.FOR.A.PA
dee60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 RTICULAR.PURPOSE.AND.NONINFRINGE
dee80 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 MENT..IN.NO.EVENT.SHALL.THE.AUTH
deea0 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 ORS.OR.COPYRIGHT.HOLDERS.BE.LIAB
deec0 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 LE.FOR.ANY.CLAIM,.DAMAGES.OR.OTH
deee0 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 ER.LIABILITY,.WHETHER.IN.AN.ACTI
def00 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 ON.OF.CONTRACT,.TORT.OR.OTHERWIS
def20 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f E,.ARISING.FROM,.OUT.OF.OR.IN.CO
def40 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 NNECTION.WITH.THE.SOFTWARE.OR.TH
def60 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 E.USE.OR.OTHER.DEALINGS.IN.THE.S
def80 4f 46 54 57 41 52 45 2e 0a 0a 19 76 07 4e ac e2 f9 91 e4 bc 5e 12 fa 28 bf 28 5b d8 4b c9 02 00 OFTWARE....v.N......^..(.([.K...
defa0 00 00 47 42 4d 42 ..GBMB