aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: 3572477546e40a03179dda19e93507477060dd3c (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 69 66 20 28 74 69 mapPhar('composer.phar');.if.(ti
0140 6d 65 28 29 20 3e 20 31 33 34 32 30 31 31 36 30 37 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 54 me().>.1342011607).{.....echo.'T
0160 68 69 73 20 64 65 76 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 75 74 his.dev.build.of.composer.is.out
0180 64 61 74 65 64 2c 20 70 6c 65 61 73 65 20 72 75 6e 20 22 27 2e 24 61 72 67 76 5b 30 5d 2e 27 20 dated,.please.run."'.$argv[0].'.
01a0 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 2e 27 self-update".to.get.the.latest.'
01c0 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 .PHP_EOL;.}.require.'phar://comp
01e0 6f 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 oser.phar/bin/composer';..__HALT
0200 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 59 40 00 00 cc 00 00 00 11 00 00 00 01 00 0d _COMPILER();.?>..Y@.............
0220 00 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 ...composer.phar........src/boot
0240 73 74 72 61 70 2e 70 68 70 b9 01 00 00 d7 eb d5 4f b9 01 00 00 28 8e 49 9f b6 01 00 00 00 00 00 strap.php.......O....(.I........
0260 00 20 00 00 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 .....src/Composer/Util/Filesyste
0280 6d 2e 70 68 70 53 0c 00 00 d7 eb d5 4f 53 0c 00 00 96 4b 12 70 b6 01 00 00 00 00 00 00 22 00 00 m.phpS......OS....K.p........"..
02a0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e .src/Composer/Util/ErrorHandler.
02c0 70 68 70 14 02 00 00 d7 eb d5 4f 14 02 00 00 b4 40 85 e6 b6 01 00 00 00 00 00 00 2a 00 00 00 73 php.......O.....@..........*...s
02e0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 rc/Composer/Util/StreamContextFa
0300 63 74 6f 72 79 2e 70 68 70 40 06 00 00 d7 eb d5 4f 40 06 00 00 32 e8 b9 77 b6 01 00 00 00 00 00 ctory.php@......O@...2..w.......
0320 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 5b 0c .....src/Composer/Util/Svn.php[.
0340 00 00 d7 eb d5 4f 5b 0c 00 00 f7 82 63 9b b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f .....O[.....c.........&...src/Co
0360 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 mposer/Util/RemoteFilesystem.php
0380 d5 11 00 00 d7 eb d5 4f d5 11 00 00 ea 87 1c 41 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f .......O.......A........%...src/
03a0 43 6f 6d 70 6f 73 65 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 Composer/Util/ProcessExecutor.ph
03c0 70 71 04 00 00 d7 eb d5 4f 71 04 00 00 89 8a c7 ac b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 pq......Oq...............+...src
03e0 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 /Composer/Util/SpdxLicenseIdenti
0400 66 69 65 72 2e 70 68 70 36 0a 00 00 d7 eb d5 4f 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 fier.php6......O6....6.o........
0420 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 $...src/Composer/Console/Applica
0440 74 69 6f 6e 2e 70 68 70 bd 0a 00 00 d7 eb d5 4f bd 0a 00 00 aa 63 e5 c7 b6 01 00 00 00 00 00 00 tion.php.......O.....c..........
0460 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
0480 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 d7 eb d5 4f 69 01 ver/RuleWatchChain.phpi......Oi.
04a0 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..h..,........;...src/Composer/D
04c0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 ependencyResolver/SolverProblems
04e0 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 0e 02 00 00 d7 eb d5 4f 0e 02 00 00 62 c7 a3 61 b6 01 00 Exception.php.......O....b..a...
0500 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 79 ...../...src/Composer/Dependency
0520 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 d7 eb d5 4f Resolver/DebugSolver.php.......O
0540 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................(...src/Composer
0560 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 89 0e 00 00 /DependencyResolver/Rule.php....
0580 d7 eb d5 4f 89 0e 00 00 bb 3e 10 0a b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 ...O.....>........../...src/Comp
05a0 6f 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 oser/DependencyResolver/Transact
05c0 69 6f 6e 2e 70 68 70 dc 13 00 00 d7 eb d5 4f dc 13 00 00 00 d6 c5 c9 b6 01 00 00 00 00 00 00 33 ion.php.......O................3
05e0 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 76 ...src/Composer/DependencyResolv
0600 65 72 2f 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 d7 eb d5 4f 14 06 er/RuleSetIterator.php.......O..
0620 00 00 7d f5 c7 f9 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 44 ..}...........+...src/Composer/D
0640 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 70 68 70 89 04 00 ependencyResolver/Request.php...
0660 00 d7 eb d5 4f 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d ....O....1..I........1...src/Com
0680 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 61 75 6c 74 poser/DependencyResolver/Default
06a0 50 6f 6c 69 63 79 2e 70 68 70 56 15 00 00 d7 eb d5 4f 56 15 00 00 d0 b1 33 46 b6 01 00 00 00 00 Policy.phpV......OV.....3F......
06c0 00 00 49 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 ..I...src/Composer/DependencyRes
06e0 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c olver/Operation/MarkAliasInstall
0700 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d0 02 00 00 d7 eb d5 4f d0 02 00 00 78 55 5a 61 b6 edOperation.php.......O....xUZa.
0720 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 6e 64 65 6e .......K...src/Composer/Dependen
0740 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 61 73 55 6e cyResolver/Operation/MarkAliasUn
0760 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 d7 eb d5 4f d6 02 installedOperation.php.......O..
0780 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 65 72 2f 44 .._i..........@...src/Composer/D
07a0 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 55 6e 69 6e ependencyResolver/Operation/Unin
07c0 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 49 02 00 00 d7 eb d5 4f 49 02 00 00 46 fb stallOperation.phpI......OI...F.
07e0 c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e ..........=...src/Composer/Depen
0800 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 dencyResolver/Operation/UpdateOp
0820 65 72 61 74 69 6f 6e 2e 70 68 70 68 03 00 00 d7 eb d5 4f 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 eration.phph......Oh....S.].....
0840 00 00 00 3e 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 ...>...src/Composer/DependencyRe
0860 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f solver/Operation/InstallOperatio
0880 6e 2e 70 68 70 43 02 00 00 d7 eb d5 4f 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 40 00 00 n.phpC......OC....\.*........@..
08a0 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 72 .src/Composer/DependencyResolver
08c0 2f 4f 70 65 72 61 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 /Operation/OperationInterface.ph
08e0 70 d3 00 00 00 d7 eb d5 4f d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 p.......O......&.........=...src
0900 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 65 /Composer/DependencyResolver/Ope
0920 72 61 74 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 d7 eb ration/SolverOperation.php......
0940 d5 4f eb 01 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .O................6...src/Compos
0960 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 42 75 67 45 er/DependencyResolver/SolverBugE
0980 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 01 00 00 d7 eb d5 4f 98 01 00 00 7f 22 71 4e b6 01 00 00 xception.php.......O....."qN....
09a0 00 00 00 00 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 ....+...src/Composer/DependencyR
09c0 65 73 6f 6c 76 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 bb 08 00 00 d7 eb d5 4f bb 08 00 00 7d esolver/Problem.php.......O....}
09e0 d4 9c c3 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 65 70 65 ...........(...src/Composer/Depe
0a00 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 25 0b 00 00 d7 eb d5 4f 25 ndencyResolver/Pool.php%......O%
0a20 0b 00 00 38 bb b6 59 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 ...8..Y........3...src/Composer/
0a40 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 66 61 DependencyResolver/PolicyInterfa
0a60 63 65 2e 70 68 70 91 01 00 00 d7 eb d5 4f 91 01 00 00 42 18 9f b6 b6 01 00 00 00 00 00 00 2d 00 ce.php.......O....B...........-.
0a80 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
0aa0 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 46 10 00 00 d7 eb d5 4f 46 10 00 00 1a ca a7 41 b6 r/Decisions.phpF......OF......A.
0ac0 01 00 00 00 00 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 .......2...src/Composer/Dependen
0ae0 63 79 52 65 73 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 cyResolver/RuleWatchGraph.php...
0b00 00 d7 eb d5 4f e1 06 00 00 b5 1f 39 5c b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d ....O......9\........+...src/Com
0b20 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 74 poser/DependencyResolver/RuleSet
0b40 2e 70 68 70 9b 09 00 00 d7 eb d5 4f 9b 09 00 00 4a 79 0c c0 b6 01 00 00 00 00 00 00 31 00 00 00 .php.......O....Jy..........1...
0b60 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/
0b80 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 2e 70 68 70 f0 03 00 00 d7 eb d5 4f f0 03 00 00 5d 24 f3 RuleWatchNode.php.......O....]$.
0ba0 b4 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 65 70 65 6e 64 .........*...src/Composer/Depend
0bc0 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 70 cc 35 00 00 d7 eb d5 4f cc encyResolver/Solver.php.5.....O.
0be0 35 00 00 44 6a 1c 8b 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 5..Dj..........4...src/Composer/
0c00 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 47 65 6e 65 72 61 DependencyResolver/RuleSetGenera
0c20 74 6f 72 2e 70 68 70 70 15 00 00 d7 eb d5 4f 70 15 00 00 09 75 83 1f b6 01 00 00 00 00 00 00 2c tor.phpp......Op....u..........,
0c40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 65 72 2f 44 ...src/Composer/Command/Helper/D
0c60 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 d7 eb d5 4f 9e 01 00 00 95 82 8c 26 b6 ialogHelper.php.......O.......&.
0c80 01 00 00 00 00 00 00 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 .......-...src/Composer/Command/
0ca0 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 48 13 00 00 d7 eb d5 4f CreateProjectCommand.phpH......O
0cc0 48 13 00 00 f8 e6 11 fe b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 H...............$...src/Composer
0ce0 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 8a 28 00 00 d7 eb d5 4f /Command/InitCommand.php.(.....O
0d00 8a 28 00 00 8e 4a ef 8a b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .(...J..........&...src/Composer
0d20 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 9b 07 00 00 d7 eb /Command/UpdateCommand.php......
0d40 d5 4f 9b 07 00 00 1c ce 3b 2c b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .O......;,........'...src/Compos
0d60 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 cd 0b 00 er/Command/RequireCommand.php...
0d80 00 d7 eb d5 4f cd 0b 00 00 4d ff 8e 8e b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d ....O....M...........$...src/Com
0da0 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 c5 1d 00 poser/Command/ShowCommand.php...
0dc0 00 d7 eb d5 4f c5 1d 00 00 bb de 83 59 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d ....O.......Y........'...src/Com
0de0 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
0e00 7c 0a 00 00 d7 eb d5 4f 7c 0a 00 00 cc 97 54 16 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f |......O|.....T.........%...src/
0e20 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 Composer/Command/AboutCommand.ph
0e40 70 b4 02 00 00 d7 eb d5 4f b4 02 00 00 1a 87 d1 cf b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 p.......O....................src
0e60 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 5e 01 00 /Composer/Command/Command.php^..
0e80 00 d7 eb d5 4f 5e 01 00 00 2d 67 28 6c b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d ....O^...-g(l........&...src/Com
0ea0 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 68 70 8d poser/Command/SearchCommand.php.
0ec0 0d 00 00 d7 eb d5 4f 8d 0d 00 00 b5 9e 58 3e b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 ......O......X>........'...src/C
0ee0 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 omposer/Command/InstallCommand.p
0f00 68 70 9c 06 00 00 d7 eb d5 4f 9c 06 00 00 23 75 ea b8 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 hp.......O....#u..........(...sr
0f20 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 c/Composer/Command/ValidateComma
0f40 6e 64 2e 70 68 70 97 0c 00 00 d7 eb d5 4f 97 0c 00 00 4d 0a 65 22 b6 01 00 00 00 00 00 00 2a 00 nd.php.......O....M.e"........*.
0f60 00 00 73 72 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 ..src/Composer/Command/SelfUpdat
0f80 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 96 06 00 00 d7 eb d5 4f 96 06 00 00 75 61 c0 fa b6 01 00 00 eCommand.php.......O....ua......
0fa0 00 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 ....-...src/Composer/Installer/I
0fc0 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 d7 eb d5 4f c5 02 00 nstallerInterface.php.......O...
0fe0 00 48 53 93 a1 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 .HS..........+...src/Composer/In
1000 73 74 61 6c 6c 65 72 2f 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 e2 05 00 00 staller/ProjectInstaller.php....
1020 d7 eb d5 4f e2 05 00 00 02 2a 72 f3 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 ...O.....*r.............src/Comp
1040 6f 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 oser/Installer/InstallationManag
1060 65 72 2e 70 68 70 2e 10 00 00 d7 eb d5 4f 2e 10 00 00 68 b0 0b 11 b6 01 00 00 00 00 00 00 2d 00 er.php.......O....h...........-.
1080 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 73 74 61 6c 6c ..src/Composer/Installer/Install
10a0 65 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 f0 09 00 00 d7 eb d5 4f f0 09 00 00 ac 08 59 ef b6 erInstaller.php.......O......Y..
10c0 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 74 61 6c 6c 65 .......+...src/Composer/Installe
10e0 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 f4 14 00 00 d7 eb d5 4f f4 14 r/LibraryInstaller.php.......O..
1100 00 00 12 e1 06 4d 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 49 .....M........(...src/Composer/I
1120 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 15 05 00 00 d7 eb nstaller/NoopInstaller.php......
1140 d5 4f 15 05 00 00 b2 03 fd 15 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .O................/...src/Compos
1160 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 61 6c 6c 65 er/Installer/MetapackageInstalle
1180 72 2e 70 68 70 a6 04 00 00 d7 eb d5 4f a6 04 00 00 ab a3 66 ce b6 01 00 00 00 00 00 00 19 00 00 r.php.......O......f............
11a0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 70 6f 73 65 72 2e 70 68 70 4b 05 00 00 d7 eb .src/Composer/Composer.phpK.....
11c0 d5 4f 4b 05 00 00 03 69 5c c4 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .OK....i\.............src/Compos
11e0 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 70 59 03 00 00 d7 eb d5 4f 59 03 00 er/IO/IOInterface.phpY......OY..
1200 00 10 ba 20 3d 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 ....=............src/Composer/IO
1220 2f 4e 75 6c 6c 49 4f 2e 70 68 70 12 04 00 00 d7 eb d5 4f 12 04 00 00 1d 1d fc 03 b6 01 00 00 00 /NullIO.php.......O.............
1240 00 00 00 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 .......src/Composer/IO/ConsoleIO
1260 2e 70 68 70 ef 0c 00 00 d7 eb d5 4f ef 0c 00 00 e7 3a eb fb b6 01 00 00 00 00 00 00 24 00 00 00 .php.......O.....:..........$...
1280 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 src/Composer/Script/ScriptEvents
12a0 2e 70 68 70 81 02 00 00 d7 eb d5 4f 81 02 00 00 c1 a7 cb ed b6 01 00 00 00 00 00 00 27 00 00 00 .php.......O................'...
12c0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 44 69 73 70 61 74 63 src/Composer/Script/EventDispatc
12e0 68 65 72 2e 70 68 70 87 08 00 00 d7 eb d5 4f 87 08 00 00 3f 21 d5 e4 b6 01 00 00 00 00 00 00 24 her.php.......O....?!..........$
1300 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 ...src/Composer/Script/PackageEv
1320 65 6e 74 2e 70 68 70 e2 01 00 00 d7 eb d5 4f e2 01 00 00 5b 10 1d b4 b6 01 00 00 00 00 00 00 1d ent.php.......O....[............
1340 00 00 00 73 72 63 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 ...src/Composer/Script/Event.php
1360 f4 01 00 00 d7 eb d5 4f f4 01 00 00 a2 1a 99 bd b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f .......O................$...src/
1380 43 6f 6d 70 6f 73 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 Composer/Script/CommandEvent.php
13a0 6f 00 00 00 d7 eb d5 4f 6f 00 00 00 0d b7 14 79 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f o......Oo......y............src/
13c0 43 6f 6d 70 6f 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 df 1a 00 00 d7 eb d5 4f df 1a 00 00 Composer/Factory.php.......O....
13e0 e6 63 66 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 50 61 63 .cfk........*...src/Composer/Pac
1400 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 96 01 00 00 d7 eb kage/Loader/JsonLoader.php......
1420 d5 4f 96 01 00 00 f3 cd a5 ca b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .O................1...src/Compos
1440 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 65 4c 6f 61 er/Package/Loader/RootPackageLoa
1460 64 65 72 2e 70 68 70 69 15 00 00 d7 eb d5 4f 69 15 00 00 94 e3 d9 78 b6 01 00 00 00 00 00 00 2b der.phpi......Oi......x........+
1480 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 61 64 65 72 2f 41 ...src/Composer/Package/Loader/A
14a0 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 f7 15 00 00 d7 eb d5 4f f7 15 00 00 5f 6e 7a d3 b6 01 rrayLoader.php.......O...._nz...
14c0 00 00 00 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 ......$...src/Composer/Package/B
14e0 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 1e 0c 00 00 d7 eb d5 4f 1e 0c 00 00 07 34 96 24 b6 01 asePackage.php.......O.....4.$..
1500 00 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 56 ..........src/Composer/Package/V
1520 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 01 15 00 00 d7 eb d5 4f ersion/VersionParser.php.......O
1540 01 15 00 00 71 43 e9 98 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....qC..........)...src/Composer
1560 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c4 07 00 /Package/PackageInterface.php...
1580 00 d7 eb d5 4f c4 07 00 00 29 fa 27 6c b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d ....O....).'l........9...src/Com
15a0 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 2f 56 65 72 poser/Package/LinkConstraint/Ver
15c0 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 98 03 00 00 d7 eb d5 4f 98 03 00 00 a6 81 sionConstraint.php.......O......
15e0 2c 88 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 6b 61 ,.........7...src/Composer/Packa
1600 67 65 2f 4c 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 ge/LinkConstraint/MultiConstrain
1620 74 2e 70 68 70 6d 02 00 00 d7 eb d5 4f 6d 02 00 00 80 e5 4a 5b b6 01 00 00 00 00 00 00 3a 00 00 t.phpm......Om.....J[........:..
1640 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 6b 43 6f 6e 73 74 72 .src/Composer/Package/LinkConstr
1660 61 69 6e 74 2f 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 80 01 00 00 d7 aint/SpecificConstraint.php.....
1680 eb d5 4f 80 01 00 00 9e af 48 8d b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..O......H.........?...src/Compo
16a0 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 4c 69 6e 6b 43 ser/Package/LinkConstraint/LinkC
16c0 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c2 00 00 00 d7 eb d5 4f c2 00 onstraintInterface.php.......O..
16e0 00 00 67 29 10 43 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 ..g).C........%...src/Composer/P
1700 61 63 6b 61 67 65 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 77 12 00 00 d7 eb d5 4f 77 ackage/AliasPackage.phpw......Ow
1720 12 00 00 af be d3 20 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...................src/Composer/
1740 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 47 04 00 00 d7 eb d5 4f 47 04 00 00 c6 b2 e7 a3 Package/Link.phpG......OG.......
1760 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 50 61 63 6b 61 67 65 ........+...src/Composer/Package
1780 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 16 07 00 00 d7 eb d5 4f 16 /Dumper/ArrayDumper.php.......O.
17a0 07 00 00 ce 00 27 59 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 .....'Y........&...src/Composer/
17c0 50 61 63 6b 61 67 65 2f 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 2e 70 68 70 04 1b 00 00 d7 eb d5 Package/MemoryPackage.php.......
17e0 4f 04 1b 00 00 ef 55 fe 97 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 O.....U..............src/Compose
1800 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 ea 10 00 00 d7 eb d5 4f ea 10 00 00 r/Package/Locker.php.......O....
1820 eb bc 6c 9e b6 01 00 00 00 00 00 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 ..l.............src/Composer/Cac
1840 68 65 2e 70 68 70 25 03 00 00 d7 eb d5 4f 25 03 00 00 8b 43 c1 7d b6 01 00 00 00 00 00 00 17 00 he.php%......O%....C.}..........
1860 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 2e 04 00 00 d7 eb d5 ..src/Composer/Config.php.......
1880 4f 2e 04 00 00 50 43 75 88 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 O....PCu.........-...src/Compose
18a0 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 r/Json/JsonValidationException.p
18c0 68 70 32 01 00 00 d7 eb d5 4f 32 01 00 00 90 76 37 69 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 hp2......O2....v7i........%...sr
18e0 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 61 74 6f 72 2e c/Composer/Json/JsonManipulator.
1900 70 68 70 49 0a 00 00 d7 eb d5 4f 49 0a 00 00 1b e9 2f fe b6 01 00 00 00 00 00 00 1e 00 00 00 73 phpI......OI...../.............s
1920 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 68 70 2b 13 00 rc/Composer/Json/JsonFile.php+..
1940 00 d7 eb d5 4f 2b 13 00 00 54 86 e5 ea b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d ....O+...T.........../...src/Com
1960 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 poser/Repository/CompositeReposi
1980 74 6f 72 79 2e 70 68 70 ab 05 00 00 d7 eb d5 4f ab 05 00 00 b0 3a b3 f9 b6 01 00 00 00 00 00 00 tory.php.......O.....:..........
19a0 38 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 49 6e 73 74 8...src/Composer/Repository/Inst
19c0 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 alledRepositoryInterface.php....
19e0 d7 eb d5 4f 87 00 00 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 ...O......9p........+...src/Comp
1a00 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e oser/Repository/ArrayRepository.
1a20 70 68 70 2e 09 00 00 d7 eb d5 4f 2e 09 00 00 4e a2 7f ac b6 01 00 00 00 00 00 00 2e 00 00 00 73 php.......O....N...............s
1a40 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 rc/Composer/Repository/PlatformR
1a60 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a9 04 00 00 d7 eb d5 4f a9 04 00 00 88 3f 2b 0d b6 01 00 epository.php.......O.....?+....
1a80 00 00 00 00 00 39 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 .....9...src/Composer/Repository
1aa0 2f 49 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 2e 70 /InstalledFilesystemRepository.p
1ac0 68 70 a3 00 00 00 d7 eb d5 4f a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 hp.......O....V.._........*...sr
1ae0 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 52 65 70 6f 73 69 c/Composer/Repository/PearReposi
1b00 74 6f 72 79 2e 70 68 70 16 24 00 00 d7 eb d5 4f 16 24 00 00 e0 28 80 50 b6 01 00 00 00 00 00 00 tory.php.$.....O.$...(.P........
1b20 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 63 73 2f )...src/Composer/Repository/Vcs/
1b40 53 76 6e 44 72 69 76 65 72 2e 70 68 70 71 10 00 00 d7 eb d5 4f 71 10 00 00 c5 c5 b2 b4 b6 01 00 SvnDriver.phpq......Oq..........
1b60 00 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 .....)...src/Composer/Repository
1b80 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 2e 70 68 70 6b 10 00 00 d7 eb d5 4f 6b 10 00 00 75 cc /Vcs/GitDriver.phpk......Ok...u.
1ba0 42 24 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 B$........2...src/Composer/Repos
1bc0 69 74 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 itory/Vcs/VcsDriverInterface.php
1be0 43 02 00 00 d7 eb d5 4f 43 02 00 00 f9 46 c4 fc b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f C......OC....F..........2...src/
1c00 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 74 42 69 74 62 75 Composer/Repository/Vcs/GitBitbu
1c20 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 93 0c 00 00 d7 eb d5 4f 93 0c 00 00 58 71 64 47 b6 01 cketDriver.php.......O....XqdG..
1c40 00 00 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 ......)...src/Composer/Repositor
1c60 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 04 05 00 00 d7 eb d5 4f 04 05 00 00 c8 y/Vcs/VcsDriver.php.......O.....
1c80 18 96 f6 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 52 65 70 6f ...........(...src/Composer/Repo
1ca0 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 5d 0d 00 00 d7 eb d5 4f 5d sitory/Vcs/HgDriver.php]......O]
1cc0 0d 00 00 bf b2 46 85 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 .....F.........,...src/Composer/
1ce0 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 a3 Repository/Vcs/GitHubDriver.php.
1d00 17 00 00 d7 eb d5 4f a3 17 00 00 aa 7b 26 f5 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 ......O.....{&.........1...src/C
1d20 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 42 69 74 62 75 63 6b omposer/Repository/Vcs/HgBitbuck
1d40 65 74 44 72 69 76 65 72 2e 70 68 70 4e 0c 00 00 d7 eb d5 4f 4e 0c 00 00 48 8c 45 2f b6 01 00 00 etDriver.phpN......ON...H.E/....
1d60 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 72 79 2f ........src/Composer/Repository/
1d80 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 23 0d 00 00 d7 eb d5 4f 23 0d ComposerRepository.php#......O#.
1da0 00 00 4e 6b d2 78 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ..Nk.x........-...src/Composer/R
1dc0 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 70 70 epository/RepositoryManager.phpp
1de0 07 00 00 d7 eb d5 4f 70 07 00 00 f1 a5 e7 79 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 ......Op......y......../...src/C
1e00 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 72 79 49 6e 74 omposer/Repository/RepositoryInt
1e20 65 72 66 61 63 65 2e 70 68 70 6d 01 00 00 d7 eb d5 4f 6d 01 00 00 7e 60 a6 32 b6 01 00 00 00 00 erface.phpm......Om...~`.2......
1e40 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 63 ..)...src/Composer/Repository/Vc
1e60 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0c 17 00 00 d7 eb d5 4f 0c 17 00 00 84 7f 6b 24 b6 sRepository.php.......O......k$.
1e80 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......7...src/Composer/Reposito
1ea0 72 79 2f 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 2e 70 ry/WritableRepositoryInterface.p
1ec0 68 70 5b 01 00 00 d7 eb d5 4f 5b 01 00 00 74 4d 02 d5 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 hp[......O[...tM..........0...sr
1ee0 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d c/Composer/Repository/Filesystem
1f00 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 89 04 00 00 d7 eb d5 4f 89 04 00 00 17 88 9d 4d b6 01 Repository.php.......O.......M..
1f20 00 00 00 00 00 00 39 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 ......9...src/Composer/Repositor
1f40 79 2f 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e y/NotifiableRepositoryInterface.
1f60 70 68 70 e3 00 00 00 d7 eb d5 4f e3 00 00 00 c5 d0 53 27 b6 01 00 00 00 00 00 00 2d 00 00 00 73 php.......O......S'........-...s
1f80 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 61 63 6b 61 67 65 52 65 rc/Composer/Repository/PackageRe
1fa0 70 6f 73 69 74 6f 72 79 2e 70 68 70 15 02 00 00 d7 eb d5 4f 15 02 00 00 82 f3 73 3e b6 01 00 00 pository.php.......O......s>....
1fc0 00 00 00 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 ....4...src/Composer/Repository/
1fe0 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 db 00 00 00 InstalledArrayRepository.php....
2000 d7 eb d5 4f db 00 00 00 7e 8e 24 d8 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 ...O....~.$.............src/Comp
2020 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 29 39 00 00 d7 eb d5 4f 29 39 00 00 da 68 oser/Installer.php)9.....O)9...h
2040 64 63 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 41 75 74 6f 6c dc........+...src/Composer/Autol
2060 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 b2 25 00 00 d7 eb d5 oad/AutoloadGenerator.php.%.....
2080 4f b2 25 00 00 77 96 58 d5 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 O.%..w.X.........+...src/Compose
20a0 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 r/Autoload/ClassMapGenerator.php
20c0 2c 07 00 00 d7 eb d5 4f 2c 07 00 00 c0 1a e2 6b b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f ,......O,......k........+...src/
20e0 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 4d 61 6e 61 Composer/Downloader/DownloadMana
2100 67 65 72 2e 70 68 70 0b 0e 00 00 d7 eb d5 4f 0b 0e 00 00 5e 03 ea 86 b6 01 00 00 00 00 00 00 2a ger.php.......O....^...........*
2120 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 46 69 6c 65 44 ...src/Composer/Downloader/FileD
2140 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 ce 09 00 00 d7 eb d5 4f ce 09 00 00 4a 42 32 ca b6 01 00 ownloader.php.......O....JB2....
2160 00 00 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 .....(...src/Composer/Downloader
2180 2f 48 67 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 a5 05 00 00 d7 eb d5 4f a5 05 00 00 f2 6a 85 /HgDownloader.php.......O.....j.
21a0 a0 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 6f 77 6e 6c 6f .........*...src/Composer/Downlo
21c0 61 64 65 72 2f 50 65 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 4f 01 00 00 d7 eb d5 4f 4f ader/PearDownloader.phpO......OO
21e0 01 00 00 51 a8 ea 83 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...Q...........-...src/Composer/
2200 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 72 2e 70 68 70 Downloader/ArchiveDownloader.php
2220 9a 06 00 00 d7 eb d5 4f 9a 06 00 00 4e ed 2f eb b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f .......O....N./........./...src/
2240 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 65 72 49 6e Composer/Downloader/DownloaderIn
2260 74 65 72 66 61 63 65 2e 70 68 70 8f 01 00 00 d7 eb d5 4f 8f 01 00 00 74 80 69 74 b6 01 00 00 00 terface.php.......O....t.it.....
2280 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 2f 50 ...*...src/Composer/Downloader/P
22a0 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e5 00 00 00 d7 eb d5 4f e5 00 00 00 de c9 1f harDownloader.php.......O.......
22c0 e7 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 6f 77 6e 6c 6f .............src/Composer/Downlo
22e0 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 64 00 00 00 d7 ader/TransportException.phpd....
2300 eb d5 4f 64 00 00 00 47 c9 87 89 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..Od...G...........)...src/Compo
2320 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 ser/Downloader/ZipDownloader.php
2340 e0 07 00 00 d7 eb d5 4f e0 07 00 00 f6 76 6e eb b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f .......O.....vn.........)...src/
2360 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 Composer/Downloader/SvnDownloade
2380 72 2e 70 68 70 59 05 00 00 d7 eb d5 4f 59 05 00 00 d2 91 bb 04 b6 01 00 00 00 00 00 00 29 00 00 r.phpY......OY...............)..
23a0 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 56 63 73 44 6f 77 6e .src/Composer/Downloader/VcsDown
23c0 6c 6f 61 64 65 72 2e 70 68 70 5b 08 00 00 d7 eb d5 4f 5b 08 00 00 a3 31 8c 4c b6 01 00 00 00 00 loader.php[......O[....1.L......
23e0 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 64 65 72 2f 54 61 ..)...src/Composer/Downloader/Ta
2400 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e3 00 00 00 d7 eb d5 4f e3 00 00 00 cd 92 58 3f b6 rDownloader.php.......O......X?.
2420 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 64 .......)...src/Composer/Download
2440 65 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 bd 12 00 00 d7 eb d5 4f bd 12 00 00 er/GitDownloader.php.......O....
2460 9b 7f 77 ee 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 41 75 74 ..w.........%...src/Composer/Aut
2480 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 ab 15 00 00 d7 eb d5 4f ab 15 00 oload/ClassLoader.php.......O...
24a0 00 d5 73 fc e2 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 ..s..............res/composer-sc
24c0 68 65 6d 61 2e 6a 73 6f 6e 83 2b 00 00 d7 eb d5 4f 83 2b 00 00 19 c3 95 61 b6 01 00 00 00 00 00 hema.json.+.....O.+.....a.......
24e0 00 18 00 00 00 72 65 73 2f 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 58 09 00 .....res/spdx-identifier.jsonX..
2500 00 d7 eb d5 4f 58 09 00 00 8c 66 e7 cc b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d ....OX....f..............src/Com
2520 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 00 24 00 00 d7 eb d5 4f poser/IO/hiddeninput.exe.$.....O
2540 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .$.....v........<...vendor/symfo
2560 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
2580 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 2e 2d 00 00 d7 eb d5 4f 2e 2d 00 00 c2 37 91 c2 cess/Process.php.-.....O.-...7..
25a0 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 70 72 6f 63 65 ........H...vendor/symfony/proce
25c0 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 50 68 70 ss/Symfony/Component/Process/Php
25e0 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 44 03 00 00 d7 eb d5 4f 44 03 00 00 ExecutableFinder.phpD......OD...
2600 fb dc e5 31 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 ...1........E...vendor/symfony/p
2620 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
2640 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 db 04 00 00 d7 eb d5 4f db 04 00 /ExecutableFinder.php.......O...
2660 00 93 79 f1 6d 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 ..y.m........O...vendor/symfony/
2680 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
26a0 73 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 70 s/Exception/RuntimeException.php
26c0 98 00 00 00 d7 eb d5 4f 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 .......O.......:........U...vend
26e0 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
2700 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 65 73 73 46 61 nent/Process/Exception/ProcessFa
2720 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a2 02 00 00 d7 eb d5 4f a2 02 00 00 d2 3a 2f iledException.php.......O.....:/
2740 fc b6 01 00 00 00 00 00 00 51 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 .........Q...vendor/symfony/proc
2760 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
2780 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 65 2e 70 68 70 66 00 ception/ExceptionInterface.phpf.
27a0 00 00 d7 eb d5 4f 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 .....Of...].>T........?...vendor
27c0 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 65 /symfony/process/Symfony/Compone
27e0 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 df 02 00 00 d7 eb d5 nt/Process/PhpProcess.php.......
2800 4f df 02 00 00 ed 5a e2 ae b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 O.....Z..........C...vendor/symf
2820 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 2f 50 72 ony/process/Symfony/Component/Pr
2840 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 1b 06 00 00 d7 eb d5 4f ocess/ProcessBuilder.php.......O
2860 1b 06 00 00 f9 d9 7b 51 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ......{Q........K...vendor/symfo
2880 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
28a0 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 da sole/Helper/HelperInterface.php.
28c0 00 00 00 d7 eb d5 4f da 00 00 00 98 43 e5 17 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f ......O.....C..........H...vendo
28e0 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
2900 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 2e ent/Console/Helper/DialogHelper.
2920 70 68 70 ec 05 00 00 d7 eb d5 4f ec 05 00 00 31 be 47 8a b6 01 00 00 00 00 00 00 4b 00 00 00 76 php.......O....1.G.........K...v
2940 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
2960 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 mponent/Console/Helper/Formatter
2980 48 65 6c 70 65 72 2e 70 68 70 9f 04 00 00 d7 eb d5 4f 9f 04 00 00 f5 fe 15 54 b6 01 00 00 00 00 Helper.php.......O.......T......
29a0 00 00 45 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 ..E...vendor/symfony/console/Sym
29c0 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 2f 48 65 fony/Component/Console/Helper/He
29e0 6c 70 65 72 53 65 74 2e 70 68 70 d3 03 00 00 d7 eb d5 4f d3 03 00 00 98 5e 39 74 b6 01 00 00 00 lperSet.php.......O.....^9t.....
2a00 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 53 79 ...B...vendor/symfony/console/Sy
2a20 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 2f 48 mfony/Component/Console/Helper/H
2a40 65 6c 70 65 72 2e 70 68 70 39 01 00 00 d7 eb d5 4f 39 01 00 00 8b fa a9 8a b6 01 00 00 00 00 00 elper.php9......O9..............
2a60 00 57 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 .W...vendor/symfony/console/Symf
2a80 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 6d 61 74 74 65 72 2f ony/Component/Console/Formatter/
2aa0 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 6e 01 00 00 OutputFormatterInterface.phpn...
2ac0 d7 eb d5 4f 6e 01 00 00 f6 85 ee 10 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 ...On...............S...vendor/s
2ae0 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
2b00 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
2b20 65 72 53 74 79 6c 65 2e 70 68 70 29 0c 00 00 d7 eb d5 4f 29 0c 00 00 35 5d 6e d2 b6 01 00 00 00 erStyle.php)......O)...5]n......
2b40 00 00 00 4e 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 ...N...vendor/symfony/console/Sy
2b60 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 6d 61 74 74 65 mfony/Component/Console/Formatte
2b80 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 9b 0a 00 00 d7 eb d5 4f 9b 0a 00 r/OutputFormatter.php.......O...
2ba0 00 c8 f4 17 0d b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .............X...vendor/symfony/
2bc0 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 6c console/Symfony/Component/Consol
2be0 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 53 74 79 6c 65 e/Formatter/OutputFormatterStyle
2c00 53 74 61 63 6b 2e 70 68 70 cb 03 00 00 d7 eb d5 4f cb 03 00 00 11 ab 2b 52 b6 01 00 00 00 00 00 Stack.php.......O......+R.......
2c20 00 5c 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 .\...vendor/symfony/console/Symf
2c40 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 6d 61 74 74 65 72 2f ony/Component/Console/Formatter/
2c60 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 2e 70 68 OutputFormatterStyleInterface.ph
2c80 70 64 01 00 00 d7 eb d5 4f 64 01 00 00 03 42 23 b2 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e pd......Od....B#.........H...ven
2ca0 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
2cc0 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 72 67 75 6d 65 6e onent/Console/Input/InputArgumen
2ce0 74 2e 70 68 70 9a 05 00 00 d7 eb d5 4f 9a 05 00 00 fd 77 4f 6d b6 01 00 00 00 00 00 00 40 00 00 t.php.......O.....wOm........@..
2d00 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 2f .vendor/symfony/console/Symfony/
2d20 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 2e 70 68 Component/Console/Input/Input.ph
2d40 70 83 09 00 00 d7 eb d5 4f 83 09 00 00 7c 3e 7f 5c b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e p.......O....|>.\........J...ven
2d60 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
2d80 6f 6e 65 6e 74 2f 43 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 onent/Console/Input/InputDefinit
2da0 69 6f 6e 2e 70 68 70 d0 25 00 00 d7 eb d5 4f d0 25 00 00 bf ef 64 a0 b6 01 00 00 00 00 00 00 46 ion.php.%.....O.%....d.........F
2dc0 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 6e ...vendor/symfony/console/Symfon
2de0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 53 74 72 69 6e 67 y/Component/Console/Input/String
2e00 49 6e 70 75 74 2e 70 68 70 92 05 00 00 d7 eb d5 4f 92 05 00 00 8b 63 80 95 b6 01 00 00 00 00 00 Input.php.......O.....c.........
2e20 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 6c 65 2f 53 79 6d 66 .F...vendor/symfony/console/Symf
2e40 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 75 74 2f 49 6e 70 75 ony/Component/Console/Input/Inpu
2e60 74 4f 70 74 69 6f 6e 2e 70 68 70 1a 0b 00 00 d7 eb d5 4f 1a 0b 00 00 58 a5 aa 58 b6 01 00 00 00 tOption.php.......O....X..X.....
2e80 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 65 2f 53 79 ...I...vendor/symfony/console/Sy
2ea0 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 75 74 2f 49 6e mfony/Component/Console/Input/In
2ec0 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b7 02 00 00 d7 eb d5 4f b7 02 00 00 7e 25 73 9a putInterface.php.......O....~%s.
2ee0 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........E...vendor/symfony/conso
2f00 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
2f20 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 d1 08 00 00 d7 eb d5 4f d1 08 00 00 da 5f af ut/ArrayInput.php.......O....._.
2f40 c3 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 6f 6e 73 .........D...vendor/symfony/cons
2f60 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 6e ole/Symfony/Component/Console/In
2f80 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 c4 10 00 00 d7 eb d5 4f c4 10 00 00 f6 34 b3 put/ArgvInput.php.......O.....4.
2fa0 cc 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 6f 6e 73 .........D...vendor/symfony/cons
2fc0 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 43 6f ole/Symfony/Component/Console/Co
2fe0 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 25 1c 00 00 d7 eb d5 4f 25 1c 00 00 30 dc 95 mmand/Command.php%......O%...0..
3000 87 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 .........H...vendor/symfony/cons
3020 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 43 6f ole/Symfony/Component/Console/Co
3040 6d 6d 61 6e 64 2f 4c 69 73 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 3d 07 00 00 d7 eb d5 4f 3d 07 00 mmand/ListCommand.php=......O=..
3060 00 5c f7 17 15 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 .\...........H...vendor/symfony/
3080 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 6c console/Symfony/Component/Consol
30a0 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 68 70 e2 05 00 00 d7 eb d5 e/Command/HelpCommand.php.......
30c0 4f e2 05 00 00 dd fc 1b ff b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 O................I...vendor/symf
30e0 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
3100 6e 73 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 7a 04 nsole/Tester/CommandTester.phpz.
3120 00 00 d7 eb d5 4f 7a 04 00 00 78 55 d7 f0 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 .....Oz...xU..........M...vendor
3140 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 65 /symfony/console/Symfony/Compone
3160 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 nt/Console/Tester/ApplicationTes
3180 74 65 72 2e 70 68 70 f2 04 00 00 d7 eb d5 4f f2 04 00 00 2a a3 b4 04 b6 01 00 00 00 00 00 00 3a ter.php.......O....*...........:
31a0 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 6e ...vendor/symfony/console/Symfon
31c0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 e4 0d 00 y/Component/Console/Shell.php...
31e0 00 d7 eb d5 4f e4 0d 00 00 d4 ac eb c1 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f ....O................@...vendor/
3200 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 65 6e symfony/console/Symfony/Componen
3220 74 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 43 47 00 00 d7 eb d5 t/Console/Application.phpCG.....
3240 4f 43 47 00 00 4a 8b fe 4a b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 OCG..J..J........R...vendor/symf
3260 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
3280 6e 73 6f 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 nsole/Output/ConsoleOutputInterf
32a0 61 63 65 2e 70 68 70 15 01 00 00 d7 eb d5 4f 15 01 00 00 0e 8d c3 06 b6 01 00 00 00 00 00 00 42 ace.php.......O................B
32c0 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 6e ...vendor/symfony/console/Symfon
32e0 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 75 y/Component/Console/Output/Outpu
3300 74 2e 70 68 70 75 07 00 00 d7 eb d5 4f 75 07 00 00 b6 88 1b 6b b6 01 00 00 00 00 00 00 46 00 00 t.phpu......Ou......k........F..
3320 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 2f .vendor/symfony/console/Symfony/
3340 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 4e 75 6c 6c 4f 75 74 Component/Console/Output/NullOut
3360 70 75 74 2e 70 68 70 a0 00 00 00 d7 eb d5 4f a0 00 00 00 ac 2d a5 06 b6 01 00 00 00 00 00 00 4b put.php.......O.....-..........K
3380 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 6e ...vendor/symfony/console/Symfon
33a0 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 75 y/Component/Console/Output/Outpu
33c0 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ae 02 00 00 d7 eb d5 4f ae 02 00 00 8f da 2d a7 b6 01 tInterface.php.......O......-...
33e0 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 6c 65 ......H...vendor/symfony/console
3400 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 75 /Symfony/Component/Console/Outpu
3420 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 96 04 00 00 d7 eb d5 4f 96 04 00 00 78 cf t/StreamOutput.php.......O....x.
3440 1e 5f 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 6f 6e ._........I...vendor/symfony/con
3460 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 4f sole/Symfony/Component/Console/O
3480 75 74 70 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 2e 70 68 70 74 05 00 00 d7 eb d5 4f 74 utput/ConsoleOutput.phpt......Ot
34a0 05 00 00 28 c8 3e 54 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 ...(.>T........R...vendor/symfon
34c0 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
34e0 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f r/Iterator/FilenameFilterIterato
3500 72 2e 70 68 70 6f 02 00 00 d7 eb d5 4f 6f 02 00 00 8a f8 91 ff b6 01 00 00 00 00 00 00 4c 00 00 r.phpo......Oo...............L..
3520 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
3540 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 6f 72 74 61 62 6c omponent/Finder/Iterator/Sortabl
3560 65 49 74 65 72 61 74 6f 72 2e 70 68 70 dc 05 00 00 d7 eb d5 4f dc 05 00 00 20 48 a0 3a b6 01 00 eIterator.php.......O.....H.:...
3580 00 00 00 00 00 53 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 .....S...vendor/symfony/finder/S
35a0 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 6f 72 ymfony/Component/Finder/Iterator
35c0 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 2f 02 00 00 /DateRangeFilterIterator.php/...
35e0 d7 eb d5 4f 2f 02 00 00 d8 b4 1b 08 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 ...O/...............V...vendor/s
3600 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/
3620 46 69 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 Finder/Iterator/RecursiveDirecto
3640 72 79 49 74 65 72 61 74 6f 72 2e 70 68 70 37 02 00 00 d7 eb d5 4f 37 02 00 00 01 50 88 37 b6 01 ryIterator.php7......O7....P.7..
3660 00 00 00 00 00 00 50 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 ......P...vendor/symfony/finder/
3680 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 6f Symfony/Component/Finder/Iterato
36a0 72 2f 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 d7 eb r/CustomFilterIterator.php\.....
36c0 d5 4f 5c 02 00 00 49 ca 33 b2 b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .O\...I.3.........T...vendor/sym
36e0 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
3700 6e 64 65 72 2f 49 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 nder/Iterator/DepthRangeFilterIt
3720 65 72 61 74 6f 72 2e 70 68 70 68 03 00 00 d7 eb d5 4f 68 03 00 00 9b 55 6f 1a b6 01 00 00 00 00 erator.phph......Oh....Uo.......
3740 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 6d 66 ..R...vendor/symfony/finder/Symf
3760 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 69 ony/Component/Finder/Iterator/Fi
3780 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 37 02 00 00 d7 eb d5 4f leTypeFilterIterator.php7......O
37a0 37 02 00 00 04 68 5f 8e b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 7....h_.........S...vendor/symfo
37c0 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 6e 64 ny/finder/Symfony/Component/Find
37e0 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 er/Iterator/SizeRangeFilterItera
3800 74 6f 72 2e 70 68 70 07 02 00 00 d7 eb d5 4f 07 02 00 00 dd 8d de f3 b6 01 00 00 00 00 00 00 56 tor.php.......O................V
3820 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 79 ...vendor/symfony/finder/Symfony
3840 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 4d 75 6c 74 69 /Component/Finder/Iterator/Multi
3860 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a7 03 00 00 d7 eb d5 plePcreFilterIterator.php.......
3880 4f a7 03 00 00 32 2e b3 2a b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 O....2..*........Z...vendor/symf
38a0 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 6e ony/finder/Symfony/Component/Fin
38c0 64 65 72 2f 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 der/Iterator/ExcludeDirectoryFil
38e0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 86 02 00 00 d7 eb d5 4f 86 02 00 00 c7 4c 79 49 b6 terIterator.php.......O.....LyI.
3900 01 00 00 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 .......U...vendor/symfony/finder
3920 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
3940 6f 72 2f 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 or/FilecontentFilterIterator.php
3960 6b 03 00 00 d7 eb d5 4f 6b 03 00 00 7b 71 be 39 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 k......Ok...{q.9........N...vend
3980 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
39a0 65 6e 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 ent/Finder/Comparator/NumberComp
39c0 61 72 61 74 6f 72 2e 70 68 70 79 03 00 00 d7 eb d5 4f 79 03 00 00 22 60 14 db b6 01 00 00 00 00 arator.phpy......Oy..."`........
39e0 00 00 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 ..H...vendor/symfony/finder/Symf
3a00 6f 6e 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 ony/Component/Finder/Comparator/
3a20 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 88 03 00 00 d7 eb d5 4f 88 03 00 00 3e 9a 5d 58 b6 01 Comparator.php.......O....>.]X..
3a40 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 66 69 6e 64 65 72 2f ......L...vendor/symfony/finder/
3a60 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 43 6f 6d 70 61 72 61 Symfony/Component/Finder/Compara
3a80 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 00 00 d7 eb d5 4f 26 03 tor/DateComparator.php&......O&.
3aa0 00 00 e9 68 64 b1 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...hd.........7...vendor/symfony
3ac0 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
3ae0 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 d7 eb d5 4f 0d 05 00 00 c3 62 b5 af b6 01 00 00 00 00 00 /Glob.php.......O.....b.........
3b00 00 3e 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 .>...vendor/symfony/finder/Symfo
3b20 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e ny/Component/Finder/SplFileInfo.
3b40 70 68 70 ee 01 00 00 d7 eb d5 4f ee 01 00 00 a9 2e 1e 2d b6 01 00 00 00 00 00 00 39 00 00 00 76 php.......O.......-........9...v
3b60 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
3b80 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 3c 19 00 00 d7 eb d5 4f ponent/Finder/Finder.php<......O
3ba0 3c 19 00 00 8b ef 3a b7 b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f <.....:.........4...vendor/seld/
3bc0 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 65 66 jsonlint/src/Seld/JsonLint/Undef
3be0 69 6e 65 64 2e 70 68 70 3e 00 00 00 d7 eb d5 4f 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 00 00 ined.php>......O>....q..........
3c00 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 65 6c 5...vendor/seld/jsonlint/src/Sel
3c20 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 83 26 00 00 d7 eb d5 d/JsonLint/JsonParser.php.&.....
3c40 4f 83 26 00 00 bb d0 e1 7e b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 O.&.....~........0...vendor/seld
3c60 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 78 65 /jsonlint/src/Seld/JsonLint/Lexe
3c80 72 2e 70 68 70 91 10 00 00 d7 eb d5 4f 91 10 00 00 38 49 09 44 b6 01 00 00 00 00 00 00 3b 00 00 r.php.......O....8I.D........;..
3ca0 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 2f 4a .vendor/seld/jsonlint/src/Seld/J
3cc0 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 1d 01 00 00 sonLint/ParsingException.php....
3ce0 d7 eb d5 4f 1d 01 00 00 fd bb 3a cb b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 6a ...O......:.........=...vendor/j
3d00 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 73 6f ustinrainbow/json-schema/src/Jso
3d20 6e 53 63 68 65 6d 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 5b 01 00 00 d7 eb d5 4f 5b 01 00 nSchema/Validator.php[......O[..
3d40 00 38 11 97 f6 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 .8...........I...vendor/justinra
3d60 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 65 6d 61 inbow/json-schema/src/JsonSchema
3d80 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 78 06 00 00 d7 eb /Constraints/Undefined.phpx.....
3da0 d5 4f 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 .Ox...h..q........J...vendor/jus
3dc0 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 73 6f 6e 53 tinrainbow/json-schema/src/JsonS
3de0 63 68 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 chema/Constraints/Constraint.php
3e00 15 0a 00 00 d7 eb d5 4f 15 0a 00 00 3e 1d e3 18 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 .......O....>...........F...vend
3e20 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 73 72 63 or/justinrainbow/json-schema/src
3e40 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 61 2e 70 /JsonSchema/Constraints/Schema.p
3e60 68 70 d4 01 00 00 d7 eb d5 4f d4 01 00 00 b9 3a 66 4d b6 01 00 00 00 00 00 00 44 00 00 00 76 65 hp.......O.....:fM........D...ve
3e80 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 73 ndor/justinrainbow/json-schema/s
3ea0 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 70 rc/JsonSchema/Constraints/Type.p
3ec0 68 70 d4 05 00 00 d7 eb d5 4f d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 hp.......O......+F........J...ve
3ee0 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 73 ndor/justinrainbow/json-schema/s
3f00 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 43 6f 6c 6c 65 63 rc/JsonSchema/Constraints/Collec
3f20 74 69 6f 6e 2e 70 68 70 56 08 00 00 d7 eb d5 4f 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 00 00 00 tion.phpV......OV....<..........
3f40 46 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 F...vendor/justinrainbow/json-sc
3f60 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 2f hema/src/JsonSchema/Constraints/
3f80 53 74 72 69 6e 67 2e 70 68 70 98 02 00 00 d7 eb d5 4f 98 02 00 00 b4 f5 97 6b b6 01 00 00 00 00 String.php.......O.......k......
3fa0 00 00 46 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 ..F...vendor/justinrainbow/json-
3fc0 73 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 schema/src/JsonSchema/Constraint
3fe0 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 00 00 d7 eb d5 4f 94 07 00 00 63 e8 5a fb b6 01 00 00 s/Object.php.......O....c.Z.....
4000 00 00 00 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 ....S...vendor/justinrainbow/jso
4020 6e 2d 73 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 n-schema/src/JsonSchema/Constrai
4040 6e 74 73 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 d7 nts/ConstraintInterface.php$....
4060 eb d5 4f 24 01 00 00 03 67 d6 ec b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 ..O$....g..........D...vendor/ju
4080 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 73 6f 6e stinrainbow/json-schema/src/Json
40a0 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e 75 6d 2e 70 68 70 86 01 00 00 d7 Schema/Constraints/Enum.php.....
40c0 eb d5 4f 86 01 00 00 24 28 6d be b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 ..O....$(m.........F...vendor/ju
40e0 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 73 6f 6e stinrainbow/json-schema/src/Json
4100 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 Schema/Constraints/Number.phpW..
4120 00 d7 eb d5 4f 57 02 00 00 2e 31 f2 e7 b6 01 00 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f 72 2f ....OW....1..............vendor/
4140 61 75 74 6f 6c 6f 61 64 2e 70 68 70 1a 02 00 00 d7 eb d5 4f 1a 02 00 00 9c b0 61 5b b6 01 00 00 autoload.php.......O......a[....
4160 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 61 64 ....'...vendor/composer/autoload
4180 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 d4 01 00 00 d7 eb d5 4f d4 01 00 00 81 7d 31 f1 b6 _namespaces.php.......O.....}1..
41a0 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 6f 6c .......%...vendor/composer/autol
41c0 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 5a 00 00 00 d7 eb d5 4f 5a 00 00 00 eb a6 e1 96 oad_classmap.phpZ......OZ.......
41e0 b6 01 00 00 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 ............vendor/composer/Clas
4200 73 4c 6f 61 64 65 72 2e 70 68 70 43 09 00 00 d7 eb d5 4f 43 09 00 00 7b 2e 16 45 b6 01 00 00 00 sLoader.phpC......OC...{..E.....
4220 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 de 00 00 00 d7 eb d5 4f de 00 00 00 3e .......bin/composer.......O....>
4240 87 ae 0f b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 00 d7 eb d5 4f 33 04 ...............LICENSE3......O3.
4260 00 00 0b 81 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 ....2.........<?php............f
4280 75 6e 63 74 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 unction.includeIfExists($file).{
42a0 0a 69 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 .if.(file_exists($file)).{.retur
42c0 6e 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 n.include.$file;.}.}..if.((!$loa
42e0 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__.'/
4300 2e 2e 2f 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 ../vendor/autoload.php')).&&.(!$
4320 6c 6f 61 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 loader.=.includeIfExists(__DIR__
4340 2e 27 2f 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 64 .'/../../../autoload.php'))).{.d
4360 69 65 28 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 ie('You.must.set.up.the.project.
4380 64 65 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 dependencies,.run.the.following.
43a0 63 6f 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 20 68 74 74 commands:'.PHP_EOL..'curl.-s.htt
43c0 70 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 p://getcomposer.org/installer.|.
43e0 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
4400 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c .install'.PHP_EOL);.}..return.$l
4420 6f 61 64 65 72 3b 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 oader;.<?php............namespac
4440 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 e.Composer\Util;.....class.Files
4460 79 73 74 65 6d 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 ystem.{.public.function.removeDi
4480 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 rectory($directory).{.if.(!is_di
44a0 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a r($directory)).{.return.true;.}.
44c0 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
44e0 4e 5f 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 N_BUILD')).{.$cmd.=.sprintf('rmd
4500 69 72 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 ir./S./Q.%s',.escapeshellarg(rea
4520 6c 70 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 lpath($directory)));.}.else.{.$c
4540 6d 64 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 md.=.sprintf('rm.-rf.%s',.escape
4560 73 68 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 shellarg($directory));.}..$resul
4580 74 20 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 t.=.$this->getProcess()->execute
45a0 28 24 63 6d 64 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 ($cmd).===.0;....clearstatcache(
45c0 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 5f 64 69 72 28 24 64 );..return.$result.&&.!is_dir($d
45e0 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 20 65 6e irectory);.}..public.function.en
4600 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 79 29 0a sureDirectoryExists($directory).
4620 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 69 66 20 {.if.(!is_dir($directory)).{.if.
4640 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 68 72 6f (file_exists($directory)).{.thro
4660 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 65 63 74 w.new.\RuntimeException(.$direct
4680 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 65 63 74 ory.'.exists.and.is.not.a.direct
46a0 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 ory.'.);.}.if.(!mkdir($directory
46c0 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 52 75 6e 74 ,.0777,.true)).{.throw.new.\Runt
46e0 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 6f 65 73 20 imeException(.$directory.'.does.
4700 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 72 65 61 74 not.exist.and.could.not.be.creat
4720 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ed.'.);.}.}.}..........public.fu
4740 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 6f 6d 2c 20 24 nction.findShortestPath($from,.$
4760 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 0a 69 66 20 28 to,.$directories.=.false).{.if.(
4780 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 6d 29 20 7c 7c !$this->isAbsolutePath($from).||
47a0 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 29 29 20 7b 0a .!$this->isAbsolutePath($to)).{.
47c0 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
47e0 69 6f 6e 28 27 66 72 6f 6d 20 61 6e 64 20 74 6f 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 ion('from.and.to.must.be.absolut
4800 65 20 70 61 74 68 73 27 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 72 74 e.paths');.}..$from.=.lcfirst(rt
4820 72 69 6d 28 73 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 rim(strtr($from,.'\\',.'/'),.'/'
4840 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 72 74 72 69 6d 28 73 74 72 74 72 28 24 74 ));.$to.=.lcfirst(rtrim(strtr($t
4860 6f 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 o,.'\\',.'/'),.'/'));..if.($dire
4880 63 74 6f 72 69 65 73 29 20 7b 0a 24 66 72 6f 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 ctories).{.$from..=.'/dummy_file
48a0 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 ';.}..if.(dirname($from).===.dir
48c0 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d name($to)).{.return.'./'.basenam
48e0 65 28 24 74 6f 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 e($to);.}..$commonPath.=.$to;.wh
4900 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 ile.(strpos($from,.$commonPath).
4920 21 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 !==.0.&&.'/'.!==.$commonPath.&&.
4940 21 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 !preg_match('{^[a-z]:/?$}i',.$co
4960 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 mmonPath).&&.'.'.!==.$commonPath
4980 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 ).{.$commonPath.=.strtr(dirname(
49a0 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 $commonPath),.'\\',.'/');.}..if.
49c0 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 (0.!==.strpos($from,.$commonPath
49e0 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 ).||.'/'.===.$commonPath.||.'.'.
4a00 3d 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 ===.$commonPath).{.return.$to;.}
4a20 0a 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 ..$commonPath.=.rtrim($commonPat
4a40 68 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 h,.'/')...'/';.$sourcePathDepth.
4a60 3d 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 =.substr_count(substr($from,.str
4a80 6c 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 len($commonPath)),.'/');.$common
4aa0 50 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 PathCode.=.str_repeat('../',.$so
4ac0 75 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 urcePathDepth);..return.($common
4ae0 50 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 PathCode...substr($to,.strlen($c
4b00 6f 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 ommonPath))).?:.'./';.}.........
4b20 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
4b40 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.=
4b60 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
4b80 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
4ba0 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
4bc0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 66 72 6f 6d 20 61 6e 64 20 74 6f 20 6d ArgumentException('from.and.to.m
4be0 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 27 29 3b 0a 7d 0a 0a 24 66 72 6f ust.be.absolute.paths');.}..$fro
4c00 6d 20 3d 20 6c 63 66 69 72 73 74 28 73 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 m.=.lcfirst(strtr($from,.'\\',.'
4c20 2f 27 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 73 74 72 74 72 28 24 74 6f 2c 20 27 /'));.$to.=.lcfirst(strtr($to,.'
4c40 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d 20 3d 3d 3d 20 24 74 6f 29 20 \\',.'/'));..if.($from.===.$to).
4c60 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3f 20 27 5f 5f 44 49 52 5f 5f {.return.$directories.?.'__DIR__
4c80 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d '.:.'__FILE__';.}..$commonPath.=
4ca0 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d .$to;.while.(strpos($from,.$comm
4cc0 6f 6e 50 61 74 68 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e onPath).!==.0.&&.'/'.!==.$common
4ce0 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 Path.&&.!preg_match('{^[a-z]:/?$
4d00 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f }i',.$commonPath).&&.'.'.!==.$co
4d20 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 mmonPath).{.$commonPath.=.strtr(
4d40 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 dirname($commonPath),.'\\',.'/')
4d60 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f ;.}..if.(0.!==.strpos($from,.$co
4d80 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 mmonPath).||.'/'.===.$commonPath
4da0 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 .||.'.'.===.$commonPath).{.retur
4dc0 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d n.var_export($to,.true);.}..$com
4de0 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 2c 20 27 2f 27 monPath.=.rtrim($commonPath,.'/'
4e00 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 )...'/';.if.(strpos($to,.$from.'
4e20 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 /').===.0).{.return.'__DIR__...'
4e40 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 .var_export(substr($to,.strlen($
4e60 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 from)),.true);.}.$sourcePathDept
4e80 68 20 3d 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 h.=.substr_count(substr($from,.s
4ea0 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 trlen($commonPath)),.'/').+.$dir
4ec0 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f ectories;.$commonPathCode.=.str_
4ee0 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d 65 28 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 repeat('dirname(',.$sourcePathDe
4f00 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 pth).'__DIR__'.str_repeat(')',.$
4f20 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 sourcePathDepth);.$relTarget.=.s
4f40 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b ubstr($to,.strlen($commonPath));
4f60 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c ..return.$commonPathCode...(strl
4f80 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 20 3f 20 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 en($relTarget).?.'.'...var_expor
4fa0 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 72 67 65 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b t('/'...$relTarget,.true).:.'');
4fc0 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 73 41 62 73 6f .}........public.function.isAbso
4fe0 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 lutePath($path).{.return.substr(
5000 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 $path,.0,.1).===.'/'.||.substr($
5020 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 path,.1,.1).===.':';.}..protecte
5040 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 0a 72 65 74 75 72 6e d.function.getProcess().{.return
5060 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 0a 3c 3f 70 68 70 0a .new.ProcessExecutor;.}.}.<?php.
5080 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
50a0 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a il;.......class.ErrorHandler.{..
50c0 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 69 6f 6e ..........public.static.function
50e0 20 68 61 6e 64 6c 65 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c 65 2c .handle($level,.$message,.$file,
5100 20 24 6c 69 6e 65 29 0a 7b 0a 0a 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 .$line).{...if.(!error_reporting
5120 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 ()).{.return;.}..if.(ini_get('xd
5140 65 62 75 67 2e 73 63 72 65 61 6d 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e ebug.scream')).{.$message..=."\n
5160 5c 6e 57 61 72 6e 69 6e 67 3a 20 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 65 61 \nWarning:.You.have.xdebug.screa
5180 6d 20 65 6e 61 62 6c 65 64 2c 20 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 m.enabled,.the.warning.above.may
51a0 20 62 65 22 2e 0a 22 5c 6e 61 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 73 73 .be".."\na.legitimately.suppress
51c0 65 64 20 65 72 72 6f 72 20 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 70 6f ed.error.that.you.were.not.suppo
51e0 73 65 64 20 74 6f 20 73 65 65 2e 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f sed.to.see.";.}..throw.new.\Erro
5200 72 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 rException($message,.0,.$level,.
5220 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 $file,.$line);.}.......public.st
5240 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 atic.function.register().{.set_e
5260 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 rror_handler(array(__CLASS__,.'h
5280 61 6e 64 6c 65 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 andle'));.}.}.<?php............n
52a0 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 0a 0a 66 69 amespace.Composer\Util;.......fi
52c0 6e 61 6c 20 63 6c 61 73 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b nal.class.StreamContextFactory.{
52e0 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 6f 6e 20 .........public.static.function.
5300 67 65 74 43 6f 6e 74 65 78 74 28 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 getContext(array.$defaultOptions
5320 20 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 .=.array(),.array.$defaultParams
5340 20 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 .=.array()).{.$options.=.array('
5360 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 http'.=>.array());....if.(isset(
5380 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 69 73 73 65 74 $_SERVER['HTTP_PROXY']).||.isset
53a0 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 ($_SERVER['http_proxy'])).{...$p
53c0 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 69 73 73 65 74 28 24 5f 53 45 52 56 45 52 5b roxy.=.parse_url(isset($_SERVER[
53e0 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 'http_proxy']).?.$_SERVER['http_
5400 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d proxy'].:.$_SERVER['HTTP_PROXY']
5420 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f );.}..if.(!empty($proxy)).{.$pro
5440 78 79 55 52 4c 20 3d 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 xyURL.=.(isset($proxy['scheme'])
5460 20 3f 20 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 20 3a 20 27 27 29 20 2e 20 27 3a 2f 2f .?.$proxy['scheme'].:.'')...'://
5480 27 3b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f ';.$proxyURL..=.isset($proxy['ho
54a0 73 74 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 st']).?.$proxy['host'].:.'';..if
54c0 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 .(isset($proxy['port'])).{.$prox
54e0 79 55 52 4c 20 2e 3d 20 22 3a 22 20 2e 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 yURL..=.":"...$proxy['port'];.}.
5500 65 6c 73 65 69 66 20 28 27 68 74 74 70 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f elseif.('http://'.==.substr($pro
5520 78 79 55 52 4c 2c 20 30 2c 20 37 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 xyURL,.0,.7)).{.$proxyURL..=.":8
5540 30 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 0";.}.elseif.('https://'.==.subs
5560 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c tr($proxyURL,.0,.8)).{.$proxyURL
5580 20 2e 3d 20 22 3a 34 34 33 22 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 ..=.":443";.}....$proxyURL.=.str
55a0 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 _replace(array('http://',.'https
55c0 3a 2f 2f 27 29 2c 20 61 72 72 61 79 28 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 ://'),.array('tcp://',.'ssl://')
55e0 2c 20 24 70 72 6f 78 79 55 52 4c 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 ,.$proxyURL);..if.(0.===.strpos(
5600 24 70 72 6f 78 79 55 52 4c 2c 20 27 73 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e $proxyURL,.'ssl:').&&.!extension
5620 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 _loaded('openssl')).{.throw.new.
5640 5c 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 65 6e 61 62 \RuntimeException('You.must.enab
5660 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 le.the.openssl.extension.to.use.
5680 61 20 70 72 6f 78 79 20 6f 76 65 72 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e a.proxy.over.https');.}..$option
56a0 73 5b 27 68 74 74 70 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 78 79 27 20 3d 3e 20 24 70 s['http'].=.array(.'proxy'.=>.$p
56c0 72 6f 78 79 55 52 4c 2c 0a 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 74 72 roxyURL,.'request_fulluri'.=>.tr
56e0 75 65 2c 0a 29 3b 0a 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 ue,.);..if.(isset($proxy['user']
5700 29 29 20 7b 0a 24 61 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 )).{.$auth.=.$proxy['user'];.if.
5720 28 69 73 73 65 74 28 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 (isset($proxy['pass'])).{.$auth.
5740 2e 3d 20 27 3a 27 20 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 .=.':'...$proxy['pass'];.}.$auth
5760 20 3d 20 62 61 73 65 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 .=.base64_encode($auth);....if.(
5780 69 73 73 65 74 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 isset($defaultOptions['http']['h
57a0 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 eader'])).{.$defaultOptions['htt
57c0 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a p']['header']..=."Proxy-Authoriz
57e0 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 5c 72 5c 6e 22 3b 0a 7d 20 65 6c 73 ation:.Basic.{$auth}\r\n";.}.els
5800 65 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 20 3d e.{.$options['http']['header'].=
5820 20 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
5840 75 74 68 7d 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 uth}\r\n";.}.}.}..$options.=.arr
5860 61 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 ay_replace_recursive($options,.$
5880 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f defaultOptions);..return.stream_
58a0 63 6f 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 context_create($options,.$defaul
58c0 74 50 61 72 61 6d 73 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 tParams);.}.}.<?php............n
58e0 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 75 73 65 20 43 6f 6d amespace.Composer\Util;..use.Com
5900 70 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 0a 63 6c 61 73 73 poser\IO\IOInterface;......class
5920 20 53 76 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 72 65 64 65 6e 74 69 61 6c 73 .Svn.{....protected.$credentials
5940 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 41 75 74 68 3b 0a 0a 0a 0a 0a 70 72 ;.....protected.$hasAuth;.....pr
5960 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b otected.$io;.....protected.$url;
5980 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 .....protected.$cacheCredentials
59a0 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b .=.true;.....protected.$process;
59c0 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
59e0 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 ct($url,.IOInterface.$io,.Proces
5a00 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 0a 7b 0a 24 74 68 sExecutor.$process.=.null).{.$th
5a20 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b is->url.=.$url;.$this->io.=.$io;
5a40 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 6e 65 .$this->process.=.$process.?:.ne
5a60 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a w.ProcessExecutor;.}............
5a80 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 24 63 6f 6d ....public.function.execute($com
5aa0 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 24 70 61 74 68 20 3d mand,.$url,.$cwd.=.null,.$path.=
5ac0 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 .null,.$verbose.=.false).{.$svnC
5ae0 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d ommand.=.$this->getCommand($comm
5b00 61 6e 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c and,.$url,.$path);.$output.=.nul
5b20 6c 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 l;.$io.=.$this->io;.$handler.=.f
5b40 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 unction.($type,.$buffer).use.(&$
5b60 6f 75 74 70 75 74 2c 20 24 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 output,.$io,.$verbose).{.if.($ty
5b80 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6f 75 74 70 75 pe.!==.'out').{.return;.}.$outpu
5ba0 74 20 2e 3d 20 24 62 75 66 66 65 72 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 t..=.$buffer;.if.($verbose).{.$i
5bc0 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 o->write($buffer,.false);.}.};.$
5be0 73 74 61 74 75 73 20 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 status.=.$this->process->execute
5c00 28 24 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 ($svnCommand,.$handler,.$cwd);.i
5c20 66 20 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 f.(0.===.$status).{.return.$outp
5c40 75 74 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 ut;.}..if.(empty($output)).{.$ou
5c60 74 70 75 74 20 3d 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 tput.=.$this->process->getErrorO
5c80 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 utput();.}....if.(false.===.stri
5ca0 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 pos($output,.'Could.not.authenti
5cc0 63 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c cate.to.server:')).{.throw.new.\
5ce0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 RuntimeException($output);.}....
5d00 69 66 20 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 if.(!$this->io->isInteractive())
5d20 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 0a .{.throw.new.\RuntimeException(.
5d40 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 'can.not.ask.for.authentication.
5d60 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 28 27 2e 24 6f 75 74 70 in.non.interactive.mode.('.$outp
5d80 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 20 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 ut.')'.);.}........if.(!$this->h
5da0 61 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 asAuth()).{.$this->doAuthDance()
5dc0 3b 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 ;....return.$this->execute($comm
5de0 61 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 and,.$url,.$cwd,.$path,.$verbose
5e00 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
5e20 6e 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 n(.'wrong.credentials.provided.(
5e40 27 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 '.$output.')'.);.}.......protect
5e60 65 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 ed.function.doAuthDance().{.$thi
5e80 73 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 s->io->write("The.Subversion.ser
5ea0 76 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 ver.({$this->url}).requested.cre
5ec0 64 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 dentials:");..$this->hasAuth.=.t
5ee0 72 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 rue;.$this->credentials['usernam
5f00 65 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 e'].=.$this->io->ask("Username:.
5f20 22 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 ");.$this->credentials['password
5f40 27 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 '].=.$this->io->askAndHideAnswer
5f60 28 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 ("Password:.");..$this->cacheCre
5f80 64 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 dentials.=.$this->io->askConfirm
5fa0 61 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 ation("Should.Subversion.cache.t
5fc0 68 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 hese.credentials?.(yes/no).",.tr
5fe0 75 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 ue);..return.$this;.}...........
6000 70 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 protected.function.getCommand($c
6020 6d 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 md,.$url,.$path.=.null).{.$cmd.=
6040 20 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 .sprintf('%s.%s%s.%s',.$cmd,.'--
6060 6e 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 non-interactive.',.$this->getCre
6080 64 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 dentialString(),.escapeshellarg(
60a0 24 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 $url).);..if.($path).{.$cmd..=.'
60c0 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 7d 0a 0a 72 .'...escapeshellarg($path);.}..r
60e0 65 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 eturn.$cmd;.}.........protected.
6100 66 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 function.getCredentialString().{
6120 0a 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 .if.(!$this->hasAuth()).{.return
6140 20 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 .'';.}..return.sprintf(.'.%s--us
6160 65 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 ername.%s.--password.%s.',.$this
6180 2d 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 ->getAuthCache(),.escapeshellarg
61a0 28 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 ($this->getUsername()),.escapesh
61c0 65 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 ellarg($this->getPassword()).);.
61e0 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 67 65 74 50 }........protected.function.getP
6200 61 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 assword().{.if.($this->credentia
6220 6c 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 ls.===.null).{.throw.new.\LogicE
6240 78 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 xception("No.svn.auth.detected."
6260 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 72 65 64 65 6e );.}..return.isset($this->creden
6280 74 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 tials['password']).?.$this->cred
62a0 65 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 entials['password'].:.'';.}.....
62c0 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 55 73 65 72 6e 61 6d ...protected.function.getUsernam
62e0 65 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 e().{.if.($this->credentials.===
6300 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 63 65 70 74 69 .null).{.throw.new.\LogicExcepti
6320 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 3b 0a 7d 0a 0a on("No.svn.auth.detected.");.}..
6340 72 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 return.$this->credentials['usern
6360 61 6d 65 27 5d 3b 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 ame'];.}.........protected.funct
6380 69 6f 6e 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 ion.hasAuth().{.if.(null.!==.$th
63a0 69 73 2d 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 is->hasAuth).{.return.$this->has
63c0 41 75 74 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 Auth;.}..$uri.=.parse_url($this-
63e0 3e 75 72 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 >url);.if.(empty($uri['user'])).
6400 7b 0a 72 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 {.return.$this->hasAuth.=.false;
6420 0a 7d 0a 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 .}..$this->credentials['username
6440 27 5d 20 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 '].=.$uri['user'];.if.(!empty($u
6460 72 69 5b 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 ri['pass'])).{.$this->credential
6480 73 5b 27 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 s['password'].=.$uri['pass'];.}.
64a0 0a 72 65 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 .return.$this->hasAuth.=.true;.}
64c0 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 41 75 74 .......protected.function.getAut
64e0 68 43 61 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 hCache().{.return.$this->cacheCr
6500 65 64 65 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 edentials.?.''.:.'--no-auth-cach
6520 65 20 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 e.';.}.}.<?php............namesp
6540 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ace.Composer\Util;..use.Composer
6560 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 6e 74 \Composer;.use.Composer\IO\IOInt
6580 65 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 erface;.use.Composer\Downloader\
65a0 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 TransportException;.....class.Re
65c0 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 moteFilesystem.{.private.$io;.pr
65e0 69 76 61 74 65 20 24 66 69 72 73 74 43 61 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 ivate.$firstCall;.private.$bytes
6600 4d 61 78 3b 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 Max;.private.$originUrl;.private
6620 20 24 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 .$fileUrl;.private.$fileName;.pr
6640 69 76 61 74 65 20 24 72 65 73 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 ivate.$result;.private.$progress
6660 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 ;.private.$lastProgress;.......p
6680 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 49 4f 49 6e 74 ublic.function.__construct(IOInt
66a0 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d erface.$io).{.$this->io.=.$io;.}
66c0 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 70 79 ............public.function.copy
66e0 28 24 6f 72 69 67 69 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 ($originUrl,.$fileUrl,.$fileName
6700 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 67 65 74 ,.$progress.=.true).{.$this->get
6720 28 24 6f 72 69 67 69 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 ($originUrl,.$fileUrl,.$fileName
6740 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 ,.$progress);..return.$this->res
6760 75 6c 74 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 ult;.}...........public.function
6780 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 .getContents($originUrl,.$fileUr
67a0 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 67 65 l,.$progress.=.true).{.$this->ge
67c0 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 6e 75 6c 6c 2c 20 24 70 t($originUrl,.$fileUrl,.null,.$p
67e0 72 6f 67 72 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b rogress);..return.$this->result;
6800 0a 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 .}............protected.function
6820 20 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 66 69 6c 65 .get($originUrl,.$fileUrl,.$file
6840 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b Name.=.null,.$progress.=.true).{
6860 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 72 65 73 .$this->bytesMax.=.0;.$this->res
6880 75 6c 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 ult.=.null;.$this->originUrl.=.$
68a0 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
68c0 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
68e0 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;.
6900 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 24 6f 70 $this->lastProgress.=.null;..$op
6920 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 28 tions.=.$this->getOptionsForUrl(
6940 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 $originUrl);.$ctx.=.StreamContex
6960 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 6f 70 74 69 6f 6e 73 2c 20 61 tFactory::getContext($options,.a
6980 72 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 rray('notification'.=>.array($th
69a0 69 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 is,.'callbackGet')));..if.($this
69c0 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 ->progress).{.$this->io->write("
69e0 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 63 6f 6e 6e 65 63 ....Downloading:.<comment>connec
6a00 74 69 6f 6e 2e 2e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 tion...</comment>",.false);.}..$
6a20 72 65 73 75 6c 74 20 3d 20 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c result.=.@file_get_contents($fil
6a40 65 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 eUrl,.false,.$ctx);....if.(!empt
6a60 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 26 26 20 70 y($http_response_header[0]).&&.p
6a80 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 34 30 34 7d 69 27 2c 20 24 68 reg_match('{^HTTP/\S+.404}i',.$h
6aa0 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 72 65 73 75 ttp_response_header[0])).{.$resu
6ac0 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 lt.=.false;.}....if.(false.!==.$
6ae0 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 62 result.&&.extension_loaded('zlib
6b00 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 3d ').&&.substr($fileUrl,.0,.4).===
6b20 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 65 .'http').{.$decode.=.false;.fore
6b40 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 68 ach.($http_response_header.as.$h
6b60 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 65 eader).{.if.(preg_match('{^conte
6b80 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 65 nt-encoding:.*gzip.*$}i',.$heade
6ba0 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 0a r)).{.$decode.=.true;.continue;.
6bc0 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 27 }.elseif.(preg_match('{^HTTP/}i'
6be0 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 7d ,.$header)).{.$decode.=.false;.}
6c00 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 63 .}..if.($decode).{.if.(version_c
6c20 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 3d ompare(PHP_VERSION,.'5.4.0',.'>=
6c40 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 73 ')).{.$result.=.zlib_decode($res
6c60 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 5f ult);.}.else.{...$result.=.file_
6c80 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 61 get_contents('compress.zlib://da
6ca0 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 65 ta:application/octet-stream;base
6cc0 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 0a 64,'.base64_encode($result));.}.
6ce0 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 69 }.}..if.($this->progress).{.$thi
6d00 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 6e s->io->overwrite("....Downloadin
6d20 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 0a g:.<comment>100%</comment>");.}.
6d40 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 6c ...if.(false.!==.$result.&&.null
6d60 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 42 6f 6f .!==.$fileName).{.$result.=.(Boo
6d80 6c 65 61 6e 29 20 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 lean).@file_put_contents($fileNa
6da0 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 me,.$result);.if.(false.===.$res
6dc0 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 70 74 ult).{.throw.new.TransportExcept
6de0 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 ion('The."'.$fileUrl.'".file.cou
6e00 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 ld.not.be.written.to.'.$fileName
6e20 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 );.}.}....if.(null.===.$this->re
6e40 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 3b sult).{.$this->result.=.$result;
6e60 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 .}..if.(false.===.$this->result)
6e80 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 70 74 69 6f 6e 28 .{.throw.new.TransportException(
6ea0 27 54 68 65 20 22 27 2e 24 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 'The."'.$fileUrl.'".file.could.n
6ec0 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ot.be.downloaded');.}.}.........
6ee0 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 6c 62 61 63 6b 47 65 ...protected.function.callbackGe
6f00 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 65 72 69 74 79 2c 20 t($notificationCode,.$severity,.
6f20 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 62 79 74 65 73 54 72 $message,.$messageCode,.$bytesTr
6f40 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 77 69 74 63 68 20 28 ansferred,.$bytesMax).{.switch.(
6f60 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 20 53 54 52 45 41 4d $notificationCode).{.case.STREAM
6f80 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 45 3a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 _NOTIFY_FAILURE:.throw.new.Trans
6fa0 70 6f 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 portException('The."'.$this->fil
6fc0 65 55 72 6c 2e 27 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 eUrl.'".file.could.not.be.downlo
6fe0 61 64 65 64 20 28 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 aded.('.trim($message).')',.$mes
7000 73 61 67 65 43 6f 64 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e sageCode);.break;..case.STREAM_N
7020 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 31 20 3d 3d 3d OTIFY_AUTH_REQUIRED:.if.(401.===
7040 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 2d 3e 69 6f 2d .$messageCode).{.if.(!$this->io-
7060 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 65 20 3d 20 22 >isInteractive()).{.$message.=."
7080 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 27 20 55 52 4c The.'"...$this->fileUrl..."'.URL
70a0 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 59 6f 75 20 6d .required.authentication.\nYou.m
70c0 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 65 20 63 6f 6e ust.be.using.the.interactive.con
70e0 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 45 78 63 65 70 sole";..throw.new.TransportExcep
7100 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 69 73 2d 3e 69 tion($message,.401);.}..$this->i
7120 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 61 74 69 6f 6e o->overwrite('....Authentication
7140 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 6c 28 24 74 68 .required.(<info>'.parse_url($th
7160 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 27 3c 2f 69 6e is->fileUrl,.PHP_URL_HOST).'</in
7180 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 3e 69 6f 2d 3e fo>):');.$username.=.$this->io->
71a0 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 61 73 73 77 6f ask('......Username:.');.$passwo
71c0 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 6e 73 77 65 72 rd.=.$this->io->askAndHideAnswer
71e0 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 2d 3e 69 6f 2d ('......Password:.');.$this->io-
7200 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 >setAuthorization($this->originU
7220 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 0a 0a 24 74 68 69 rl,.$username,.$password);..$thi
7240 73 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 s->get($this->originUrl,.$this->
7260 66 69 6c 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d fileUrl,.$this->fileName,.$this-
7280 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 >progress);.}.break;..case.STREA
72a0 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 73 M_NOTIFY_FILE_SIZE_IS:.if.($this
72c0 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 2d ->bytesMax.<.$bytesMax).{.$this-
72e0 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b 0a >bytesMax.=.$bytesMax;.}.break;.
7300 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 66 .case.STREAM_NOTIFY_PROGRESS:.if
7320 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e .($this->bytesMax.>.0.&&.$this->
7340 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a 69 progress).{.$progression.=.0;..i
7360 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 72 f.($this->bytesMax.>.0).{.$progr
7380 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 ession.=.round($bytesTransferred
73a0 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 66 ./.$this->bytesMax.*.100);.}..if
73c0 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 70 .((0.===.$progression.%.5).&&.$p
73e0 72 6f 67 72 65 73 73 69 6f 6e 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 rogression.!==.$this->lastProgre
7400 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f ss).{.$this->lastProgress.=.$pro
7420 67 72 65 73 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 gression;.$this->io->overwrite("
7440 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 72 ....Downloading:.<comment>$progr
7460 65 73 73 69 6f 6e 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a ession%</comment>",.false);.}.}.
7480 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f break;..default:.break;.}.}..pro
74a0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c tected.function.getOptionsForUrl
74c0 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b ($originUrl).{.$options['http'][
74e0 27 68 65 61 64 65 72 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 22 55 73 65 72 2d 41 67 65 6e 74 'header'].=.sprintf(."User-Agent
7500 3a 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 :.Composer/%s.(%s;.%s;.PHP.%s.%s
7520 2e 25 73 29 5c 72 5c 6e 22 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 .%s)\r\n",.Composer::VERSION,.ph
7540 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 72 27 29 2c 0a 50 48 p_uname('s'),.php_uname('r'),.PH
7560 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 P_MAJOR_VERSION,.PHP_MINOR_VERSI
7580 4f 4e 2c 0a 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e 0a 29 3b 0a 69 66 20 28 65 ON,.PHP_RELEASE_VERSION.);.if.(e
75a0 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 6f 70 74 69 xtension_loaded('zlib')).{.$opti
75c0 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 27 41 63 63 65 70 74 ons['http']['header']..=.'Accept
75e0 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 27 2e 22 5c 72 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 -Encoding:.gzip'."\r\n";.}..if.(
7600 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 $this->io->hasAuthorization($ori
7620 67 69 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 ginUrl)).{.$auth.=.$this->io->ge
7640 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 24 61 75 74 tAuthorization($originUrl);.$aut
7660 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 65 72 hStr.=.base64_encode($auth['user
7680 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 27 5d name']...':'...$auth['password']
76a0 29 3b 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 20 2e 3d );.$options['http']['header']..=
76c0 20 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 24 61 75 74 68 53 74 72 5c ."Authorization:.Basic.$authStr\
76e0 72 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f r\n";.}..return.$options;.}.}.<?
7700 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
7720 72 5c 55 74 69 6c 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 50 r\Util;..use.Symfony\Component\P
7740 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 rocess\Process;.....class.Proces
7760 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 63 20 24 74 69 sExecutor.{.protected.static.$ti
7780 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 70 74 75 72 65 meout.=.300;..protected.$capture
77a0 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 70 75 74 3b 0a Output;.protected.$errorOutput;.
77c0 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 65 63 75 74 ..........public.function.execut
77e0 65 28 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 e($command,.&$output.=.null,.$cw
7800 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 d.=.null).{.$this->captureOutput
7820 20 3d 20 63 6f 75 6e 74 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e 20 31 3b 0a 24 .=.count(func_get_args()).>.1;.$
7840 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 6f 63 65 this->errorOutput.=.null;.$proce
7860 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 63 77 64 2c ss.=.new.Process($command,.$cwd,
7880 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 .null,.null,.static::getTimeout(
78a0 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 ));..$callback.=.is_callable($ou
78c0 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 tput).?.$output.:.array($this,.'
78e0 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 outputHandler');.$process->run($
7900 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 callback);..if.($this->captureOu
7920 74 70 75 74 20 26 26 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b tput.&&.!is_callable($output)).{
7940 0a 24 6f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 .$output.=.$process->getOutput()
7960 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 ;.}..$this->errorOutput.=.$proce
7980 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 ss->getErrorOutput();..return.$p
79a0 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 rocess->getExitCode();.}..public
79c0 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a .function.splitLines($output).{.
79e0 72 65 74 75 72 6e 20 28 28 73 74 72 69 6e 67 29 20 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 return.((string).$output.===.'')
7a00 20 3f 20 61 72 72 61 79 28 29 20 3a 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d .?.array().:.preg_split('{\r?\n}
7a20 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ',.$output);.}.......public.func
7a40 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getErrorOutput().{.return.$
7a60 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e this->errorOutput;.}..public.fun
7a80 63 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 ction.outputHandler($type,.$buff
7aa0 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 er).{.if.($this->captureOutput).
7ac0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 65 63 68 6f 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 {.return;.}..echo.$buffer;.}..pu
7ae0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 blic.static.function.getTimeout(
7b00 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a ).{.return.static::$timeout;.}..
7b20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 public.static.function.setTimeou
7b40 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d t($timeout).{.static::$timeout.=
7b60 20 24 74 69 6d 65 6f 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 .$timeout;.}.}.<?php............
7b80 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 75 73 65 20 43 6f namespace.Composer\Util;..use.Co
7ba0 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 0a 63 6c 61 mposer\Json\JsonFile;........cla
7bc0 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 72 ss.SpdxLicenseIdentifier.{....pr
7be0 69 76 61 74 65 20 24 69 64 65 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ivate.$identifiers;..public.func
7c00 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 6e 69 74 tion.__construct().{.$this->init
7c20 49 64 65 6e 74 69 66 69 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Identifiers();.}........public.f
7c40 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 20 unction.validate($license).{.if.
7c60 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 (is_array($license)).{.$count.=.
7c80 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d 20 count($license);.if.($count.!==.
7ca0 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 73 count(array_filter($license,.'is
7cc0 5f 73 74 72 69 6e 67 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 _string'))).{.throw.new.\Invalid
7ce0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 69 ArgumentException('Array.of.stri
7d00 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 63 ngs.expected.');.}.$license.=.$c
7d20 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 24 ount.>.1.?.'('.implode('.or.',.$
7d40 6c 69 63 65 6e 73 65 29 2e 27 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 6c license).')'.:.(string).reset($l
7d60 69 63 65 6e 73 65 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 6e icense);.}.if.(!is_string($licen
7d80 73 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 se)).{.throw.new.\InvalidArgumen
7da0 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 74 tException(sprintf(.'Array.or.St
7dc0 72 69 6e 67 20 65 78 70 65 63 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 79 ring.expected,.%s.given.',.getty
7de0 70 65 28 24 6c 69 63 65 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 pe($license).));.}..return.$this
7e00 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 ->isValidLicenseString($license)
7e20 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 69 6e 69 74 49 64 65 ;.}.....private.function.initIde
7e40 6e 74 69 66 69 65 72 73 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f ntifiers().{.$jsonFile.=.new.Jso
7e60 6e 46 69 6c 65 28 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 73 nFile(__DIR__...'/../../../res/s
7e80 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 64 pdx-identifier.json');.$this->id
7ea0 65 6e 74 69 66 69 65 72 73 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d entifiers.=.$jsonFile->read();.}
7ec0 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
7ee0 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a icenseIdentifier($identifier).{.
7f00 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 return.in_array($identifier,.$th
7f20 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 is->identifiers);.}........priva
7f40 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 te.function.isValidLicenseString
7f60 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 70 ($license).{.$tokens.=.array(.'p
7f80 6f 27 20 3d 3e 20 27 5c 28 27 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 3d o'.=>.'\(',.'pc'.=>.'\)',.'op'.=
7fa0 3e 20 27 28 3f 3a 6f 72 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f 4e >.'(?:or|and)',.'lix'.=>.'(?:NON
7fc0 45 7c 4e 4f 41 53 53 45 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 6e E|NOASSERTION)',.'lir'.=>.'Licen
7fe0 73 65 52 65 66 2d 5c 64 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 2d seRef-\d+',.'lic'.=>.'[-+_.a-zA-
8000 5a 30 2d 39 5d 7b 33 2c 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 3d Z0-9]{3,}',.'ws'.=>.'\s+',.'_'.=
8020 3e 20 27 2e 27 2c 0a 29 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 >.'.',.);..$next.=.function.().u
8040 73 65 20 28 24 6c 69 63 65 6e 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 20 se.($license,.$tokens).{.static.
8060 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 72 $offset.=.0;..if.($offset.>=.str
8080 6c 65 6e 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a len($license)).{.return.null;.}.
80a0 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 74 .foreach.($tokens.as.$name.=>.$t
80c0 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 5f oken).{.if.(false.===.$r.=.preg_
80e0 6d 61 74 63 68 28 27 7b 27 20 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 6e match('{'...$token...'}',.$licen
8100 73 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 se,.$matches,.PREG_OFFSET_CAPTUR
8120 45 2c 20 24 6f 66 66 73 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d E,.$offset)).{.throw.new.\Runtim
8140 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 73 eException('Pattern.for.token.%s
8160 20 66 61 69 6c 65 64 20 28 72 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 3b .failed.(regex.error).',.$name);
8180 0a 7d 0a 69 66 20 28 24 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 .}.if.($r.===.0).{.continue;.}.i
81a0 66 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 7b f.($matches[0][1].!==.$offset).{
81c0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 24 .continue;.}.$offset.+=.strlen($
81e0 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6e matches[0][0]);..return.array($n
8200 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e ame,.$matches[0][0]);.}..throw.n
8220 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 74 ew.\RuntimeException('At.least.t
8240 68 65 20 6c 61 73 74 20 70 61 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c 20 he.last.pattern.needs.to.match,.
8260 62 75 74 20 69 74 20 64 69 64 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 73 but.it.did.not.(dot-match-all.is
8280 20 6d 69 73 73 69 6e 67 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 72 .missing?).');.};..$open.=.0;.$r
82a0 65 71 75 69 72 65 20 3d 20 31 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 equire.=.1;.$lastop.=.null;..whi
82c0 6c 65 20 28 6c 69 73 74 28 24 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 78 le.(list($token,.$string).=.$nex
82e0 74 28 29 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 70 t()).{.switch.($token).{.case.'p
8300 6f 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 o':.if.($open.||.!$require).{.re
8320 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a turn.false;.}.$open.=.1;.break;.
8340 63 61 73 65 20 27 70 63 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 72 case.'pc':.if.($open.!==.1.||.$r
8360 65 71 75 69 72 65 20 7c 7c 20 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c equire.||.!$lastop).{.return.fal
8380 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 70 se;.}.$open.=.2;.break;.case.'op
83a0 27 3a 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 74 ':.if.($require.||.!$open).{.ret
83c0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 20 urn.false;.}.$lastop.||.$lastop.
83e0 3d 20 24 73 74 72 69 6e 67 3b 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 69 =.$string;.if.($lastop.!==.$stri
8400 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d ng).{.return.false;.}.$require.=
8420 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 6e .1;.break;.case.'lix':.if.($open
8440 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 61 ).{.return.false;.}.goto.lir;.ca
8460 73 65 20 27 6c 69 63 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 se.'lic':.if.(!$this->isValidLic
8480 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 enseIdentifier($string)).{.retur
84a0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 66 n.false;.}...case.'lir':.lir:.if
84c0 20 28 21 24 72 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 .(!$require).{.return.false;.}.$
84e0 72 65 71 75 69 72 65 20 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a 62 require.=.0;.break;.case.'ws':.b
8500 72 65 61 6b 3b 0a 63 61 73 65 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 65 reak;.case.'_':.return.false;.de
8520 66 61 75 6c 74 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 69 fault:.throw.new.\RuntimeExcepti
8540 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e 27 on(sprintf('Unparsed.token:.%s.'
8560 2c 20 70 72 69 6e 74 5f 72 28 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a 0a ,.print_r($token,.true)));.}.}..
8580 72 65 74 75 72 6e 20 21 28 24 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 3b return.!($open.%.2.||.$require);
85a0 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.
85c0 43 6f 6d 70 6f 73 65 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 Composer\Console;..use.Symfony\C
85e0 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 20 61 73 20 omponent\Console\Application.as.
8600 42 61 73 65 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 BaseApplication;.use.Symfony\Com
8620 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
8640 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
8660 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 53 le\Output\OutputInterface;.use.S
8680 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\
86a0 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 79 5c 43 6f 6d 70 6f ConsoleOutput;.use.Symfony\Compo
86c0 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 6f 72 nent\Console\Formatter\OutputFor
86e0 6d 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 matter;.use.Symfony\Component\Co
8700 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 53 nsole\Formatter\OutputFormatterS
8720 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 tyle;.use.Composer\Command;.use.
8740 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 Composer\Command\Helper\DialogHe
8760 6c 70 65 72 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 lper;.use.Composer\Composer;.use
8780 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 5c .Composer\Factory;.use.Composer\
87a0 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 49 4f 5c IO\IOInterface;.use.Composer\IO\
87c0 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 ConsoleIO;.use.Composer\Util\Err
87e0 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 orHandler;.........class.Applica
8800 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 tion.extends.BaseApplication.{.p
8820 72 6f 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 rotected.$composer;.protected.$i
8840 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 63 74 28 o;..public.function.__construct(
8860 29 0a 7b 0a 45 72 72 6f 72 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 29 3b 0a 70 61 ).{.ErrorHandler::register();.pa
8880 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f rent::__construct('Composer',.Co
88a0 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 mposer::VERSION);.}.....public.f
88c0 75 6e 63 74 69 6f 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 unction.run(InputInterface.$inpu
88e0 74 20 3d 20 6e 75 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 t.=.null,.OutputInterface.$outpu
8900 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 24 6f 75 74 70 75 74 t.=.null).{.if.(null.===.$output
8920 29 20 7b 0a 24 73 74 79 6c 65 73 5b 27 68 69 67 68 6c 69 67 68 74 27 5d 20 3d 20 6e 65 77 20 4f ).{.$styles['highlight'].=.new.O
8940 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 3b 0a 24 73 74 79 utputFormatterStyle('red');.$sty
8960 6c 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 les['warning'].=.new.OutputForma
8980 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 27 29 3b 0a 24 66 tterStyle('black',.'yellow');.$f
89a0 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e ormatter.=.new.OutputFormatter(n
89c0 75 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e ull,.$styles);.$output.=.new.Con
89e0 73 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 soleOutput(ConsoleOutput::VERBOS
8a00 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d ITY_NORMAL,.null,.$formatter);.}
8a20 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 ..return.parent::run($input,.$ou
8a40 74 70 75 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 64 6f 52 tput);.}.....public.function.doR
8a60 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 70 75 74 un(InputInterface.$input,.Output
8a80 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 2d 3e 69 6f 20 3d Interface.$output).{.$this->io.=
8aa0 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 .new.ConsoleIO($input,.$output,.
8ac0 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 $this->getHelperSet());..if.(ver
8ae0 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 20 27 35 2e 33 2e 32 sion_compare(PHP_VERSION,.'5.3.2
8b00 27 2c 20 27 3c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 ',.'<')).{.$output->writeln('<wa
8b20 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e 6c 79 20 6f 66 66 69 63 69 61 6c 6c 79 20 73 rning>Composer.only.officially.s
8b40 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 20 61 6e 64 20 61 62 6f 76 65 2c 20 79 6f 75 upports.PHP.5.3.2.and.above,.you
8b60 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 65 6e 63 6f 75 6e 74 65 72 20 70 72 6f 62 .will.most.likely.encounter.prob
8b80 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 50 20 27 2e 50 48 50 5f 56 45 52 53 49 4f 4e lems.with.your.PHP.'.PHP_VERSION
8ba0 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 73 74 72 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d .',.upgrading.is.strongly.recomm
8bc0 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 ended.</warning>');.}..return.pa
8be0 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a rent::doRun($input,.$output);.}.
8c00 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 72 28 ....public.function.getComposer(
8c20 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d $required.=.true).{.if.(null.===
8c40 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 74 68 69 73 2d .$this->composer).{.try.{.$this-
8c60 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 28 24 74 68 69 >composer.=.Factory::create($thi
8c80 73 2d 3e 69 6f 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 s->io);.}.catch.(\InvalidArgumen
8ca0 74 45 78 63 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 tException.$e).{.if.($required).
8cc0 7b 0a 24 74 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 {.$this->io->write($e->getMessag
8ce0 65 28 29 29 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 72 e());.exit(1);.}..return;.}.}..r
8d00 65 74 75 72 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 eturn.$this->composer;.}.....pub
8d20 6c 69 63 20 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 lic.function.getIO().{.return.$t
8d40 68 69 73 2d 3e 69 6f 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 his->io;.}.....protected.functio
8d60 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 6d 61 6e n.getDefaultCommands().{.$comman
8d80 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 64 73 28 ds.=.parent::getDefaultCommands(
8da0 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 41 62 6f );.$commands[].=.new.Command\Abo
8dc0 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 77 20 43 utCommand();.$commands[].=.new.C
8de0 6f 6d 6d 61 6e 64 5c 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e ommand\DependsCommand();.$comman
8e00 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 ds[].=.new.Command\InitCommand()
8e20 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 49 6e 73 74 ;.$commands[].=.new.Command\Inst
8e40 61 6c 6c 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 allCommand();.$commands[].=.new.
8e60 43 6f 6d 6d 61 6e 64 5c 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a Command\CreateProjectCommand();.
8e80 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 55 70 64 61 74 65 $commands[].=.new.Command\Update
8ea0 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 43 6f 6d Command();.$commands[].=.new.Com
8ec0 6d 61 6e 64 5c 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b mand\SearchCommand();.$commands[
8ee0 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 ].=.new.Command\ValidateCommand(
8f00 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 53 68 6f );.$commands[].=.new.Command\Sho
8f20 77 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 43 6f wCommand();.$commands[].=.new.Co
8f40 6d 6d 61 6e 64 5c 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 0a 69 66 20 28 27 70 68 mmand\RequireCommand();..if.('ph
8f60 61 72 3a 27 20 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 ar:'.===.substr(__FILE__,.0,.5))
8f80 20 7b 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 53 65 6c .{.$commands[].=.new.Command\Sel
8fa0 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d fUpdateCommand();.}..return.$com
8fc0 6d 61 6e 64 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 mands;.}.....protected.function.
8fe0 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 24 68 65 6c 70 65 72 53 getDefaultHelperSet().{.$helperS
9000 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 et.=.parent::getDefaultHelperSet
9020 28 29 3b 0a 0a 24 68 65 6c 70 65 72 53 65 74 2d 3e 73 65 74 28 6e 65 77 20 44 69 61 6c 6f 67 48 ();..$helperSet->set(new.DialogH
9040 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a elper());..return.$helperSet;.}.
9060 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
9080 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;.......
90a0 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.
90c0 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
90e0 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
9100 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
9120 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;.
9140 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());.}.........
9160 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
9180 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
91a0 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
91c0 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
91e0 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
9200 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
9220 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.{
9240 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 .protected.$problems;..public.fu
9260 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 72 6f 62 6c 65 nction.__construct(array.$proble
9280 6d 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 3d 20 24 70 72 6f 62 6c 65 6d ms).{.$this->problems.=.$problem
92a0 73 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 3e 63 s;..parent::__construct($this->c
92c0 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 reateMessage());.}..protected.fu
92e0 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 0a 7b 0a 24 6d 65 73 73 61 67 nction.createMessage().{.$messag
9300 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
9320 72 6f 62 6c 65 6d 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 roblems.as.$problem).{.$messages
9340 5b 5d 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 72 6f 62 6c 65 6d 3b 0a 7d 0a 0a 72 65 74 75 72 [].=.(string).$problem;.}..retur
9360 6e 20 22 5c 6e 5c 74 50 72 6f 62 6c 65 6d 73 3a 5c 6e 5c 74 5c 74 2d 20 22 2e 69 6d 70 6c 6f 64 n."\n\tProblems:\n\t\t-.".implod
9380 65 28 22 5c 6e 5c 74 5c 74 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 70 75 62 e("\n\t\t-.",.$messages);.}..pub
93a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 lic.function.getProblems().{.ret
93c0 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a urn.$this->problems;.}.}.<?php..
93e0 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
9400 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 44 65 62 75 67 endencyResolver;.....class.Debug
9420 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 Solver.extends.Solver.{.protecte
9440 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a d.function.printDecisionMap().{.
9460 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 echo."\nDecisionMap:.\n";.foreac
9480 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 h.($this->decisionMap.as.$packag
94a0 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 eId.=>.$level).{.if.($packageId.
94c0 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 ===.0).{.continue;.}.if.($level.
94e0 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f >.0).{.echo.'....+'...$this->poo
9500 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 3b l->packageById($packageId)."\n";
9520 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 .}.elseif.($level.<.0).{.echo.'.
9540 20 20 20 2d 27 20 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 ...-'...$this->pool->packageById
9560 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f ($packageId)."\n";.}.else.{.echo
9580 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 .'....?'...$this->pool->packageB
95a0 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 yId($packageId)."\n";.}.}.echo."
95c0 5c 6e 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 \n";.}..protected.function.print
95e0 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 73 69 6f 6e DecisionQueue().{.echo."Decision
9600 51 75 65 75 65 3a 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 Queue:.\n";.foreach.($this->deci
9620 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 sionQueue.as.$i.=>.$literal).{.e
9640 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 cho.'....'...$this->pool->litera
9660 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 lToString($literal)...'.'...$thi
9680 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 s->decisionQueueWhy[$i].".level.
96a0 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 ".$this->decisionMap[abs($litera
96c0 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 l)]."\n";.}.echo."\n";.}..protec
96e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 ted.function.printWatches().{.ec
9700 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ho."\nWatches:\n";.foreach.($thi
9720 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 s->watches.as.$literalId.=>.$wat
9740 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 ch).{.echo.'..'.$this->literalFr
9760 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 omId($literalId)."\n";.$queue.=.
9780 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 array(array('....',.$watch));..w
97a0 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e hile.(!empty($queue)).{.list($in
97c0 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 dent,.$watch).=.array_pop($queue
97e0 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 );..echo.$indent.$watch;..if.($w
9800 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 atch).{.echo.'.[id='.$watch->get
9820 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 Id().',watch1='.$this->literalFr
9840 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e omId($watch->watch1).',watch2='.
9860 24 74 68 69 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 $this->literalFromId($watch->wat
9880 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 ch2)."]";.}..echo."\n";..if.($wa
98a0 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 20 tch.&&.($watch->next1.==.$watch.
98c0 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 20 7b 0a 69 ||.$watch->next2.==.$watch)).{.i
98e0 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 f.($watch->next1.==.$watch).{.ec
9900 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a ho.$indent."....1.*RECURSION*";.
9920 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 20 7b }.if.($watch->next2.==.$watch).{
9940 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a .echo.$indent."....2.*RECURSION*
9960 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 ";.}.}.elseif.($watch.&&.($watch
9980 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e ->next1.||.$watch->next2)).{.$in
99a0 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 2c 20 27 32 dent.=.str_replace(array('1',.'2
99c0 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 73 68 28 24 '),.'.',.$indent);..array_push($
99e0 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 32 20 27 2c 20 24 queue,.array($indent.'....2.',.$
9a00 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 watch->next2));.array_push($queu
9a20 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 77 61 74 63 e,.array($indent.'....1.',.$watc
9a40 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a h->next1));.}.}..echo."\n";.}.}.
9a60 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
9a80 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 63 6c poser\DependencyResolver;.....cl
9aa0 61 73 73 20 52 75 6c 65 0a 7b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 ass.Rule.{.const.RULE_INTERNAL_A
9ac0 4c 4c 4f 57 5f 55 50 44 41 54 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f LLOW_UPDATE.=.1;.const.RULE_JOB_
9ae0 49 4e 53 54 41 4c 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f INSTALL.=.2;.const.RULE_JOB_REMO
9b00 56 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c VE.=.3;.const.RULE_PACKAGE_CONFL
9b20 49 43 54 20 3d 20 36 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 ICT.=.6;.const.RULE_PACKAGE_REQU
9b40 49 52 45 53 20 3d 20 37 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 IRES.=.7;.const.RULE_PACKAGE_OBS
9b60 4f 4c 45 54 45 53 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 OLETES.=.8;.const.RULE_INSTALLED
9b80 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 55 _PACKAGE_OBSOLETES.=.9;.const.RU
9ba0 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 LE_PACKAGE_SAME_NAME.=.10;.const
9bc0 20 52 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 .RULE_PACKAGE_IMPLICIT_OBSOLETES
9be0 20 3d 20 31 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b 0a .=.11;.const.RULE_LEARNED.=.12;.
9c00 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a 0a const.RULE_PACKAGE_ALIAS.=.13;..
9c20 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 protected.$pool;..protected.$dis
9c40 61 62 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 74 65 72 61 6c 73 3b 0a 70 72 6f 74 abled;.protected.$literals;.prot
9c60 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 70 72 6f ected.$type;.protected.$id;..pro
9c80 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
9ca0 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(
9cc0 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
9ce0 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).
9d00 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($
9d20 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
9d40 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
9d60 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
9d80 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
9da0 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.=.
9dc0 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
9de0 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))
9e00 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
9e20 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;.
9e40 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).{.
9e60 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
9e80 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;.
9ea0 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
9ec0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c turn.$this->job;.}..........publ
9ee0 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b ic.function.equals(Rule.$rule).{
9f00 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 6c 65 2d 3e .if.($this->ruleHash.!==.$rule->
9f20 72 75 6c 65 48 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 ruleHash).{.return.false;.}..if.
9f40 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 (count($this->literals).!=.count
9f60 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 ($rule->literals)).{.return.fals
9f80 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 e;.}..for.($i.=.0,.$n.=.count($t
9fa0 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b his->literals);.$i.<.$n;.$i++).{
9fc0 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 .if.($this->literals[$i].!==.$ru
9fe0 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 le->literals[$i]).{.return.false
a000 3b 0a 7d 0a 7d 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 75 ;.}.}..return.true;.}..public.fu
a020 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 nction.setType($type).{.$this->t
a040 79 70 65 20 3d 20 24 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 ype.=.$type;.}..public.function.
a060 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a getType().{.return.$this->type;.
a080 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 0a 7b 0a 24 }..public.function.disable().{.$
a0a0 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 this->disabled.=.true;.}..public
a0c0 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 .function.enable().{.$this->disa
a0e0 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e bled.=.false;.}..public.function
a100 20 69 73 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 .isDisabled().{.return.$this->di
a120 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 69 73 45 6e 61 sabled;.}..public.function.isEna
a140 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 bled().{.return.!$this->disabled
a160 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 ;.}..public.function.getLiterals
a180 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a ().{.return.$this->literals;.}..
a1a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a public.function.isAssertion().{.
a1c0 72 65 74 75 72 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 return.1.===.count($this->litera
a1e0 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 48 75 6d 61 6e 52 ls);.}..public.function.toHumanR
a200 65 61 64 61 62 6c 65 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 27 27 eadableString().{.$ruleText.=.''
a220 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 24 69 ;.foreach.($this->literals.as.$i
a240 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 0a 24 .=>.$literal).{.if.($i.!=.0).{.$
a260 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 3d 20 ruleText..=.'|';.}.$ruleText..=.
a280 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 6e 67 28 24 6c 69 $this->pool->literalToString($li
a2a0 74 65 72 61 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e teral);.}..switch.($this->reason
a2c0 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c ).{.case.self::RULE_INTERNAL_ALL
a2e0 4f 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 0a 63 61 OW_UPDATE:.return.$ruleText;..ca
a300 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 72 65 74 75 72 se.self::RULE_JOB_INSTALL:.retur
a320 6e 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 n."Install.command.rule.($ruleTe
a340 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 xt)";..case.self::RULE_JOB_REMOV
a360 45 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 E:.return."Remove.command.rule.(
a380 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 $ruleText)";..case.self::RULE_PA
a3a0 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 3d 20 24 74 68 69 CKAGE_CONFLICT:.$package1.=.$thi
a3c0 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 74 68 69 73 2d s->pool->literalToPackage($this-
a3e0 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d 20 24 74 68 69 73 >literals[0]);.$package2.=.$this
a400 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 74 68 69 73 2d 3e ->pool->literalToPackage($this->
a420 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 27 50 61 63 6b 61 67 65 20 22 literals[1]);..return.'Package."
a440 27 2e 24 70 61 63 6b 61 67 65 31 2e 27 22 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 22 27 '.$package1.'".conflicts.with."'
a460 2e 24 70 61 63 6b 61 67 65 32 2e 27 22 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 .$package2.'"';..case.self::RULE
a480 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.=.$
a4a0 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.=
a4c0 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
a4e0 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
a500 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
a520 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
a540 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[].=.$
a560 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
a580 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 74 65 78 74 20 3d 20 27 50 61 63 6b 61 67 65 20 22 27 2e 24 teral);.}..$text.=.'Package."'.$
a5a0 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2e 27 22 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 72 75 sourcePackage.'".contains.the.ru
a5c0 6c 65 20 27 2e 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2e 27 2e 20 27 3b 0a 69 66 20 le.'.$this->reasonData.'..';.if.
a5e0 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 41 6e 79 20 6f 66 20 74 ($requires).{.$text..=.'Any.of.t
a600 68 65 73 65 20 70 61 63 6b 61 67 65 73 20 73 61 74 69 73 66 79 20 74 68 65 20 64 65 70 65 6e 64 hese.packages.satisfy.the.depend
a620 65 6e 63 79 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 65 71 75 69 72 65 73 29 ency:.'.implode(',.',.$requires)
a640 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 4e 6f 20 70 61 63 6b .'.';.}.else.{.$text..=.'No.pack
a660 61 67 65 20 73 61 74 69 73 66 69 65 73 20 74 68 69 73 20 64 65 70 65 6e 64 65 6e 63 79 2e 27 3b age.satisfies.this.dependency.';
a680 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 .}..return.$text;..case.self::RU
a6a0 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 LE_PACKAGE_OBSOLETES:.return.$ru
a6c0 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 leText;.case.self::RULE_INSTALLE
a6e0 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c D_PACKAGE_OBSOLETES:.return.$rul
a700 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 41 47 45 5f 53 eText;.case.self::RULE_PACKAGE_S
a720 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 AME_NAME:.return.$ruleText;.case
a740 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 .self::RULE_PACKAGE_IMPLICIT_OBS
a760 4f 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 OLETES:.return.$ruleText;.case.s
a780 65 6c 66 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 6e 20 27 6c 65 61 72 6e elf::RULE_LEARNED:.return.'learn
a7a0 65 64 3a 20 27 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 ed:.'.$ruleText;.case.self::RULE
a7c0 5f 50 41 43 4b 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 _PACKAGE_ALIAS:.return.$ruleText
a7e0 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 5f 5f 74 6f ;.}.}.......public.function.__to
a800 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 24 74 68 69 73 2d 3e 69 73 44 String().{.$result.=.($this->isD
a820 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 64 28 27 20 3a 20 27 28 27 3b 0a isabled()).?.'disabled('.:.'(';.
a840 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 24 69 20 .foreach.($this->literals.as.$i.
a860 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 0a 24 72 =>.$literal).{.if.($i.!=.0).{.$r
a880 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 74 68 69 73 esult..=.'|';.}.$result..=.$this
a8a0 2d 3e 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 ->pool->literalToString($literal
a8c0 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b 0a 0a 72 65 74 75 72 6e 20 24 72 );.}..$result..=.')';..return.$r
a8e0 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 6d 65 esult;.}.}.<?php............name
a900 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
a920 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 69 61 73 50 61 r;..use.Composer\Package\AliasPa
a940 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 6e 63 79 52 65 ckage;.use.Composer\DependencyRe
a960 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 20 54 72 61 6e solver\Operation;.....class.Tran
a980 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 3b 0a 70 72 6f saction.{.protected.$policy;.pro
a9a0 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 73 74 61 6c 6c tected.$pool;.protected.$install
a9c0 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 3b 0a 70 72 6f edMap;.protected.$decisions;.pro
a9e0 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 63 20 66 75 6e tected.$transaction;..public.fun
aa00 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 24 70 6f 6f 6c ction.__construct($policy,.$pool
aa20 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 29 0a 7b 0a 24 ,.$installedMap,.$decisions).{.$
aa40 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 69 73 2d 3e 70 this->policy.=.$policy;.$this->p
aa60 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 65 64 4d 61 70 ool.=.$pool;.$this->installedMap
aa80 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 63 69 73 69 6f .=.$installedMap;.$this->decisio
aaa0 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 6e 73 61 63 74 ns.=.$decisions;.$this->transact
aac0 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 6e 63 74 69 6f ion.=.array();.}..public.functio
aae0 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 6c 4d 65 61 6e n.getOperations().{.$installMean
ab00 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 61 74 65 73 28 sUpdateMap.=.$this->findUpdates(
ab20 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 69 6e 73 74 61 );..$updateMap.=.array();.$insta
ab40 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 4d 61 70 20 3d llMap.=.array();.$uninstallMap.=
ab60 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 65 63 69 73 .array();..foreach.($this->decis
ab80 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 6c 69 74 65 ions.as.$i.=>.$decision).{.$lite
aba0 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 45 43 49 53 ral.=.$decision[Decisions::DECIS
abc0 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 63 69 73 69 6f ION_LITERAL];.$reason.=.$decisio
abe0 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 4e 5d 3b 0a 0a n[Decisions::DECISION_REASON];..
ac00 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
ac20 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 28 24 6c 69 74 oPackage($literal);....if.(($lit
ac40 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 69 6e 73 74 61 eral.>.0).==.(isset($this->insta
ac60 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 29 29 20 7b 0a lledMap[$package->getId()]))).{.
ac80 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 20 30 29 20 7b continue;.}..if.($literal.>.0).{
aca0 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 61 74 65 4d 61 .if.(isset($installMeansUpdateMa
acc0 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 61 67 65 20 69 p[abs($literal)]).&&.!$package.i
ace0 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 24 73 6f 75 72 nstanceof.AliasPackage).{..$sour
ad00 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 5b 61 62 73 28 ce.=.$installMeansUpdateMap[abs(
ad20 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 63 6b 61 67 65 $literal)];..$updateMap[$package
ad40 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 65 27 20 3d 3e ->getId()].=.array(.'package'.=>
ad60 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 72 63 65 2c 0a .$package,.'source'.=>.$source,.
ad80 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 75 6e 73 65 74 'reason'.=>.$reason,.);....unset
ada0 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 28 24 6c 69 74 ($installMeansUpdateMap[abs($lit
adc0 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 72 63 65 2d 3e eral)]);.$ignoreRemove[$source->
ade0 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 69 6e 73 74 61 getId()].=.true;.}.else.{.$insta
ae00 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 61 72 72 61 79 llMap[$package->getId()].=.array
ae20 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 65 61 73 6f 6e (.'package'.=>.$package,.'reason
ae40 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 65 61 63 68 20 '.=>.$reason,.);.}.}.}..foreach.
ae60 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 24 64 65 63 69 ($this->decisions.as.$i.=>.$deci
ae80 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 6e 5b 44 65 63 sion).{.$literal.=.$decision[Dec
aea0 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 24 70 61 63 6b isions::DECISION_LITERAL];.$pack
aec0 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 50 61 63 6b age.=.$this->pool->literalToPack
aee0 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 6c 20 3c 3d 20 age($literal);..if.($literal.<=.
af00 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 4d 61 70 5b 24 0.&&.isset($this->installedMap[$
af20 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 74 28 24 69 67 package->getId()]).&&.!isset($ig
af40 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 29 5d 29 29 20 noreRemove[$package->getId()])).
af60 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 65 74 49 64 28 {.$uninstallMap[$package->getId(
af80 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 61 63 6b 61 67 )].=.array(.'package'.=>.$packag
afa0 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 7d 0a 7d 0a e,.'reason'.=>.$reason,.);..}.}.
afc0 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 28 24 69 6e 73 .$this->transactionFromMaps($ins
afe0 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 74 61 6c 6c 4d tallMap,.$updateMap,.$uninstallM
b000 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 74 69 6f 6e 3b ap);..return.$this->transaction;
b020 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 73 61 63 74 69 .}..protected.function.transacti
b040 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 64 61 74 65 4d onFromMaps($installMap,.$updateM
b060 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 20 3d 20 61 72 ap,.$uninstallMap).{.$queue.=.ar
b080 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 6e 29 20 7b 0a ray_map(function.($operation).{.
b0a0 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 5d 3b 0a 7d 2c return.$operation['package'];.},
b0c0 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 6e 73 74 61 6c .$this->findRootPackages($instal
b0e0 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 74 65 64 20 3d lMap,.$updateMap).);..$visited.=
b100 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 75 65 75 65 29 .array();..while.(!empty($queue)
b120 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 75 65 75 65 29 ).{.$package.=.array_pop($queue)
b140 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 74 49 64 28 29 ;.$packageId.=.$package->getId()
b160 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 6b 61 67 65 49 ;..if.(!isset($visited[$packageI
b180 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 70 61 63 6b 61 d])).{.array_push($queue,.$packa
b1a0 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 6f 66 20 41 6c ge);..if.($package.instanceof.Al
b1c0 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 75 65 75 65 2c iasPackage).{.array_push($queue,
b1e0 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 20 65 6c 73 65 .$package->getAliasOf());.}.else
b200 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 71 75 69 72 65 .{.foreach.($package->getRequire
b220 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 71 75 69 72 65 s().as.$link).{.$possibleRequire
b240 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 24 6c s.=.$this->pool->whatProvides($l
b260 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 6e 73 ink->getTarget(),.$link->getCons
b280 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 52 65 traint());..foreach.($possibleRe
b2a0 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 5f 70 75 73 68 quires.as.$require).{.array_push
b2c0 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 24 76 69 73 69 ($queue,.$require);.}.}.}..$visi
b2e0 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 75 65 3b 0a 7d ted[$package->getId()].=.true;.}
b300 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 61 70 5b 24 70 .else.{.if.(isset($installMap[$p
b320 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 6c 28 0a 24 69 ackageId])).{.$this->install(.$i
b340 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 61 67 65 27 5d nstallMap[$packageId]['package']
b360 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 72 65 61 73 6f ,.$installMap[$packageId]['reaso
b380 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 61 63 6b 61 67 n'].);.unset($installMap[$packag
b3a0 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 61 70 5b 24 70 eId]);.}.if.(isset($updateMap[$p
b3c0 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 28 0a 24 75 70 ackageId])).{.$this->update(.$up
b3e0 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 27 5d 2c 0a 24 dateMap[$packageId]['source'],.$
b400 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 61 67 65 27 5d updateMap[$packageId]['package']
b420 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 65 61 73 6f 6e ,.$updateMap[$packageId]['reason
b440 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 6b 61 67 65 49 '].);.unset($updateMap[$packageI
b460 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 74 61 6c 6c 4d d]);.}.}.}..foreach.($uninstallM
b480 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 75 6e 69 6e 73 ap.as.$uninstall).{.$this->unins
b4a0 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 20 24 75 6e 69 tall($uninstall['package'],.$uni
b4c0 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 74 65 63 74 65 nstall['reason']);.}.}..protecte
b4e0 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 28 24 69 6e 73 d.function.findRootPackages($ins
b500 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 6b 61 67 65 73 tallMap,.$updateMap).{.$packages
b520 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 3b 0a 24 72 6f .=.$installMap.+.$updateMap;.$ro
b540 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 24 70 61 63 6b ots.=.$packages;..foreach.($pack
b560 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 61 74 69 6f 6e ages.as.$packageId.=>.$operation
b580 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 70 61 63 6b 61 ).{.$package.=.$operation['packa
b5a0 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 61 63 6b 61 67 ge'];..if.(!isset($roots[$packag
b5c0 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 63 68 20 28 24 eId])).{.continue;.}..foreach.($
b5e0 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 6c 69 6e 6b 29 package->getRequires().as.$link)
b600 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 73 2d 3e 70 6f .{.$possibleRequires.=.$this->po
b620 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 54 61 72 67 65 ol->whatProvides($link->getTarge
b640 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 29 3b 0a 0a 66 t(),.$link->getConstraint());..f
b660 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 73 20 24 72 65 oreach.($possibleRequires.as.$re
b680 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 69 72 65 2d 3e quire).{.unset($roots[$require->
b6a0 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 6f 6f 74 73 3b getId()]);.}.}.}..return.$roots;
b6c0 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 55 70 64 61 74 .}..protected.function.findUpdat
b6e0 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 61 70 20 3d 20 es().{.$installMeansUpdateMap.=.
b700 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 65 63 69 73 69 array();..foreach.($this->decisi
b720 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 6c 69 74 65 72 ons.as.$i.=>.$decision).{.$liter
b740 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 45 43 49 53 49 al.=.$decision[Decisions::DECISI
b760 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 69 73 2d 3e 70 ON_LITERAL];.$package.=.$this->p
b780 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 72 61 6c 29 3b ool->literalToPackage($literal);
b7a0 0a 0a 0a 20 69 66 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 ....if.($literal.<=.0.&&.isset($
b7c0 74 68 69 73 2d 3e 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 this->installedMap[$package->get
b7e0 49 64 28 29 5d 29 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 Id()])).{.$updates.=.$this->poli
b800 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 6f cy->findUpdatePackages($this->po
b820 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 67 ol,.$this->installedMap,.$packag
b840 65 29 3b 0a 0a 24 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 e);..$literals.=.array($package-
b860 3e 67 65 74 49 64 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 >getId());..foreach.($updates.as
b880 20 24 75 70 64 61 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 .$update).{.$literals[].=.$updat
b8a0 65 2d 3e 67 65 74 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 e->getId();.}..foreach.($literal
b8c0 73 20 61 73 20 24 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 s.as.$updateLiteral).{.if.($upda
b8e0 74 65 4c 69 74 65 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 teLiteral.!==.$literal).{.$insta
b900 6c 6c 4d 65 61 6e 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 llMeansUpdateMap[abs($updateLite
b920 72 61 6c 29 5d 20 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 ral)].=.$package;.}.}.}.}..retur
b940 6e 20 24 69 6e 73 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 n.$installMeansUpdateMap;.}..pro
b960 74 65 63 74 65 64 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 tected.function.install($package
b980 2c 20 24 72 65 61 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 ,.$reason).{.if.($package.instan
b9a0 63 65 6f 66 20 41 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 ceof.AliasPackage).{.return.$thi
b9c0 73 2d 3e 6d 61 72 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 s->markAliasInstalled($package,.
b9e0 24 72 65 61 73 6f 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 $reason);.}..$this->transaction[
ba00 5d 20 3d 20 6e 65 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 ].=.new.Operation\InstallOperati
ba20 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 0a 70 72 6f 74 65 63 on($package,.$reason);.}..protec
ba40 74 65 64 20 66 75 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 ted.function.update($from,.$to,.
ba60 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 69 6f 6e 5b 5d 20 $reason).{.$this->transaction[].
ba80 3d 20 6e 65 77 20 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 =.new.Operation\UpdateOperation(
baa0 24 66 72 6f 6d 2c 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 $from,.$to,.$reason);.}..protect
bac0 65 64 20 66 75 6e 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 ed.function.uninstall($package,.
bae0 24 72 65 61 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 $reason).{.if.($package.instance
bb00 6f 66 20 41 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 of.AliasPackage).{.return.$this-
bb20 3e 6d 61 72 6b 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 >markAliasUninstalled($package,.
bb40 24 72 65 61 73 6f 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 $reason);.}..$this->transaction[
bb60 5d 20 3d 20 6e 65 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 ].=.new.Operation\UninstallOpera
bb80 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 0a 70 72 6f 74 tion($package,.$reason);.}..prot
bba0 65 63 74 65 64 20 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 ected.function.markAliasInstalle
bbc0 64 28 24 70 61 63 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 d($package,.$reason).{.$this->tr
bbe0 61 6e 73 61 63 74 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 ansaction[].=.new.Operation\Mark
bc00 41 6c 69 61 73 49 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 AliasInstalledOperation($package
bc20 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 63 74 69 6f ,.$reason);.}..protected.functio
bc40 6e 20 6d 61 72 6b 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 n.markAliasUninstalled($package,
bc60 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 69 6f 6e 5b 5d .$reason).{.$this->transaction[]
bc80 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 55 6e 69 6e 73 74 .=.new.Operation\MarkAliasUninst
bca0 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 73 6f 6e alledOperation($package,.$reason
bcc0 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
bce0 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 3b 0a 0a e.Composer\DependencyResolver;..
bd00 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 69 6d 70 6c 65 6d 65 ...class.RuleSetIterator.impleme
bd20 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 20 24 72 75 6c 65 73 nts.\Iterator.{.protected.$rules
bd40 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 65 63 74 65 64 20 24 ;.protected.$types;..protected.$
bd60 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 24 63 75 72 72 65 6e currentOffset;.protected.$curren
bd80 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 54 79 70 65 4f 66 66 tType;.protected.$currentTypeOff
bda0 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 6f 6e 73 74 72 75 63 set;..public.function.__construc
bdc0 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 72 75 6c 65 73 20 3d t(array.$rules).{.$this->rules.=
bde0 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 72 72 61 79 5f 6b 65 .$rules;.$this->types.=.array_ke
be00 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 79 70 65 73 29 3b 0a ys($rules);.sort($this->types);.
be20 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 69 63 20 66 75 6e 63 .$this->rewind();.}..public.func
be40 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 74 68 69 73 2d 3e 72 tion.current().{.return.$this->r
be60 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 24 74 68 69 73 2d 3e ules[$this->currentType][$this->
be80 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 20 66 75 6e 63 74 69 currentOffset];.}..public.functi
bea0 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 63 75 72 72 65 6e 74 on.key().{.return.$this->current
bec0 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 6e 65 78 74 28 29 0a Type;.}..public.function.next().
bee0 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 0a 0a 69 66 20 28 21 {.$this->currentOffset++;..if.(!
bf00 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 3e 63 75 72 72 65 6e isset($this->rules[$this->curren
bf20 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 28 24 74 68 69 73 2d tType])).{.return;.}..if.($this-
bf40 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 24 74 68 69 73 2d 3e >currentOffset.>=.sizeof($this->
bf60 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 20 7b 0a 24 74 rules[$this->currentType])).{.$t
bf80 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 64 6f 20 7b 0a 24 74 his->currentOffset.=.0;..do.{.$t
bfa0 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 0a 0a 69 66 20 28 21 his->currentTypeOffset++;..if.(!
bfc0 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 6e isset($this->types[$this->curren
bfe0 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 75 72 72 65 6e 74 54 tTypeOffset])).{.$this->currentT
c000 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 2d 3e 63 75 72 72 65 ype.=.-1;.break;.}..$this->curre
c020 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 69 73 2d 3e 63 75 72 ntType.=.$this->types[$this->cur
c040 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 28 69 73 73 65 74 28 rentTypeOffset];.}.while.(isset(
c060 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 65 4f $this->types[$this->currentTypeO
c080 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 3e 72 75 6c 65 73 5b ffset]).&&.!sizeof($this->rules[
c0a0 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 7d 0a 0a 70 75 62 6c $this->currentType]));.}.}..publ
c0c0 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 68 69 73 2d 3e 63 75 ic.function.rewind().{.$this->cu
c0e0 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 63 75 72 72 65 6e 74 rrentOffset.=.0;..$this->current
c100 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 75 72 72 65 6e 74 54 TypeOffset.=.-1;.$this->currentT
c120 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 72 72 65 6e 74 54 79 ype.=.-1;..do.{.$this->currentTy
c140 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 74 68 69 73 2d 3e 74 peOffset++;..if.(!isset($this->t
c160 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 29 ypes[$this->currentTypeOffset]))
c180 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 31 3b 0a 62 72 65 61 .{.$this->currentType.=.-1;.brea
c1a0 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 3d 20 24 74 68 69 73 k;.}..$this->currentType.=.$this
c1c0 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 66 73 65 74 ->types[$this->currentTypeOffset
c1e0 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 74 79 70 65 73 5b 24 ];.}.while.(isset($this->types[$
c200 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 20 26 26 20 21 73 69 this->currentTypeOffset]).&&.!si
c220 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 63 75 72 72 65 6e 74 zeof($this->rules[$this->current
c240 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 6f 6e 20 76 61 6c 69 Type]));.}..public.function.vali
c260 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 3e 72 75 6c 65 73 5b d().{.return.isset($this->rules[
c280 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 73 73 65 74 28 24 74 $this->currentType]).&&.isset($t
c2a0 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 24 his->rules[$this->currentType][$
c2c0 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 7d 0a 3c 3f 70 68 70 this->currentOffset]);.}.}.<?php
c2e0 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
c300 65 70 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 ependencyResolver;..use.Composer
c320 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 \Package\LinkConstraint\LinkCons
c340 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 traintInterface;.....class.Reque
c360 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 st.{.protected.$jobs;.protected.
c380 24 70 6f 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 $pool;..public.function.__constr
c3a0 75 63 74 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 uct(Pool.$pool).{.$this->pool.=.
c3c0 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a $pool;.$this->jobs.=.array();.}.
c3e0 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 24 70 61 63 6b 61 67 .public.function.install($packag
c400 65 4e 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 eName,.LinkConstraintInterface.$
c420 63 6f 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 constraint.=.null).{.$this->addJ
c440 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e ob($packageName,.'install',.$con
c460 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 straint);.}..public.function.upd
c480 61 74 65 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 ate($packageName,.LinkConstraint
c4a0 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 29 0a 7b 0a Interface.$constraint.=.null).{.
c4c0 24 74 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 75 70 64 $this->addJob($packageName,.'upd
c4e0 61 74 65 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 ate',.$constraint);.}..public.fu
c500 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b nction.remove($packageName,.Link
c520 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 69 6e 74 20 ConstraintInterface.$constraint.
c540 3d 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 =.null).{.$this->addJob($package
c560 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a Name,.'remove',.$constraint);.}.
c580 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b .protected.function.addJob($pack
c5a0 61 67 65 4e 61 6d 65 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 ageName,.$cmd,.LinkConstraintInt
c5c0 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 70 61 erface.$constraint.=.null).{.$pa
c5e0 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e ckageName.=.strtolower($packageN
c600 61 6d 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 ame);.$packages.=.$this->pool->w
c620 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 20 24 63 6f 6e 73 74 hatProvides($packageName,.$const
c640 72 61 69 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a raint);..$this->jobs[].=.array(.
c660 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a 27 63 6d 64 27 20 3d 'packages'.=>.$packages,.'cmd'.=
c680 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 >.$cmd,.'packageName'.=>.$packag
c6a0 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 eName,.'constraint'.=>.$constrai
c6c0 6e 74 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 nt,.);.}..public.function.update
c6e0 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 All().{.$this->jobs[].=.array('c
c700 6d 64 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 6b 61 67 65 73 27 20 md'.=>.'update-all',.'packages'.
c720 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 =>.array());.}..public.function.
c740 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a getJobs().{.return.$this->jobs;.
c760 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
c780 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
c7a0 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 61 .Composer\Package\PackageInterfa
c7c0 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 6c 69 61 73 50 61 ce;.use.Composer\Package\AliasPa
c7e0 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 4c 69 6e 6b ckage;.use.Composer\Package\Link
c800 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 6e 74 3b 0a 0a 0a Constraint\VersionConstraint;...
c820 0a 0a 63 6c 61 73 73 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 ..class.DefaultPolicy.implements
c840 20 50 6f 6c 69 63 79 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 .PolicyInterface.{.public.functi
c860 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 65 72 66 61 on.versionCompare(PackageInterfa
c880 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 6f 70 65 ce.$a,.PackageInterface.$b,.$ope
c8a0 72 61 74 6f 72 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 rator).{.$constraint.=.new.Versi
c8c0 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 onConstraint($operator,.$b->getV
c8e0 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f ersion());.$version.=.new.Versio
c900 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e nConstraint('==',.$a->getVersion
c920 28 29 29 3b 0a 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 68 53 ());..return.$constraint->matchS
c940 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e pecific($version);.}..public.fun
c960 63 74 69 6f 6e 20 66 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 ction.findUpdatePackages(Pool.$p
c980 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 50 61 63 6b 61 67 ool,.array.$installedMap,.Packag
c9a0 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 73 eInterface.$package).{.$packages
c9c0 20 3d 20 61 72 72 61 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 .=.array();..foreach.($pool->wha
c9e0 74 50 72 6f 76 69 64 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 tProvides($package->getName()).a
ca00 73 20 24 63 61 6e 64 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 s.$candidate).{.if.($candidate.!
ca20 3d 3d 20 24 70 61 63 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 ==.$package).{.$packages[].=.$ca
ca40 6e 64 69 64 61 74 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 ndidate;.}.}..return.$packages;.
ca60 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 74 79 28 50 }..public.function.getPriority(P
ca80 6f 6f 6c 20 24 70 6f 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 ool.$pool,.PackageInterface.$pac
caa0 6b 61 67 65 29 0a 7b 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 kage).{.return.$pool->getPriorit
cac0 79 28 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 29 3b 0a 7d 0a y($package->getRepository());.}.
cae0 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
cb00 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
cb20 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 24 70 61 63 lledMap,.array.$literals).{.$pac
cb40 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 kages.=.$this->groupLiteralsByNa
cb60 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 24 69 6e 73 74 61 6c 6c mePreferInstalled($pool,$install
cb80 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 edMap,.$literals);..foreach.($pa
cba0 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 70 6f 6c 69 63 79 20 ckages.as.&$literals).{.$policy.
cbc0 3d 20 24 74 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 =.$this;.usort($literals,.functi
cbe0 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,
cc00 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 .$installedMap).{.return.$policy
cc20 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 73 74 61 6c 6c ->compareByPriorityPreferInstall
cc40 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 6f 6f 6c 2d 3e ed($pool,.$installedMap,.$pool->
cc60 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 2d 3e 6c 69 74 literalToPackage($a),.$pool->lit
cc80 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a eralToPackage($b),.true);.});.}.
cca0 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 69 74 65 72 61 6c .foreach.($packages.as.&$literal
ccc0 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 42 s).{.$literals.=.$this->pruneToB
cce0 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 estVersion($pool,.$literals);..$
cd00 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 literals.=.$this->pruneToHighest
cd20 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 PriorityOrInstalled($pool,.$inst
cd40 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 alledMap,.$literals);..$literals
cd60 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 70 6f .=.$this->pruneRemoteAliases($po
cd80 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 63 ol,.$literals);.}..$selected.=.c
cda0 61 6c 6c 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 all_user_func_array('array_merge
cdc0 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 74 65 ',.$packages);....usort($selecte
cde0 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 d,.function.($a,.$b).use.($polic
ce00 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 20 7b 0a 72 65 74 75 72 y,.$pool,.$installedMap).{.retur
ce20 6e 20 24 70 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 n.$policy->compareByPriorityPref
ce40 65 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 erInstalled($pool,.$installedMap
ce60 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 24 61 29 2c 20 24 ,.$pool->literalToPackage($a),.$
ce80 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 29 3b 0a 7d 29 3b pool->literalToPackage($b));.});
cea0 0a 0a 72 65 74 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 ..return.$selected;.}..protected
cec0 20 66 75 6e 63 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 .function.groupLiteralsByNamePre
cee0 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 72 61 79 20 24 ferInstalled(Pool.$pool,.array.$
cf00 69 6e 73 74 61 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 installedMap,.$literals).{.$pack
cf20 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 6c 69 74 65 72 61 ages.=.array();.foreach.($litera
cf40 6c 73 20 61 73 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 ls.as.$literal).{.$packageName.=
cf60 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 69 74 65 72 61 .$pool->literalToPackage($litera
cf80 6c 29 2d 3e 67 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 l)->getName();..if.(!isset($pack
cfa0 61 67 65 73 5b 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 ages[$packageName])).{.$packages
cfc0 5b 24 70 61 63 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 [$packageName].=.array();.}..if.
cfe0 28 69 73 73 65 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 (isset($installedMap[abs($litera
d000 6c 29 5d 29 29 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 l)])).{.array_unshift($packages[
d020 24 70 61 63 6b 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 $packageName],.$literal);.}.else
d040 20 7b 0a 24 70 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 .{.$packages[$packageName][].=.$
d060 6c 69 74 65 72 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 literal;.}.}..return.$packages;.
d080 7d 0a 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 }..public.function.compareByPrio
d0a0 72 69 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 rityPreferInstalled(Pool.$pool,.
d0c0 61 72 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 array.$installedMap,.PackageInte
d0e0 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 24 rface.$a,.PackageInterface.$b,.$
d100 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d ignoreReplace.=.false).{.if.($a-
d120 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f >getRepository().===.$b->getRepo
d140 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 sitory()).{...if.($a->getName().
d160 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d ===.$b->getName()).{.$aAliased.=
d180 20 24 61 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 24 62 41 .$a.instanceof.AliasPackage;.$bA
d1a0 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b liased.=.$b.instanceof.AliasPack
d1c0 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 65 64 age;.if.($aAliased.&&.!$bAliased
d1e0 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 73 65 ).{.return.-1;...}.if.(!$aAliase
d200 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a d.&&.$bAliased).{.return.1;...}.
d220 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 }..if.(!$ignoreReplace).{...if.(
d240 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 75 72 $this->replaces($a,.$b)).{.retur
d260 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 62 2c n.1;...}.if.($this->replaces($b,
d280 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 7d 0a 0a 0a 20 69 66 20 28 .$a)).{.return.-1;...}.}....if.(
d2a0 24 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 7b 0a 72 $a->getId().===.$b->getId()).{.r
d2c0 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 eturn.0;.}..return.($a->getId().
d2e0 3c 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 <.$b->getId()).?.-1.:.1;.}..if.(
d300 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 61 2d 3e 67 65 74 49 64 28 29 5d isset($installedMap[$a->getId()]
d320 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e )).{.return.-1;.}..if.(isset($in
d340 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 stalledMap[$b->getId()])).{.retu
d360 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 rn.1;.}..return.($this->getPrior
d380 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 ity($pool,.$a).>.$this->getPrior
d3a0 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a 0a ity($pool,.$b)).?.-1.:.1;.}.....
d3c0 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 72 65 70 6c 61 63 .......protected.function.replac
d3e0 65 73 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 2c 20 50 61 63 es(PackageInterface.$source,.Pac
d400 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 66 6f 72 65 61 63 68 kageInterface.$target).{.foreach
d420 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e .($source->getReplaces().as.$lin
d440 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 20 k).{.if.($link->getTarget().===.
d460 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 6e $target->getName()....).{.return
d480 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f .true;.}.}..return.false;.}..pro
d4a0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 tected.function.pruneToBestVersi
d4c0 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 62 65 73 on(Pool.$pool,.$literals).{.$bes
d4e0 74 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 5d 29 3b tLiterals.=.array($literals[0]);
d500 0a 24 62 65 73 74 50 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 .$bestPackage.=.$pool->literalTo
d520 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 Package($literals[0]);.foreach.(
d540 24 6c 69 74 65 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 $literals.as.$i.=>.$literal).{.i
d560 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 f.(0.===.$i).{.continue;.}..$pac
d580 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 24 kage.=.$pool->literalToPackage($
d5a0 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d literal);..if.($this->versionCom
d5c0 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3e 27 pare($package,.$bestPackage,.'>'
d5e0 29 29 20 7b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 )).{.$bestPackage.=.$package;.$b
d600 65 73 74 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 7d estLiterals.=.array($literal);.}
d620 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 24 .elseif.($this->versionCompare($
d640 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a package,.$bestPackage,.'==')).{.
d660 24 62 65 73 74 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a $bestLiterals[].=.$literal;.}.}.
d680 0a 72 65 74 75 72 6e 20 24 62 65 73 74 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 .return.$bestLiterals;.}..protec
d6a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 77 65 73 74 50 61 63 6b 61 67 65 ted.function.selectNewestPackage
d6c0 73 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 s(array.$installedMap,.array.$li
d6e0 74 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 terals).{.$maxLiterals.=.array($
d700 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 literals[0]);.$maxPackage.=.$lit
d720 65 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 erals[0]->getPackage();.foreach.
d740 28 24 6c 69 74 65 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 ($literals.as.$i.=>.$literal).{.
d760 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 if.(0.===.$i).{.continue;.}..if.
d780 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 6c 69 74 65 72 61 6c 2d ($this->versionCompare($literal-
d7a0 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 >getPackage(),.$maxPackage,.'>')
d7c0 29 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 ).{.$maxPackage.=.$literal->getP
d7e0 61 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 ackage();.$maxLiterals.=.array($
d800 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 literal);.}.elseif.($this->versi
d820 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 65 28 29 onCompare($literal->getPackage()
d840 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 6d 61 78 4c 69 74 65 ,.$maxPackage,.'==')).{.$maxLite
d860 72 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 rals[].=.$literal;.}.}..return.$
d880 6d 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e maxLiterals;.}.....protected.fun
d8a0 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e ction.pruneToHighestPriorityOrIn
d8c0 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
d8e0 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 24 73 65 6c lledMap,.array.$literals).{.$sel
d900 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 ected.=.array();..$priority.=.nu
d920 6c 6c 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 ll;..foreach.($literals.as.$lite
d940 72 61 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 ral).{.$package.=.$pool->literal
d960 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 28 69 73 73 65 74 28 ToPackage($literal);..if.(isset(
d980 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 65 74 49 64 28 29 5d $installedMap[$package->getId()]
d9a0 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 63 6f 6e )).{.$selected[].=.$literal;.con
d9c0 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 tinue;.}..if.(null.===.$priority
d9e0 29 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 ).{.$priority.=.$this->getPriori
da00 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 ty($pool,.$package);.}..if.($thi
da20 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 20 s->getPriority($pool,.$package).
da40 21 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 !=.$priority).{.break;.}..$selec
da60 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c ted[].=.$literal;.}..return.$sel
da80 65 63 74 65 64 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 ected;.}.......protected.functio
daa0 6e 20 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c n.pruneRemoteAliases(Pool.$pool,
dac0 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 .array.$literals).{.$hasLocalAli
dae0 61 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 as.=.false;..foreach.($literals.
db00 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d as.$literal).{.$package.=.$pool-
db20 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 0a 69 66 >literalToPackage($literal);..if
db40 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 61 .($package.instanceof.AliasPacka
db60 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 ge.&&.$package->isRootPackageAli
db80 61 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 as()).{.$hasLocalAlias.=.true;.b
dba0 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 reak;.}.}..if.(!$hasLocalAlias).
dbc0 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 {.return.$literals;.}..$selected
dbe0 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 73 20 61 .=.array();.foreach.($literals.a
dc00 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e s.$literal).{.$package.=.$pool->
dc20 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.
dc40 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 61 67 ($package.instanceof.AliasPackag
dc60 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 e.&&.$package->isRootPackageAlia
dc80 73 28 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d s()).{.$selected[].=.$literal;.}
dca0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a .}..return.$selected;.}.}.<?php.
dcc0 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 65 ...........namespace.Composer\De
dce0 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 3b 0a 0a 75 73 65 pendencyResolver\Operation;..use
dd00 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;.
dd20 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 ......class.MarkAliasInstalledOp
dd40 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 0a eration.extends.SolverOperation.
dd60 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 62 {.protected.$package;........pub
dd80 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 6c 69 61 73 50 61 lic.function.__construct(AliasPa
dda0 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a ckage.$package,.$reason.=.null).
ddc0 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 6f 6e 29 3b 0a {.parent::__construct($reason);.
dde0 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 0a 7d 0a 0a 0a .$this->package.=.$package;.}...
de00 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 61 67 65 28 29 ....public.function.getPackage()
de20 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 0a 0a 0a 0a 0a .{.return.$this->package;.}.....
de40 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 65 28 29 0a 7b ..public.function.getJobType().{
de60 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a .return.'markAliasInstalled';.}.
de80 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 28 29 ....public.function.__toString()
dea0 0a 7b 0a 72 65 74 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 .{.return.'Marking.'.$this->pack
dec0 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 73 2d age->getPrettyName().'.('.$this-
dee0 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 2e 27 >formatVersion($this->package).'
df00 29 20 61 73 20 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 ).as.installed,.alias.of.'.$this
df20 2d 3e 70 61 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 ->package->getAliasOf()->getPret
df40 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 65 72 73 69 tyName().'.('.$this->formatVersi
df60 6f 6e 28 24 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 on($this->package->getAliasOf())
df80 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
dfa0 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
dfc0 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
dfe0 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 73 20 4d 61 72 6b e\AliasPackage;.......class.Mark
e000 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 65 78 74 65 6e 64 AliasUninstalledOperation.extend
e020 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 74 65 64 20 24 70 s.SolverOperation.{.protected.$p
e040 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 74 69 6f 6e 20 5f ackage;........public.function._
e060 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 61 63 6b 61 67 65 _construct(AliasPackage.$package
e080 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 3a 3a 5f 5f 63 6f ,.$reason.=.null).{.parent::__co
e0a0 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 70 61 63 6b 61 67 nstruct($reason);..$this->packag
e0c0 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 69 63 20 66 75 6e e.=.$package;.}.......public.fun
e0e0 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 6e 20 24 74 68 69 ction.getPackage().{.return.$thi
e100 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 20 66 75 6e 63 74 s->package;.}.......public.funct
e120 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 27 6d 61 72 6b 41 ion.getJobType().{.return.'markA
e140 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 62 6c 69 63 20 66 liasUninstalled';.}.....public.f
e160 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 6e 20 27 4d unction.__toString().{.return.'M
e180 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 50 72 65 74 arking.'.$this->package->getPret
e1a0 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 65 72 73 69 tyName().'.('.$this->formatVersi
e1c0 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 6e 69 6e 73 74 61 on($this->package).').as.uninsta
e1e0 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 65 2d lled,.alias.of.'.$this->package-
e200 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 2e 27 >getAliasOf()->getPrettyName().'
e220 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 2d 3e .('.$this->formatVersion($this->
e240 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 7d 0a package->getAliasOf()).')';.}.}.
e260 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
e280 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
e2a0 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 49 ;..use.Composer\Package\PackageI
e2c0 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 4f nterface;.......class.UninstallO
e2e0 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
e300 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
e320 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
e340 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
e360 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
e380 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;
e3a0 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
e3c0 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;.}
e3e0 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
e400 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 0a e().{.return.'uninstall';.}.....
e420 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 72 public.function.__toString().{.r
e440 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 63 eturn.'Uninstalling.'.$this->pac
e460 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 73 kage->getPrettyName().'.('.$this
e480 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 2e ->formatVersion($this->package).
e4a0 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 70 ')';.}.}.<?php............namesp
e4c0 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 5c ace.Composer\DependencyResolver\
e4e0 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 65 Operation;..use.Composer\Package
e500 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 55 \PackageInterface;.......class.U
e520 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 65 pdateOperation.extends.SolverOpe
e540 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 61 ration.{.protected.$initialPacka
e560 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 0a ge;.protected.$targetPackage;...
e580 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
e5a0 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 63 t(PackageInterface.$initial,.Pac
e5c0 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 3d kageInterface.$target,.$reason.=
e5e0 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 65 .null).{.parent::__construct($re
e600 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 20 ason);..$this->initialPackage.=.
e620 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 3d $initial;.$this->targetPackage.=
e640 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 6f .$target;.}.......public.functio
e660 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 24 n.getInitialPackage().{.return.$
e680 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 75 this->initialPackage;.}.......pu
e6a0 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 29 blic.function.getTargetPackage()
e6c0 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 0a .{.return.$this->targetPackage;.
e6e0 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
e700 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 75 pe().{.return.'update';.}.....pu
e720 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
e740 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 61 urn.'Updating.'.$this->initialPa
e760 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
e780 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 50 s->formatVersion($this->initialP
e7a0 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 61 ackage).').to.'..$this->targetPa
e7c0 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 68 ckage->getPrettyName()..'.('.$th
e7e0 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 50 is->formatVersion($this->targetP
e800 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 0a ackage).')';.}.}.<?php..........
e820 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 52 ..namespace.Composer\DependencyR
e840 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 72 esolver\Operation;..use.Composer
e860 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;......
e880 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 .class.InstallOperation.extends.
e8a0 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 SolverOperation.{.protected.$pac
e8c0 6b 61 67 65 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 kage;........public.function.__c
e8e0 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 70 61 63 6b 61 onstruct(PackageInterface.$packa
e900 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 3a 3a 5f 5f ge,.$reason.=.null).{.parent::__
e920 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 70 61 63 6b construct($reason);..$this->pack
e940 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 69 63 20 66 age.=.$package;.}.......public.f
e960 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 6e 20 24 74 unction.getPackage().{.return.$t
e980 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 20 66 75 6e his->package;.}.......public.fun
e9a0 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 27 69 6e 73 ction.getJobType().{.return.'ins
e9c0 74 61 6c 6c 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 5f 5f 74 tall';.}.....public.function.__t
e9e0 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 69 6e 67 20 27 oString().{.return.'Installing.'
ea00 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 .$this->package->getPrettyName()
ea20 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
ea40 2d 3e 70 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 ->package).')';.}.}.<?php.......
ea60 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 65 6e .....namespace.Composer\Dependen
ea80 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 0a 0a 69 6e 74 65 cyResolver\Operation;.......inte
eaa0 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a rface.OperationInterface.{......
eac0 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 65 28 29 3b 0a 0a 0a public.function.getJobType();...
eae0 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 6e 28 29 3b ....public.function.getReason();
eb00 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 72 69 6e .......public.function.__toStrin
eb20 67 28 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 g();.}.<?php............namespac
eb40 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 4f 70 e.Composer\DependencyResolver\Op
eb60 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 65 5c 56 eration;..use.Composer\Package\V
eb80 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 73 ersion\VersionParser;.use.Compos
eba0 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;....
ebc0 0a 0a 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 ...abstract.class.SolverOperatio
ebe0 6e 20 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 n.implements.OperationInterface.
ec00 7b 0a 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 {.protected.$reason;.......publi
ec20 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 65 61 73 6f 6e 20 3d c.function.__construct($reason.=
ec40 20 6e 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 .null).{.$this->reason.=.$reason
ec60 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 52 65 61 ;.}.......public.function.getRea
ec80 73 6f 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 son().{.return.$this->reason;.}.
eca0 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 56 65 72 73 69 6f .protected.function.formatVersio
ecc0 6e 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 72 n(PackageInterface.$package).{.r
ece0 65 74 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 eturn.VersionParser::formatVersi
ed00 6f 6e 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 on($package);.}.}.<?php.........
ed20 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
ed40 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 42 75 67 45 78 63 Resolver;.....class.SolverBugExc
ed60 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 65 70 74 69 6f 6e eption.extends.\RuntimeException
ed80 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 75 63 74 28 24 .{.public.function.__construct($
eda0 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 72 75 63 74 28 0a message).{.parent::__construct(.
edc0 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 20 77 61 73 20 6d $message."\nThis.exception.was.m
ede0 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 20 69 6e 20 43 6f ost.likely.caused.by.a.bug.in.Co
ee00 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 20 74 68 65 20 63 mposer.\n".."Please.report.the.c
ee20 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 65 72 72 6f 72 20 ommand.you.ran,.the.exact.error.
ee40 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 70 6f 73 65 72 2e you.received,.and.your.composer.
ee60 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 2f 63 6f 6d 70 6f json.on.https://github.com/compo
ee80 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 6b 20 79 6f 75 21 ser/composer/issues.-.thank.you!
eea0 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 0a 6e 61 6d 65 73 \n");.}.}.<?php............names
eec0 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
eee0 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 72 6f 74 ;.......class.Problem.{.....prot
ef00 65 63 74 65 64 20 24 72 65 61 73 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ected.$reasons;.......public.fun
ef20 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 ction.addRule(Rule.$rule).{.$thi
ef40 73 2d 3e 61 64 64 52 65 61 73 6f 6e 28 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 2c 20 61 72 72 s->addReason($rule->getId(),.arr
ef60 61 79 28 0a 27 72 75 6c 65 27 20 3d 3e 20 24 72 75 6c 65 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 ay(.'rule'.=>.$rule,.'job'.=>.$r
ef80 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ule->getJob(),.));.}.......publi
efa0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getReasons().{.return
efc0 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$this->reasons;.}.....public.fu
efe0 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 63 6f 75 6e 74 28 nction.__toString().{.if.(count(
f000 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 20 3d 3d 3d 20 31 29 20 7b 0a 72 65 73 65 74 28 24 $this->reasons).===.1).{.reset($
f020 74 68 69 73 2d 3e 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 this->reasons);.$reason.=.curren
f040 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 t($this->reasons);..$rule.=.$rea
f060 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 27 6a 6f 62 son['rule'];.$job.=.$reason['job
f080 27 5d 3b 0a 0a 69 66 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 '];..if.($job.&&.$job['cmd'].===
f0a0 20 27 69 6e 73 74 61 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 .'install'.&&.empty($job['packag
f0c0 65 73 27 5d 29 29 20 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 es'])).{...if.(0.===.stripos($jo
f0e0 62 5b 27 70 61 63 6b 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 b['packageName'],.'ext-')).{.$ex
f100 74 20 3d 20 73 75 62 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 t.=.substr($job['packageName'],.
f120 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 65 64 28 24 65 4);.$error.=.extension_loaded($e
f140 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 6e 20 28 27 2e xt).?.'has.the.wrong.version.('.
f160 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 65 64 27 20 3a phpversion($ext).').installed'.:
f180 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 65 6d 27 3b 0a .'is.missing.from.your.system';.
f1a0 0a 72 65 74 75 72 6e 20 27 54 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e .return.'The.requested.PHP.exten
f1c0 73 69 6f 6e 20 22 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 22 20 27 sion."'.$job['packageName'].'".'
f1e0 2e 24 74 68 69 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 .$this->constraintToText($job['c
f200 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 72 65 74 75 onstraint']).$error.'.';.}..retu
f220 72 6e 20 27 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6a 6f rn.'The.requested.package."'.$jo
f240 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 22 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e b['packageName'].'".'.$this->con
f260 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 74 27 5d straintToText($job['constraint']
f280 29 2e 27 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 0a 0a 24 6d ).'could.not.be.found.';.}.}..$m
f2a0 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 22 50 72 6f 62 6c 65 6d 20 63 61 75 73 65 64 20 essages.=.array("Problem.caused.
f2c0 62 79 3a 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 20 by:");..foreach.($this->reasons.
f2e0 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 as.$reason).{..$rule.=.$reason['
f300 72 75 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 rule'];.$job.=.$reason['job'];..
f320 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d if.($job).{.$messages[].=.$this-
f340 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 75 6c >jobToText($job);.}.elseif.($rul
f360 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 e).{.if.($rule.instanceof.Rule).
f380 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 74 6f 48 75 6d 61 6e 52 65 {.$messages[].=.$rule->toHumanRe
f3a0 61 64 61 62 6c 65 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d adableString();.}.}.}..return.im
f3c0 70 6c 6f 64 65 28 22 5c 6e 5c 74 5c 74 5c 74 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a plode("\n\t\t\t-.",.$messages);.
f3e0 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 61 64 64 52 }........protected.function.addR
f400 65 61 73 6f 6e 28 24 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 eason($id,.$reason).{.if.(!isset
f420 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e ($this->reasons[$id])).{.$this->
f440 72 65 61 73 6f 6e 73 5b 24 69 64 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a reasons[$id].=.$reason;.}.}.....
f460 0a 0a 0a 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 ...protected.function.jobToText(
f480 24 6a 6f 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 $job).{.switch.($job['cmd']).{.c
f4a0 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 ase.'install':.return.'Installat
f4c0 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e ion.of.package."'.$job['packageN
f4e0 61 6d 65 27 5d 2e 27 22 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 ame'].'".'.$this->constraintToTe
f500 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 77 61 73 20 72 65 71 75 xt($job['constraint']).'was.requ
f520 65 73 74 65 64 2e 20 53 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 70 61 63 6b 61 67 65 73 20 5b ested..Satisfiable.by.packages.[
f540 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d '.implode(',.',.$job['packages']
f560 29 2e 27 5d 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 55 ).'].';.case.'update':.return.'U
f580 70 64 61 74 65 20 6f 66 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 pdate.of.package."'.$job['packag
f5a0 65 4e 61 6d 65 27 5d 2e 27 22 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f eName'].'".'.$this->constraintTo
f5c0 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 77 61 73 20 72 65 Text($job['constraint']).'was.re
f5e0 71 75 65 73 74 65 64 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 72 65 74 75 72 6e quested.';.case.'remove':.return
f600 20 27 52 65 6d 6f 76 61 6c 20 6f 66 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6a 6f 62 5b 27 70 61 .'Removal.of.package."'.$job['pa
f620 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 22 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 ckageName'].'".'.$this->constrai
f640 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 2e 27 77 61 ntToText($job['constraint']).'wa
f660 73 20 72 65 71 75 65 73 74 65 64 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d s.requested.';.}..return.'Job(cm
f680 64 3d 27 2e 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 d='.$job['cmd'].',.target='.$job
f6a0 5b 27 70 61 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 69 ['packageName'].',.packages=['.i
f6c0 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 mplode(',.',.$job['packages']).'
f6e0 5d 29 27 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 ])';.}........protected.function
f700 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b .constraintToText($constraint).{
f720 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 77 69 74 68 20 63 6f .return.($constraint).?.'with.co
f740 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 20 27 20 3a 20 27 27 3b nstraint.'.$constraint.'.'.:.'';
f760 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.
f780 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 75 73 Composer\DependencyResolver;..us
f7a0 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 65 3b 0a e.Composer\Package\BasePackage;.
f7c0 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 74 72 61 use.Composer\Package\LinkConstra
f7e0 69 6e 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 int\LinkConstraintInterface;.use
f800 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
f820 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 72 nterface;.use.Composer\Repositor
f840 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
f860 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 6f ser\Repository\InstalledReposito
f880 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 69 ryInterface;.use.Composer\Reposi
f8a0 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a tory\PlatformRepository;........
f8c0 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f class.Pool.{.protected.$reposito
f8e0 72 69 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 70 61 63 6b 61 ries.=.array();.protected.$packa
f900 67 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 70 61 63 6b 61 67 ges.=.array();.protected.$packag
f920 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 63 eByName.=.array();.protected.$ac
f940 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ceptableStabilities;.protected.$
f960 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 0a 0a 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 stabilityFlags;....public.functi
f980 6f 6e 20 5f 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 on.__construct($minimumStability
f9a0 20 3d 20 27 64 65 76 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 .=.'dev',.array.$stabilityFlags.
f9c0 3d 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 =.array()).{.$stabilities.=.Base
f9e0 50 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 61 63 Package::$stabilities;.$this->ac
fa00 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ceptableStabilities.=.array();.f
fa20 6f 72 65 61 63 68 20 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 oreach.(BasePackage::$stabilitie
fa40 73 20 61 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 s.as.$stability.=>.$value).{.if.
fa60 28 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 ($value.<=.BasePackage::$stabili
fa80 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 ties[$minimumStability]).{.$this
faa0 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 69 ->acceptableStabilities[$stabili
fac0 74 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 ty].=.$value;.}.}.$this->stabili
fae0 74 79 46 6c 61 67 73 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 tyFlags.=.$stabilityFlags;.}....
fb00 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
fb20 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 69 66 (RepositoryInterface.$repo).{.if
fb40 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 70 6f .($repo.instanceof.CompositeRepo
fb60 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 65 70 sitory).{.$repos.=.$repo->getRep
fb80 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 20 61 ositories();.}.else.{.$repos.=.a
fba0 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 24 69 64 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 rray($repo);.}..$id.=.count($thi
fbc0 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 2b 20 31 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f s->packages).+.1;.foreach.($repo
fbe0 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
fc00 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
fc20 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.||.$
fc40 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
fc60 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 oryInterface;.foreach.($repo->ge
fc80 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 24 6e 61 6d 65 tPackages().as.$package).{.$name
fca0 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 73 74 61 62 69 6c 69 .=.$package->getName();.$stabili
fcc0 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 ty.=.$package->getStability();.i
fce0 66 20 28 0a 0a 20 24 65 78 65 6d 70 74 0a 0a 20 7c 7c 20 28 21 69 73 73 65 74 28 24 74 68 69 73 f.(...$exempt...||.(!isset($this
fd00 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 0a 26 26 20 69 73 73 65 ->stabilityFlags[$name]).&&.isse
fd20 74 28 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 5b 24 t($this->acceptableStabilities[$
fd40 73 74 61 62 69 6c 69 74 79 5d 29 29 0a 0a 20 7c 7c 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e stability]))...||.(isset($this->
fd60 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 0a 26 26 20 42 61 73 65 50 61 stabilityFlags[$name]).&&.BasePa
fd80 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 ckage::$stabilities[$stability].
fda0 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 0a <=.$this->stabilityFlags[$name].
fdc0 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 69 64 2b 2b 29 3b 0a 24 74 ).).{.$package->setId($id++);.$t
fde0 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 3b 0a 0a 66 6f 72 his->packages[].=.$package;..for
fe00 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 6e each.($package->getNames().as.$n
fe20 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 6d ame).{.$this->packageByName[$nam
fe40 65 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c e][].=.$package;.}.}.}.}.}..publ
fe60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f ic.function.getPriority(Reposito
fe80 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d ryInterface.$repo).{.$priority.=
fea0 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 65 70 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f .array_search($repo,.$this->repo
fec0 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 sitories,.true);..if.(false.===.
fee0 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 $priority).{.throw.new.\RuntimeE
ff00 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 xception("Could.not.determine.re
ff20 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 79 2e 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 pository.priority..The.repositor
ff40 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c y.was.not.registered.in.the.pool
ff60 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d 24 70 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a .");.}..return.-$priority;.}....
ff80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 ....public.function.packageById(
ffa0 24 69 64 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 5b 24 69 $id).{.return.$this->packages[$i
ffc0 64 20 2d 20 31 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 d.-.1];.}.......public.function.
ffe0 67 65 74 4d 61 78 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d getMaxId().{.return.count($this-
10000 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 >packages);.}..........public.fu
10020 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 4c 69 6e 6b 43 nction.whatProvides($name,.LinkC
10040 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.=
10060 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 .null).{.if.(!isset($this->packa
10080 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 geByName[$name])).{.return.array
100a0 28 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b ();.}..$candidates.=.$this->pack
100c0 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 ageByName[$name];..if.(null.===.
100e0 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 6e 64 69 64 61 74 65 $constraint).{.return.$candidate
10100 73 3b 0a 7d 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 s;.}..$result.=.array();..foreac
10120 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a h.($candidates.as.$candidate).{.
10140 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d 3e 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 24 if.($candidate->matches($name,.$
10160 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 63 61 6e 64 constraint)).{.$result[].=.$cand
10180 69 64 61 74 65 3b 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 70 idate;.}.}..return.$result;.}..p
101a0 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 61 67 65 28 ublic.function.literalToPackage(
101c0 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 28 24 6c 69 $literal).{.$packageId.=.abs($li
101e0 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 67 65 42 79 teral);..return.$this->packageBy
10200 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 6e 63 74 69 Id($packageId);.}..public.functi
10220 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 0a 7b 0a 72 on.literalToString($literal).{.r
10240 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 27 2d 27 29 eturn.($literal.>.0.?.'+'.:.'-')
10260 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 6c 69 74 65 ...$this->literalToPackage($lite
10280 72 61 6c 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 ral);.}.}.<?php............names
102a0 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
102c0 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 49 ;..use.Composer\Package\PackageI
102e0 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 49 6e nterface;.....interface.PolicyIn
10300 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 69 6f terface.{.public.function.versio
10320 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 50 61 nCompare(PackageInterface.$a,.Pa
10340 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 0a 70 ckageInterface.$b,.$operator);.p
10360 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 67 65 ublic.function.findUpdatePackage
10380 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 4d 61 s(Pool.$pool,.array.$installedMa
103a0 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 0a 70 p,.PackageInterface.$package);.p
103c0 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 61 63 ublic.function.selectPreferedPac
103e0 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 6c 6c kages(Pool.$pool,.array.$install
10400 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 68 70 edMap,.array.$literals);.}.<?php
10420 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
10440 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 63 6c 61 73 73 20 44 ependencyResolver;.......class.D
10460 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 0a 7b 0a ecisions.implements.\Iterator.{.
10480 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 73 const.DECISION_LITERAL.=.0;.cons
104a0 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 65 t.DECISION_REASON.=.1;..protecte
104c0 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 3b d.$pool;.protected.$decisionMap;
104e0 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 61 .protected.$decisionQueue.=.arra
10500 79 28 29 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 46 72 65 y();.protected.$decisionQueueFre
10520 65 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 69 6f 6e 20 5f 5f e.=.array();..public.function.__
10540 63 6f 6e 73 74 72 75 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 construct($pool).{.$this->pool.=
10560 20 24 70 6f 6f 6c 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 .$pool;..if.(version_compare(PHP
10580 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 34 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 74 68 69 _VERSION,.'5.3.4',.'>=')).{.$thi
105a0 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 6e 65 77 20 5c 53 70 6c 46 69 78 65 64 41 72 s->decisionMap.=.new.\SplFixedAr
105c0 72 61 79 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 67 65 74 4d 61 78 49 64 28 29 20 2b 20 31 29 ray($this->pool->getMaxId().+.1)
105e0 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 4d 61 70 20 3d 20 ;.}.else.{.$this->decisionMap.=.
10600 61 72 72 61 79 5f 66 69 6c 6c 28 30 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 67 65 74 4d 61 array_fill(0,.$this->pool->getMa
10620 78 49 64 28 29 20 2b 20 31 2c 20 30 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 xId().+.1,.0);.}.}..protected.fu
10640 6e 63 74 69 6f 6e 20 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 nction.addDecision($literal,.$le
10660 76 65 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 vel).{.$packageId.=.abs($literal
10680 29 3b 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 );..$previousDecision.=.$this->d
106a0 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 3b 0a 69 66 20 28 24 70 72 65 ecisionMap[$packageId];.if.($pre
106c0 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 72 61 6c 53 74 viousDecision.!=.0).{.$literalSt
106e0 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 54 6f 53 74 72 ring.=.$this->pool->literalToStr
10700 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 74 68 69 73 2d ing($literal);.$package.=.$this-
10720 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 72 61 6c >pool->literalToPackage($literal
10740 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 74 69 6f 6e 28 );.throw.new.SolverBugException(
10760 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 53 74 72 69 6e ."Trying.to.decide.$literalStrin
10780 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 75 67 68 20 24 g.on.level.$level,.even.though.$
107a0 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 64 65 64 20 61 package.was.previously.decided.a
107c0 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 2e 22 2e 22 0a s.".(int).$previousDecision.".".
107e0 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 74 68 69 73 2d );.}..if.($literal.>.0).{.$this-
10800 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 24 6c 65 76 65 >decisionMap[$packageId].=.$leve
10820 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 4d 61 70 5b 24 l;.}.else.{.$this->decisionMap[$
10840 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 0a 70 75 62 6c 69 packageId].=.-$level;.}.}..publi
10860 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 6c 2c 20 24 6c 65 76 c.function.decide($literal,.$lev
10880 65 6c 2c 20 24 77 68 79 2c 20 24 61 64 64 54 6f 46 72 65 65 51 75 65 75 65 20 3d 20 66 61 6c 73 el,.$why,.$addToFreeQueue.=.fals
108a0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c e).{.$this->addDecision($literal
108c0 2c 20 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b ,.$level);.$this->decisionQueue[
108e0 5d 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 ].=.array(.self::DECISION_LITERA
10900 4c 20 3d 3e 20 24 6c 69 74 65 72 61 6c 2c 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 L.=>.$literal,.self::DECISION_RE
10920 41 53 4f 4e 20 3d 3e 20 24 77 68 79 2c 0a 29 3b 0a 0a 69 66 20 28 24 61 64 64 54 6f 46 72 65 65 ASON.=>.$why,.);..if.($addToFree
10940 51 75 65 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 46 72 65 Queue).{.$this->decisionQueueFre
10960 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).-.
10980 31 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 1].=.true;.}.}..public.function.
109a0 63 6f 6e 74 61 69 6e 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 contain($literal).{.$packageId.=
109c0 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 74 68 69 73 2d .abs($literal);..return.(.$this-
109e0 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 3e 20 30 20 26 26 20 >decisionMap[$packageId].>.0.&&.
10a00 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 7c 7c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d $literal.>.0.||.$this->decisionM
10a20 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c ap[$packageId].<.0.&&.$literal.<
10a40 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 73 61 74 69 73 66 79 .0.);.}..public.function.satisfy
10a60 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 28 24 6c ($literal).{.$packageId.=.abs($l
10a80 69 74 65 72 61 6c 29 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 iteral);..return.(.$literal.>.0.
10aa0 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
10ac0 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 24 74 68 69 73 2d 3e ].>.0.||.$literal.<.0.&&.$this->
10ae0 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d decisionMap[$packageId].<.0.);.}
10b00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 ..public.function.conflict($lite
10b20 72 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 ral).{.$packageId.=.abs($literal
10b40 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 );..return.(.($this->decisionMap
10b60 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c 20 30 [$packageId].>.0.&&.$literal.<.0
10b80 29 20 7c 7c 0a 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 ).||.($this->decisionMap[$packag
10ba0 65 49 64 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 eId].<.0.&&.$literal.>.0).);.}..
10bc0 70 75 62 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 public.function.decided($literal
10be0 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 OrPackageId).{.return.$this->dec
10c00 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 67 65 49 64 isionMap[abs($literalOrPackageId
10c20 29 5d 20 21 3d 20 30 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 )].!=.0;.}..public.function.unde
10c40 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
10c60 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 urn.$this->decisionMap[abs($lite
10c80 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 20 3d 3d 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 ralOrPackageId)].==.0;.}..public
10ca0 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 72 61 .function.decidedInstall($litera
10cc0 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 lOrPackageId).{.return.$this->de
10ce0 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 67 65 49 cisionMap[abs($literalOrPackageI
10d00 64 29 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 20 64 65 63 69 d)].>.0;.}..public.function.deci
10d20 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 49 64 29 0a 7b sionLevel($literalOrPackageId).{
10d40 0a 72 65 74 75 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 .return.abs($this->decisionMap[a
10d60 62 73 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 bs($literalOrPackageId)]);.}..pu
10d80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 blic.function.decisionRule($lite
10da0 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
10dc0 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 66 6f 72 65 61 63 bs($literalOrPackageId);..foreac
10de0 68 20 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 h.($this->decisionQueue.as.$i.=>
10e00 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d .$decision).{.if.($packageId.===
10e20 20 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 49 .abs($decision[self::DECISION_LI
10e40 54 45 52 41 4c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 TERAL])).{.return.$decision[self
10e60 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ::DECISION_REASON];.}.}..return.
10e80 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 null;.}..public.function.atOffse
10ea0 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e t($queueOffset).{.return.$this->
10ec0 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a decisionQueue[$queueOffset];.}..
10ee0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 public.function.validOffset($que
10f00 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 ueOffset).{.return.$queueOffset.
10f20 3e 3d 20 30 20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 >=.0.&&.$queueOffset.<.count($th
10f40 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 75 is->decisionQueue);.}..public.fu
10f60 6e 63 74 69 6f 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.lastReason().{.return.$th
10f80 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 is->decisionQueue[count($this->d
10fa0 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f ecisionQueue).-.1][self::DECISIO
10fc0 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 N_REASON];.}..public.function.la
10fe0 73 74 4c 69 74 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 stLiteral().{.return.$this->deci
11000 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
11020 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 4c 49 54 45 52 41 ueue).-.1][self::DECISION_LITERA
11040 4c 5d 3b 0a 7d 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 L];.}..public.function.reset().{
11060 0a 77 68 69 6c 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 .while.($decision.=.array_pop($t
11080 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 his->decisionQueue)).{.$this->de
110a0 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 65 6c 66 3a 3a 44 45 cisionMap[abs($decision[self::DE
110c0 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 0a 24 74 68 69 73 2d CISION_LITERAL])].=.0;.}..$this-
110e0 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 46 72 65 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a >decisionQueueFree.=.array();.}.
11100 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 .public.function.resetToOffset($
11120 6f 66 66 73 65 74 29 0a 7b 0a 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 offset).{.while.(count($this->de
11140 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 cisionQueue).>.$offset.+.1).{.$d
11160 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 69 73 ecision.=.array_pop($this->decis
11180 69 6f 6e 51 75 65 75 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e ionQueue);.unset($this->decision
111a0 51 75 65 75 65 46 72 65 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 QueueFree[count($this->decisionQ
111c0 75 65 75 65 29 5d 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 ueue)]);.$this->decisionMap[abs(
111e0 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 49 54 45 52 41 4c $decision[self::DECISION_LITERAL
11200 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 69 6f 6e 20 72 65 ])].=.0;.}.}..public.function.re
11220 76 65 72 74 4c 61 73 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b vertLast().{.$this->decisionMap[
11240 61 62 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a abs($this->lastLiteral())].=.0;.
11260 61 72 72 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 array_pop($this->decisionQueue);
11280 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 61 78 4f 66 66 73 65 74 .}..public.function.getMaxOffset
112a0 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 64 65 63 69 73 69 6f ().{.return.count($this->decisio
112c0 6e 51 75 65 75 65 29 20 2d 20 31 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nQueue).-.1;.}..public.function.
112e0 72 65 77 69 6e 64 28 29 0a 7b 0a 65 6e 64 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 rewind().{.end($this->decisionQu
11300 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 63 75 72 72 65 6e 74 eue);.}..public.function.current
11320 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 ().{.return.current($this->decis
11340 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 6b 65 ionQueue);.}..public.function.ke
11360 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b 65 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e y().{.return.key($this->decision
11380 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 6e 65 78 74 28 Queue);.}..public.function.next(
113a0 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 76 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 ).{.return.prev($this->decisionQ
113c0 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 76 61 6c 69 64 28 ueue);.}..public.function.valid(
113e0 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 63 75 72 72 65 6e 74 28 24 74 68 ).{.return.false.!==.current($th
11400 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 75 is->decisionQueue);.}..public.fu
11420 6e 63 74 69 6f 6e 20 69 73 45 6d 70 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 nction.isEmpty().{.return.count(
11440 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 7d $this->decisionQueue).===.0;.}.}
11460 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
11480 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;........
114a0 0a 0a 0a 0a 63 6c 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 ....class.RuleWatchGraph.{.prote
114c0 63 74 65 64 20 24 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 cted.$watchChains.=.array();....
114e0 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 6e 73 65 72 74 ..........public.function.insert
11500 28 52 75 6c 65 57 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 (RuleWatchNode.$node).{.if.($nod
11520 65 2d 3e 67 65 74 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 e->getRule()->isAssertion()).{.r
11540 65 74 75 72 6e 3b 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 eturn;.}..foreach.(array($node->
11560 77 61 74 63 68 31 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 watch1,.$node->watch2).as.$liter
11580 61 6c 29 20 7b 0a 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 al).{.if.(!isset($this->watchCha
115a0 69 6e 73 5b 24 6c 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 ins[$literal])).{.$this->watchCh
115c0 61 69 6e 73 5b 24 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 ains[$literal].=.new.RuleWatchCh
115e0 61 69 6e 3b 0a 7d 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 ain;.}..$this->watchChains[$lite
11600 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 0a 0a 0a 0a 0a 0a ral]->unshift($node);.}.}.......
11620 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 6f ..................public.functio
11640 6e 20 70 72 6f 70 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 n.propagateLiteral($decidedLiter
11660 61 6c 2c 20 24 6c 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 al,.$level,.$decisions).{.......
11680 24 6c 69 74 65 72 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 $literal.=.-$decidedLiteral;..if
116a0 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 69 74 .(!isset($this->watchChains[$lit
116c0 65 72 61 6c 5d 29 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 eral])).{.return.null;.}..$chain
116e0 20 3d 20 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 3b .=.$this->watchChains[$literal];
11700 0a 0a 24 63 68 61 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 ..$chain->rewind();.while.($chai
11720 6e 2d 3e 76 61 6c 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 n->valid()).{.$node.=.$chain->cu
11740 72 72 65 6e 74 28 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 rrent();.$otherWatch.=.$node->ge
11760 74 4f 74 68 65 72 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 tOtherWatch($literal);..if.(!$no
11780 64 65 2d 3e 67 65 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 de->getRule()->isDisabled().&&.!
117a0 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 74 61 69 6e 28 24 6f 74 68 65 72 57 61 74 63 68 29 $decisions->contain($otherWatch)
117c0 29 20 7b 0a 24 72 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 ).{.$ruleLiterals.=.$node->getRu
117e0 6c 65 28 29 2d 3e 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 le()->getLiterals();..$alternati
11800 76 65 4c 69 74 65 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 veLiterals.=.array_filter($ruleL
11820 69 74 65 72 61 6c 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 iterals,.function.($ruleLiteral)
11840 20 75 73 65 20 28 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 .use.($literal,.$otherWatch,.$de
11860 63 69 73 69 6f 6e 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 cisions).{.return.$literal.!==.$
11880 72 75 6c 65 4c 69 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 ruleLiteral.&&.$otherWatch.!==.$
118a0 72 75 6c 65 4c 69 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 ruleLiteral.&&.!$decisions->conf
118c0 6c 69 63 74 28 24 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 lict($ruleLiteral);.});..if.($al
118e0 74 65 72 6e 61 74 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 ternativeLiterals).{.reset($alte
11900 72 6e 61 74 69 76 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 rnativeLiterals);.$this->moveWat
11920 63 68 28 24 6c 69 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 ch($literal,.current($alternativ
11940 65 4c 69 74 65 72 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 eLiterals),.$node);.continue;.}.
11960 0a 69 66 20 28 24 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 .if.($decisions->conflict($other
11980 57 61 74 63 68 29 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 Watch)).{.return.$node->getRule(
119a0 29 3b 0a 7d 0a 0a 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 );.}..$decisions->decide($otherW
119c0 61 74 63 68 2c 20 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 atch,.$level,.$node->getRule());
119e0 0a 7d 0a 0a 24 63 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 .}..$chain->next();.}..return.nu
11a00 6c 6c 3b 0a 7d 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 ll;.}...........protected.functi
11a20 6f 6e 20 6d 6f 76 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 on.moveWatch($fromLiteral,.$toLi
11a40 74 65 72 61 6c 2c 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 teral,.$node).{.if.(!isset($this
11a60 2d 3e 77 61 74 63 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 ->watchChains[$toLiteral])).{.$t
11a80 68 69 73 2d 3e 77 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 his->watchChains[$toLiteral].=.n
11aa0 65 77 20 52 75 6c 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 ew.RuleWatchChain;.}..$node->mov
11ac0 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 29 eWatch($fromLiteral,.$toLiteral)
11ae0 3b 0a 24 74 68 69 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 ;.$this->watchChains[$fromLitera
11b00 6c 5d 2d 3e 72 65 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 l]->remove();.$this->watchChains
11b20 5b 24 74 6f 4c 69 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 [$toLiteral]->unshift($node);.}.
11b40 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
11b60 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 63 6c poser\DependencyResolver;.....cl
11b80 61 73 73 20 52 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 ass.RuleSet.implements.\Iterator
11ba0 41 67 67 72 65 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 Aggregate,.\Countable.{...const.
11bc0 54 59 50 45 5f 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 TYPE_PACKAGE.=.0;.const.TYPE_JOB
11be0 20 3d 20 31 3b 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 .=.1;.const.TYPE_LEARNED.=.4;..p
11c00 72 6f 74 65 63 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 rotected.static.$types.=.array(.
11c20 2d 31 20 3d 3e 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 -1.=>.'UNKNOWN',.self::TYPE_PACK
11c40 41 47 45 20 3d 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 AGE.=>.'PACKAGE',.self::TYPE_JOB
11c60 20 3d 3e 20 27 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 .=>.'JOB',.self::TYPE_LEARNED.=>
11c80 20 27 4c 45 41 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 .'LEARNED',.);..protected.$rules
11ca0 3b 0a 70 72 6f 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 ;.protected.$ruleById;.protected
11cc0 20 24 6e 65 78 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 .$nextRuleId;..protected.$rulesB
11ce0 79 48 61 73 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 yHash;..public.function.__constr
11d00 75 63 74 28 29 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 uct().{.$this->nextRuleId.=.0;..
11d20 66 6f 72 65 61 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 foreach.($this->getTypes().as.$t
11d40 79 70 65 29 20 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 ype).{.$this->rules[$type].=.arr
11d60 61 79 28 29 3b 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 ay();.}..$this->rulesByHash.=.ar
11d80 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 61 64 64 28 52 75 ray();.}..public.function.add(Ru
11da0 6c 65 20 24 72 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 le.$rule,.$type).{.if.(!isset(se
11dc0 6c 66 3a 3a 24 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 lf::$types[$type])).{.throw.new.
11de0 5c 4f 75 74 4f 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 \OutOfBoundsException('Unknown.r
11e00 75 6c 65 20 74 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 ule.type:.'...$type);.}..if.(!is
11e20 73 65 74 28 24 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 set($this->rules[$type])).{.$thi
11e40 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 0a 7d 0a 0a 24 74 s->rules[$type].=.array();.}..$t
11e60 68 69 73 2d 3e 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 his->rules[$type][].=.$rule;.$th
11e80 69 73 2d 3e 72 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 is->ruleById[$this->nextRuleId].
11ea0 3d 20 24 72 75 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 =.$rule;.$rule->setType($type);.
11ec0 0a 24 72 75 6c 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 .$rule->setId($this->nextRuleId)
11ee0 3b 0a 24 74 68 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 ;.$this->nextRuleId++;..$hash.=.
11f00 24 72 75 6c 65 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 $rule->getHash();.if.(!isset($th
11f20 69 73 2d 3e 72 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 is->rulesByHash[$hash])).{.$this
11f40 2d 3e 72 75 6c 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 ->rulesByHash[$hash].=.array($ru
11f60 6c 65 29 3b 0a 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 le);.}.else.{.$this->rulesByHash
11f80 5b 24 68 61 73 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 [$hash][].=.$rule;.}.}..public.f
11fa0 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 24 74 68 69 73 2d 3e unction.count().{.return.$this->
11fc0 6e 65 78 74 52 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 nextRuleId;.}..public.function.r
11fe0 75 6c 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 72 75 6c uleById($id).{.return.$this->rul
12000 65 42 79 49 64 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 eById[$id];.}..public.function.g
12020 65 74 52 75 6c 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 etRules().{.return.$this->rules;
12040 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 74 6f 72 28 .}..public.function.getIterator(
12060 29 0a 7b 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 ).{.return.new.RuleSetIterator($
12080 74 68 69 73 2d 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 this->getRules());.}..public.fun
120a0 63 74 69 6f 6e 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 ction.getIteratorFor($types).{.i
120c0 66 20 28 21 69 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 f.(!is_array($types)).{.$types.=
120e0 20 61 72 72 61 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 .array($types);.}..$allRules.=.$
12100 74 68 69 73 2d 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 this->getRules();.$rules.=.array
12120 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 7b ();..foreach.($types.as.$type).{
12140 0a 24 72 75 6c 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 .$rules[$type].=.$allRules[$type
12160 5d 3b 0a 7d 0a 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 ];.}..return.new.RuleSetIterator
12180 28 24 72 75 6c 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 ($rules);.}..public.function.get
121a0 49 74 65 72 61 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 IteratorWithout($types).{.if.(!i
121c0 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
121e0 79 28 24 74 79 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 y($types);.}..$rules.=.$this->ge
12200 74 52 75 6c 65 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 tRules();..foreach.($types.as.$t
12220 79 70 65 29 20 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 ype).{.unset($rules[$type]);.}..
12240 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 65 return.new.RuleSetIterator($rule
12260 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 54 79 70 65 73 28 s);.}..public.function.getTypes(
12280 29 0a 7b 0a 24 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 ).{.$types.=.self::$types;.unset
122a0 28 24 74 79 70 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 ($types[-1]);..return.array_keys
122c0 28 24 74 79 70 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 ($types);.}..public.function.con
122e0 74 61 69 6e 73 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 tainsEqual($rule).{.if.(isset($t
12300 68 69 73 2d 3e 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 his->rulesByHash[$rule->getHash(
12320 29 5d 29 29 20 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 )])).{.$potentialDuplicates.=.$t
12340 68 69 73 2d 3e 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 his->rulesByHash[$rule->getHash(
12360 29 5d 3b 0a 66 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 )];.foreach.($potentialDuplicate
12380 73 20 61 73 20 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 s.as.$potentialDuplicate).{.if.(
123a0 24 72 75 6c 65 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 $rule->equals($potentialDuplicat
123c0 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 72 65 74 75 72 6e e)).{.return.true;.}.}.}..return
123e0 20 66 61 6c 73 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 .false;.}..public.function.__toS
12400 74 72 69 6e 67 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 tring().{.$string.=."\n";.foreac
12420 68 20 28 24 74 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 h.($this->rules.as.$type.=>.$rul
12440 65 73 29 20 7b 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 es).{.$string..=.str_pad(self::$
12460 74 79 70 65 73 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 types[$type],.8,.'.')...":.";.fo
12480 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 73 74 72 69 6e reach.($rules.as.$rule).{.$strin
124a0 67 20 2e 3d 20 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 g..=.$rule."\n";.}.$string..=."\
124c0 6e 5c 6e 22 3b 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 n\n";.}..return.$string;.}.}.<?p
124e0 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
12500 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 0a 63 6c 61 \DependencyResolver;.........cla
12520 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 61 74 63 68 ss.RuleWatchNode.{.public.$watch
12540 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 64 20 24 72 1;.public.$watch2;..protected.$r
12560 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 5f 63 6f 6e ule;.......public.function.__con
12580 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 3d 20 24 72 struct($rule).{.$this->rule.=.$r
125a0 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 4c 69 74 65 ule;..$literals.=.$rule->getLite
125c0 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 6e 74 28 24 rals();..$this->watch1.=.count($
125e0 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 20 3a 20 30 literals).>.0.?.$literals[0].:.0
12600 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 65 72 61 6c ;.$this->watch2.=.count($literal
12620 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 0a 0a 0a 0a s).>.1.?.$literals[1].:.0;.}....
12640 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 4f 6e 48 69 ......public.function.watch2OnHi
12660 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 7b 0a 24 6c ghest(Decisions.$decisions).{.$l
12680 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 74 65 72 61 iterals.=.$this->rule->getLitera
126a0 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 7b 0a 72 65 ls();....if.($literals.<.3).{.re
126c0 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 6f 72 65 61 turn;.}..$watchLevel.=.0;..forea
126e0 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 6c 65 ch.($literals.as.$literal).{.$le
12700 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 76 65 6c 28 vel.=.$decisions->decisionLevel(
12720 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 74 63 68 4c $literal);..if.($level.>.$watchL
12740 65 76 65 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c evel).{.$this->rule->watch2.=.$l
12760 69 74 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 iteral;.$watchLevel.=.$level;.}.
12780 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 67 65 74 52 75 6c }.}.......public.function.getRul
127a0 65 28 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 e().{.return.$this->rule;.}.....
127c0 0a 0a 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 ...public.function.getOtherWatch
127e0 28 24 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 ($literal).{.if.($this->watch1.=
12800 3d 20 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 =.$literal).{.return.$this->watc
12820 68 32 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 h2;.}.else.{.return.$this->watch
12840 31 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 6d 6f 1;.}.}........public.function.mo
12860 76 65 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 veWatch($from,.$to).{.if.($this-
12880 3e 77 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 >watch1.==.$from).{.$this->watch
128a0 31 20 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 1.=.$to;.}.else.{.$this->watch2.
128c0 3d 20 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 =.$to;.}.}.}.<?php............na
128e0 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
12900 76 65 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 ver;..use.Composer\Repository\Re
12920 70 6f 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 positoryInterface;.....class.Sol
12940 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 ver.{.protected.$policy;.protect
12960 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a ed.$pool;.protected.$installed;.
12980 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c protected.$rules;.protected.$rul
129a0 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 eSetGenerator;.protected.$update
129c0 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 All;..protected.$addedMap.=.arra
129e0 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 y();.protected.$updateMap.=.arra
12a00 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 47 72 61 70 68 3b 0a 70 72 6f 74 y();.protected.$watchGraph;.prot
12a20 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 ected.$decisions;.protected.$ins
12a40 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 70 61 67 61 74 65 talledMap;..protected.$propagate
12a60 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 Index;.protected.$branches.=.arr
12a80 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 20 3d 20 61 72 72 61 ay();.protected.$problems.=.arra
12aa0 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 50 6f 6f 6c 20 3d 20 61 72 y();.protected.$learnedPool.=.ar
12ac0 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 73 74 72 ray();..public.function.__constr
12ae0 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f uct(PolicyInterface.$policy,.Poo
12b00 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e l.$pool,.RepositoryInterface.$in
12b20 73 74 61 6c 6c 65 64 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 stalled).{.$this->policy.=.$poli
12b40 63 79 3b 0a 24 74 68 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 cy;.$this->pool.=.$pool;.$this->
12b60 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 68 69 73 2d 3e 72 installed.=.$installed;.$this->r
12b80 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 47 65 6e uleSetGenerator.=.new.RuleSetGen
12ba0 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a 0a 0a 20 70 72 69 erator($policy,.$pool);.}....pri
12bc0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 vate.function.makeAssertionRuleD
12be0 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 20 3d 20 24 74 ecisions().{.$decisionStart.=.$t
12c00 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 67 65 74 4d 61 78 4f 66 66 73 65 74 28 29 3b 0a his->decisions->getMaxOffset();.
12c20 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 75 6c 65 49 6e 64 65 78 .for.($ruleIndex.=.0;.$ruleIndex
12c40 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 72 75 6c 65 49 6e 64 .<.count($this->rules);.$ruleInd
12c60 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 ex++).{.$rule.=.$this->rules->ru
12c80 6c 65 42 79 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d leById($ruleIndex);..if.(!$rule-
12ca0 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 >isAssertion().||.$rule->isDisab
12cc0 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 led()).{.continue;.}..$literals.
12ce0 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 6c =.$rule->getLiterals();.$literal
12d00 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 .=.$literals[0];..if.(!$this->de
12d20 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 cisions->decided(abs($literal)))
12d40 20 7b 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 6c 69 74 .{.$this->decisions->decide($lit
12d60 65 72 61 6c 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 eral,.1,.$rule);.continue;.}..if
12d80 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 74 .($this->decisions->satisfy($lit
12da0 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 eral)).{.continue;.}....if.(Rule
12dc0 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 Set::TYPE_LEARNED.===.$rule->get
12de0 54 79 70 65 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 Type()).{.$rule->disable();.cont
12e00 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 inue;.}..$conflict.=.$this->deci
12e20 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a sions->decisionRule($literal);..
12e40 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 if.($conflict.&&.RuleSet::TYPE_P
12e60 41 43 4b 41 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 ACKAGE.===.$conflict->getType())
12e80 20 7b 0a 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 0a 24 70 72 .{..$problem.=.new.Problem;..$pr
12ea0 6f 62 6c 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 oblem->addRule($rule);.$problem-
12ec0 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 >addRule($conflict);.$this->disa
12ee0 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 bleProblem($rule);.$this->proble
12f00 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 ms[].=.$problem;.continue;.}....
12f20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 24 70 72 6f 62 6c 65 6d $problem.=.new.Problem;.$problem
12f40 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 64 52 ->addRule($rule);.$problem->addR
12f60 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 24 74 ule($conflict);......foreach.($t
12f80 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 65 53 his->rules->getIteratorFor(RuleS
12fa0 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 7b 0a et::TYPE_JOB).as.$assertRule).{.
12fc0 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 7c 7c if.($assertRule->isDisabled().||
12fe0 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 7b 0a .!$assertRule->isAssertion()).{.
13000 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 6c 73 continue;.}..$assertRuleLiterals
13020 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 0a 24 .=.$assertRule->getLiterals();.$
13040 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 65 4c assertRuleLiteral.=.$assertRuleL
13060 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 20 21 iterals[0];..if.(abs($literal).!
13080 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 63 6f ==.abs($assertRuleLiteral)).{.co
130a0 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 61 73 ntinue;.}..$problem->addRule($as
130c0 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 65 6d sertRule);.$this->disableProblem
130e0 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 6d 73 ($assertRule);.}.$this->problems
13100 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 54 6f 4f 66 [].=.$problem;..$this->resetToOf
13120 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 78 fset($decisionStart);.$ruleIndex
13140 20 3d 20 2d 31 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 73 .=.-1;.}.}..protected.function.s
13160 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 etupInstalledMap().{.$this->inst
13180 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 alledMap.=.array();.foreach.($th
131a0 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 is->installed->getPackages().as.
131c0 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b $package).{.$this->installedMap[
131e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d $package->getId()].=.$package;.}
13200 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 ..foreach.($this->jobs.as.$job).
13220 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 20 27 75 {.switch.($job['cmd']).{.case.'u
13240 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 pdate':.foreach.($job['packages'
13260 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 ].as.$package).{.if.(isset($this
13280 2d 3e 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 ->installedMap[$package->getId()
132a0 5d 29 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 61 67 65 2d ])).{.$this->updateMap[$package-
132c0 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 >getId()].=.true;.}.}.break;..ca
132e0 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d se.'update-all':.foreach.($this-
13300 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
13320 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d is->updateMap[$package->getId()]
13340 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c .=.true;.}.break;..case.'install
13360 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 24 70 72 6f ':.if.(!$job['packages']).{.$pro
13380 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e blem.=.new.Problem();.$problem->
133a0 61 64 64 52 75 6c 65 28 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 addRule(new.Rule($this->pool,.ar
133c0 72 61 79 28 29 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6a 6f 62 29 29 3b 0a 24 74 68 69 73 ray(),.null,.null,.$job));.$this
133e0 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 7d 0a 62 72 65 61 6b ->problems[].=.$problem;.}.break
13400 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 6c 76 65 28 52 ;.}.}.}..public.function.solve(R
13420 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d equest.$request).{.$this->jobs.=
13440 20 24 72 65 71 75 65 73 74 2d 3e 67 65 74 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 .$request->getJobs();..$this->se
13460 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 tupInstalledMap();..$this->decis
13480 69 6f 6e 73 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c ions.=.new.Decisions($this->pool
134a0 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 );..$this->rules.=.$this->ruleSe
134c0 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 73 46 6f 72 28 24 74 68 69 73 2d 3e 6a tGenerator->getRulesFor($this->j
134e0 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 24 74 68 69 73 obs,.$this->installedMap);.$this
13500 2d 3e 77 61 74 63 68 47 72 61 70 68 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 ->watchGraph.=.new.RuleWatchGrap
13520 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 h;..foreach.($this->rules.as.$ru
13540 6c 65 29 20 7b 0a 24 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 le).{.$this->watchGraph->insert(
13560 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c 65 29 29 3b 0a 7d 0a 0a 0a 24 new.RuleWatchNode($rule));.}...$
13580 74 68 69 73 2d 3e 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 this->makeAssertionRuleDecisions
135a0 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 65 29 3b 0a 0a 0a 20 66 6f 72 ();..$this->runSat(true);....for
135c0 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 61 each.($this->installedMap.as.$pa
135e0 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 ckageId.=>.$void).{.if.($this->d
13600 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 61 63 6b 61 67 65 49 64 29 29 ecisions->undecided($packageId))
13620 20 7b 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 2d 24 70 61 .{.$this->decisions->decide(-$pa
13640 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 ckageId,.1,.null);.}.}..if.($thi
13660 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 50 s->problems).{.throw.new.SolverP
13680 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 roblemsException($this->problems
136a0 29 3b 0a 7d 0a 0a 24 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 );.}..$transaction.=.new.Transac
136c0 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c tion($this->policy,.$this->pool,
136e0 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 .$this->installedMap,.$this->dec
13700 69 73 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 isions);..return.$transaction->g
13720 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e etOperations();.}..protected.fun
13740 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 69 64 29 0a 7b 0a 24 70 61 63 6b ction.literalFromId($id).{.$pack
13760 61 67 65 20 3d 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 61 age.=.$this->pool->packageById(a
13780 62 73 28 24 69 64 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 4c 69 74 65 72 61 6c 28 24 70 bs($id));..return.new.Literal($p
137a0 61 63 6b 61 67 65 2c 20 24 69 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f ackage,.$id.>.0);.}..........pro
137c0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c tected.function.propagate($level
137e0 29 0a 7b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c ).{.while.($this->decisions->val
13800 69 64 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 idOffset($this->propagateIndex))
13820 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d .{.$decision.=.$this->decisions-
13840 3e 61 74 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 >atOffset($this->propagateIndex)
13860 3b 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 ;..$conflict.=.$this->watchGraph
13880 2d 3e 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 ->propagateLiteral(.$decision[De
138a0 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 2c 0a 24 6c 65 76 cisions::DECISION_LITERAL],.$lev
138c0 65 6c 2c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e el,.$this->decisions.);..$this->
138e0 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 propagateIndex++;..if.($conflict
13900 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ).{.return.$conflict;.}.}..retur
13920 6e 20 6e 75 6c 6c 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 72 n.null;.}.....private.function.r
13940 65 76 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 evert($level).{.while.(!$this->d
13960 65 63 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 ecisions->isEmpty()).{.$literal.
13980 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 =.$this->decisions->lastLiteral(
139a0 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 );..if.($this->decisions->undeci
139c0 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 ded($literal)).{.break;.}..$deci
139e0 73 69 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 sionLevel.=.$this->decisions->de
13a00 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 24 64 65 63 cisionLevel($literal);..if.($dec
13a20 69 73 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d isionLevel.<=.$level).{.break;.}
13a40 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 ..$this->decisions->revertLast()
13a60 3b 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 24 74 68 69 73 2d ;.$this->propagateIndex.=.$this-
13a80 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 67 65 74 4d 61 78 4f 66 66 73 65 74 28 29 20 2b 20 31 3b 0a >decisions->getMaxOffset().+.1;.
13aa0 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 73 }..while.(!empty($this->branches
13ac0 29 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 62 72 61 6e 63 68 4c 65 76 65 )).{.list($literals,.$branchLeve
13ae0 6c 29 20 3d 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 73 l).=.$this->branches[count($this
13b00 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 5d 3b 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 4c 65 ->branches).-.1];..if.($branchLe
13b20 76 65 6c 20 3c 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 61 72 72 61 79 5f vel.<.$level).{.break;.}..array_
13b40 70 6f 70 28 24 74 68 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 pop($this->branches);.}.}.......
13b60 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 73 65 74 50 72 ..........private.function.setPr
13b80 6f 70 61 67 61 74 65 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 opagateLearn($level,.$literal,.$
13ba0 64 69 73 61 62 6c 65 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 disableRules,.Rule.$rule).{.$lev
13bc0 65 6c 2b 2b 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 el++;..$this->decisions->decide(
13be0 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 2c 20 74 72 75 65 29 3b 0a $literal,.$level,.$rule,.true);.
13c00 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 .while.(true).{.$rule.=.$this->p
13c20 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 29 20 7b ropagate($level);..if.(!$rule).{
13c40 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 7b 0a 72 65 .break;.}..if.($level.==.1).{.re
13c60 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 72 turn.$this->analyzeUnsolvable($r
13c80 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 73 74 28 24 ule,.$disableRules);.}....list($
13ca0 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c learnLiteral,.$newLevel,.$newRul
13cc0 65 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c e,.$why).=.$this->analyze($level
13ce0 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 30 20 7c 7c ,.$rule);..if.($newLevel.<=.0.||
13d00 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 .$newLevel.>=.$level).{.throw.ne
13d20 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f w.SolverBugException(."Trying.to
13d40 20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 .revert.to.invalid.level.".(int)
13d60 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 .$newLevel.".from.level.".(int).
13d80 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 77 52 75 6c $level.".".);.}.elseif.(!$newRul
13da0 65 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 63 65 70 74 69 6f e).{.throw.new.SolverBugExceptio
13dc0 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d 20 61 6e 61 n(."No.rule.was.learned.from.ana
13de0 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2e 22 0a 29 lyzing.$rule.at.level.$level.".)
13e00 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 68 69 73 2d ;.}..$level.=.$newLevel;..$this-
13e20 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e >revert($level);..$this->rules->
13e40 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 add($newRule,.RuleSet::TYPE_LEAR
13e60 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 77 52 75 6c NED);..$this->learnedWhy[$newRul
13e80 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 65 20 3d e->getId()].=.$why;..$ruleNode.=
13ea0 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b 0a 24 72 .new.RuleWatchNode($newRule);.$r
13ec0 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 73 2d 3e uleNode->watch2OnHighest($this->
13ee0 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 decisions);.$this->watchGraph->i
13f00 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 nsert($ruleNode);..$this->decisi
13f20 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 ons->decide($learnLiteral,.$leve
13f40 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 6c 3b 0a l,.$newRule);.}..return.$level;.
13f60 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 49 6e 73 }..private.function.selectAndIns
13f80 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 tall($level,.array.$decisionQueu
13fa0 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a e,.$disableRules,.Rule.$rule).{.
13fc0 0a 20 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 73 65 6c ..$literals.=.$this->policy->sel
13fe0 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c ectPreferedPackages($this->pool,
14000 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 51 .$this->installedMap,.$decisionQ
14020 75 65 75 65 29 3b 0a 0a 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 ueue);..$selectedLiteral.=.array
14040 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 _shift($literals);....if.(count(
14060 24 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d 20 $literals)).{.$this->branches[].
14080 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 72 =.array($literals,.$level);.}..r
140a0 65 74 75 72 6e 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 eturn.$this->setPropagateLearn($
140c0 6c 65 76 65 6c 2c 20 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c level,.$selectedLiteral,.$disabl
140e0 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e eRules,.$rule);.}..protected.fun
14100 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 0a 7b 0a 24 ction.analyze($level,.$rule).{.$
14120 61 6e 61 6c 79 7a 65 64 52 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 4c 65 76 65 6c analyzedRule.=.$rule;.$ruleLevel
14140 20 3d 20 31 3b 0a 24 6e 75 6d 20 3d 20 30 3b 0a 24 6c 31 6e 75 6d 20 3d 20 30 3b 0a 24 73 65 65 .=.1;.$num.=.0;.$l1num.=.0;.$see
14160 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 3d 20 n.=.array();.$learnedLiterals.=.
14180 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 20 3d 20 24 74 68 69 array(null);..$decisionId.=.$thi
141a0 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 67 65 74 4d 61 78 4f 66 66 73 65 74 28 29 20 2b 20 31 s->decisions->getMaxOffset().+.1
141c0 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 61 79 28 ;..$this->learnedPool[].=.array(
141e0 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 72 6e 65 );..while.(true).{.$this->learne
14200 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 6c 29 20 dPool[count($this->learnedPool).
14220 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 6c 65 2d -.1][].=.$rule;..foreach.($rule-
14240 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 0a 20 >getLiterals().as.$literal).{...
14260 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 28 24 6c if.($this->decisions->satisfy($l
14280 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 73 73 65 iteral)).{.continue;.}..if.(isse
142a0 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 6e 74 69 t($seen[abs($literal)])).{.conti
142c0 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 20 74 72 nue;.}.$seen[abs($literal)].=.tr
142e0 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 65 63 69 ue;..$l.=.$this->decisions->deci
14300 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 3d 3d 20 sionLevel($literal);..if.(1.===.
14320 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 76 65 6c $l).{.$l1num++;.}.elseif.($level
14340 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 20 24 6c .===.$l).{.$num++;.}.else.{...$l
14360 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 0a 69 66 earnedLiterals[].=.$literal;..if
14380 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 65 6c 20 .($l.>.$ruleLevel).{.$ruleLevel.
143a0 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 0a 77 68 =.$l;.}.}.}..$l1retry.=.true;.wh
143c0 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 61 6c 73 ile.($l1retry).{.$l1retry.=.fals
143e0 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 0a 0a 20 e;..if.(!$num.&&.!--$l1num).{...
14400 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 20 28 24 break.2;.}..while.(true).{.if.($
14420 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 53 6f 6c decisionId.<=.0).{.throw.new.Sol
14440 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 61 6c 69 verBugException(."Reached.invali
14460 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 6c 65 20 d.decision.id.$decisionId.while.
14480 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 69 74 65 looking.through.$rule.for.a.lite
144a0 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 75 6c 65 ral.present.in.the.analyzed.rule
144c0 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 69 6f 6e .$analyzedRule.".);.}..$decision
144e0 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 69 73 69 Id--;..$decision.=.$this->decisi
14500 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 6c 69 74 ons->atOffset($decisionId);.$lit
14520 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 45 43 49 eral.=.$decision[Decisions::DECI
14540 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 65 6e 5b SION_LITERAL];..if.(isset($seen[
14560 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 0a 0a 75 abs($literal)])).{.break;.}.}..u
14580 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 69 66 20 nset($seen[abs($literal)]);..if.
145a0 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 72 6e 65 ($num.&&.0.===.--$num).{.$learne
145c0 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 3b 0a 0a dLiterals[0].=.-abs($literal);..
145e0 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 72 65 61 if.(!$l1num).{.break.2;.}..forea
14600 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 20 24 6c ch.($learnedLiterals.as.$i.=>.$l
14620 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 29 20 7b earnedLiteral).{.if.($i.!==.0).{
14640 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 72 61 6c .unset($seen[abs($learnedLiteral
14660 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 20 3d 20 )]);.}.}...$l1num++;.$l1retry.=.
14680 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 3e 64 65 true;.}.}..$decision.=.$this->de
146a0 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 29 3b 0a cisions->atOffset($decisionId);.
146c0 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 44 45 43 $rule.=.$decision[Decisions::DEC
146e0 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 74 28 24 ISION_REASON];.}..$why.=.count($
14700 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 21 24 6c this->learnedPool).-.1;..if.(!$l
14720 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 77 20 53 earnedLiterals[0]).{.throw.new.S
14740 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 69 6e 64 olverBugException(."Did.not.find
14760 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 7a 65 64 .a.learnable.literal.in.analyzed
14780 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 6e 65 77 .rule.$analyzedRule.".);.}..$new
147a0 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 24 6c 65 Rule.=.new.Rule($this->pool,.$le
147c0 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 52 4e 45 arnedLiterals,.Rule::RULE_LEARNE
147e0 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 6e 65 64 D,.$why);..return.array($learned
14800 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 52 75 6c Literals[0],.$ruleLevel,.$newRul
14820 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 20 61 6e e,.$why);.}..private.function.an
14840 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 20 24 63 alyzeUnsolvableRule($problem,.$c
14860 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 63 74 52 onflictRule).{.$why.=.$conflictR
14880 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 75 6c 65 ule->getId();..if.($conflictRule
148a0 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 4c 45 41 ->getType().==.RuleSet::TYPE_LEA
148c0 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 6c 65 61 RNED).{.$learnedWhy.=.$this->lea
148e0 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 3d 20 24 rnedWhy[$why];.$problemRules.=.$
14900 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 5d 3b 0a this->learnedPool[$learnedWhy];.
14920 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 72 6f 62 .foreach.($problemRules.as.$prob
14940 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 6c 76 61 lemRule).{.$this->analyzeUnsolva
14960 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 65 29 3b bleRule($problem,.$problemRule);
14980 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 75 6c 65 .}..return;.}..if.($conflictRule
149a0 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 50 41 43 ->getType().==.RuleSet::TYPE_PAC
149c0 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 2d 3e 61 KAGE).{...return;.}..$problem->a
149e0 64 64 52 75 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 ddRule($conflictRule);.}..privat
14a00 65 20 66 75 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 e.function.analyzeUnsolvable($co
14a20 6e 66 6c 69 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 nflictRule,.$disableRules).{.$pr
14a40 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 oblem.=.new.Problem;.$problem->a
14a60 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 ddRule($conflictRule);..$this->a
14a80 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 20 24 nalyzeUnsolvableRule($problem,.$
14aa0 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b conflictRule);..$this->problems[
14ac0 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a ].=.$problem;..$seen.=.array();.
14ae0 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 4c 69 $literals.=.$conflictRule->getLi
14b00 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 terals();..foreach.($literals.as
14b20 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 .$literal).{...if.($this->decisi
14b40 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e ons->satisfy($literal)).{.contin
14b60 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 20 74 72 75 ue;.}.$seen[abs($literal)].=.tru
14b80 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 e;.}..$decisionId.=.$this->decis
14ba0 69 6f 6e 73 2d 3e 67 65 74 4d 61 78 4f 66 66 73 65 74 28 29 20 2b 20 31 3b 0a 0a 77 68 69 6c 65 ions->getMaxOffset().+.1;..while
14bc0 20 28 24 64 65 63 69 73 69 6f 6e 49 64 20 3e 20 30 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 49 64 .($decisionId.>.0).{.$decisionId
14be0 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 69 73 69 6f 6e --;..$decision.=.$this->decision
14c00 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 6c 69 74 65 72 s->atOffset($decisionId);.$liter
14c20 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 45 43 49 53 49 al.=.$decision[Decisions::DECISI
14c40 4f 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 ON_LITERAL];....if.(!isset($seen
14c60 5b 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 [abs($literal)])).{.continue;.}.
14c80 0a 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 .$why.=.$decision[Decisions::DEC
14ca0 49 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 ISION_REASON];..$problem->addRul
14cc0 65 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 e($why);.$this->analyzeUnsolvabl
14ce0 65 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 eRule($problem,.$why);..$literal
14d00 73 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 s.=.$why->getLiterals();..foreac
14d20 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 0a 20 69 66 h.($literals.as.$literal).{...if
14d40 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 74 .($this->decisions->satisfy($lit
14d60 65 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 eral)).{.continue;.}.$seen[abs($
14d80 6c 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 literal)].=.true;.}.}..if.($disa
14da0 62 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 bleRules).{.foreach.($this->prob
14dc0 6c 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 lems[count($this->problems).-.1]
14de0 20 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 .as.$reason).{.$this->disablePro
14e00 62 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 blem($reason['rule']);.}..$this-
14e20 3e 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 >resetSolver();..return.1;.}..re
14e40 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 20 64 69 73 61 turn.0;.}..private.function.disa
14e60 62 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 bleProblem($why).{.$job.=.$why->
14e80 67 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 getJob();..if.(!$job).{.$why->di
14ea0 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 sable();.}.else.{...foreach.($th
14ec0 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 20 3d is->rules.as.$rule).{.if.($job.=
14ee0 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 69 73 ==.$rule->getJob()).{.$rule->dis
14f00 61 62 6c 65 28 29 3b 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 able();.}.}.}.}..private.functio
14f20 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
14f40 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
14f60 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
14f80 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
14fa0 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
14fc0 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.
14fe0 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
15000 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
15020 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
15040 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
15060 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
15080 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
150a0 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
150c0 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
150e0 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
15100 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;.
15120 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.&
15140 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
15160 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
15180 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
151a0 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
151c0 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
151e0 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;
15200 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
15220 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
15240 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.
15260 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
15280 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 6d 69 6e 69 6d 69 7a 61 74 69 6f 6e evel.=.$level.+.1;.$minimization
152a0 53 74 65 70 73 20 3d 20 30 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 Steps.=.0;.$installedPos.=.0;..w
152c0 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 hile.(true).{..if.(1.===.$level)
152e0 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 .{.$conflictRule.=.$this->propag
15300 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 21 ate($level);.if.($conflictRule.!
15320 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 ==.null).{.if.($this->analyzeUns
15340 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 olvable($conflictRule,.$disableR
15360 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 ules)).{.continue;.}.else.{.retu
15380 72 6e 3b 0a 7d 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 rn;.}.}.}....if.($level.<.$syste
153a0 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
153c0 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
153e0 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
15400 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()).{.
15420 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
15440 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
15460 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
15480 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
154a0 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
154c0 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.&&.$
154e0 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
15500 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
15520 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.&&.
15540 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.
15560 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
15580 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
155a0 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
155c0 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(
155e0 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
15600 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
15620 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
15640 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.=.$
15660 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
15680 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;.}.}..
156a0 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
156c0 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
156e0 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
15700 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
15720 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
15740 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.<=.$
15760 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
15780 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
157a0 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(
157c0 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.<
157e0 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.=.
15800 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;.
15820 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++,.
15840 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
15860 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
15880 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
158a0 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.($
158c0 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;.
158e0 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();....
15900 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.
15920 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).{
15940 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
15960 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
15980 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
159a0 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
159c0 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
159e0 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
15a00 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
15a20 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
15a40 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;.}..$
15a60 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-
15a80 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
15aa0 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);
15ac0 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;.}.
15ae0 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
15b00 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
15b20 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
15b40 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
15b60 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
15b80 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.
15ba0 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
15bc0 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,.$
15be0 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
15c00 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
15c20 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
15c40 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
15c60 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
15c80 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
15ca0 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.
15cc0 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;.}.}.
15ce0 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
15d00 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 30 is->branches[$lastBranchIndex][0
15d20 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d 29 3b 0a 24 74 68 69 73 2d 3e 62 72 ][$lastBranchOffset]);.$this->br
15d40 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 30 5d 20 3d 20 61 72 anches[$lastBranchIndex][0].=.ar
15d60 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 ray_values($this->branches[$last
15d80 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 30 5d 29 3b 0a 24 6d 69 6e 69 6d 69 7a 61 74 69 6f 6e 53 BranchIndex][0]);.$minimizationS
15da0 74 65 70 73 2b 2b 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a 24 74 teps++;..$level.=.$lastLevel;.$t
15dc0 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 74 68 his->revert($level);..$why.=.$th
15de0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 24 6f is->decisions->lastReason();..$o
15e00 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 3e Level.=.$level;.$level.=.$this->
15e20 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 74 4c setPropagateLearn($level,.$lastL
15e40 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a 0a 69 iteral,.$disableRules,.$why);..i
15e60 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e f.($level.==.0).{.return;.}..con
15e80 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a tinue;.}.}..break;.}.}.}.<?php..
15ea0 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
15ec0 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
15ee0 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
15f00 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 0a poser\Package\AliasPackage;.....
15f20 63 6c 61 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 class.RuleSetGenerator.{.protect
15f40 65 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 ed.$policy;.protected.$pool;.pro
15f60 74 65 63 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 tected.$rules;.protected.$jobs;.
15f80 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 75 62 6c 69 63 protected.$installedMap;..public
15fa0 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
15fc0 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 29 0a 7b 0a 24 74 68 rface.$policy,.Pool.$pool).{.$th
15fe0 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
16000 6c 20 3d 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 l.=.$pool;.}................prot
16020 65 63 74 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 ected.function.createRequireRule
16040 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 72 72 61 (PackageInterface.$package,.arra
16060 79 20 24 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 y.$providers,.$reason,.$reasonDa
16080 74 61 20 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 ta.=.null).{.$literals.=.array(-
160a0 24 70 61 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 $package->getId());..foreach.($p
160c0 72 6f 76 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 roviders.as.$provider).{...if.($
160e0 70 72 6f 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 provider.===.$package).{.return.
16100 6e 75 6c 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 null;.}.$literals[].=.$provider-
16120 3e 67 65 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 >getId();.}..return.new.Rule($th
16140 69 73 2d 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 is->pool,.$literals,.$reason,.$r
16160 65 61 73 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 easonData);.}..............prote
16180 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 4f 6e 65 4f 66 cted.function.createInstallOneOf
161a0 52 75 6c 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 Rule(array.$packages,.$reason,.$
161c0 6a 6f 62 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 job).{.$literals.=.array();.fore
161e0 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 6c ach.($packages.as.$package).{.$l
16200 69 74 65 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 iterals[].=.$package->getId();.}
16220 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 24 ..return.new.Rule($this->pool,.$
16240 6c 69 74 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 literals,.$reason,.$job['package
16260 4e 61 6d 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 Name'],.$job);.}.............pro
16280 74 65 63 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 tected.function.createRemoveRule
162a0 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 72 65 61 (PackageInterface.$package,.$rea
162c0 73 6f 6e 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 son,.$job).{.return.new.Rule($th
162e0 69 73 2d 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 is->pool,.array(-$package->getId
16300 28 29 29 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 ()),.$reason,.$job['packageName'
16320 5d 2c 20 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 ],.$job);.}................prote
16340 63 74 65 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 cted.function.createConflictRule
16360 28 50 61 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 (PackageInterface.$issuer,.Packa
16380 67 65 49 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 geInterface.$provider,.$reason,.
163a0 24 72 65 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 $reasonData.=.null).{...if.($iss
163c0 75 65 72 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 uer.===.$provider).{.return.null
163e0 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 3e 70 6f 6f 6c ;.}..return.new.Rule($this->pool
16400 2c 20 61 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 ,.array(-$issuer->getId(),.-$pro
16420 76 69 64 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 vider->getId()),.$reason,.$reaso
16440 6e 44 61 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 nData);.}...........private.func
16460 74 69 6f 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 tion.addRule($type,.Rule.$newRul
16480 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f e.=.null).{.if.($this->rules->co
164a0 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b ntainsEqual($newRule)).{.return;
164c0 0a 7d 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 20 .}..$this->rules->add($newRule,.
164e0 24 74 79 70 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 61 64 $type);.}..protected.function.ad
16500 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 dRulesForPackage(PackageInterfac
16520 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c e.$package).{.$workQueue.=.new.\
16540 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 SplQueue;.$workQueue->enqueue($p
16560 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 ackage);..while.(!$workQueue->is
16580 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 Empty()).{.$package.=.$workQueue
165a0 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 ->dequeue();.if.(isset($this->ad
165c0 64 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 20 7b 0a 63 6f dedMap[$package->getId()])).{.co
165e0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b ntinue;.}..$this->addedMap[$pack
16600 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 age->getId()].=.true;..foreach.(
16620 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 6c 69 6e 6b $package->getRequires().as.$link
16640 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 73 2d 3e 70 ).{.$possibleRequires.=.$this->p
16660 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 54 61 72 67 ool->whatProvides($link->getTarg
16680 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 29 3b 0a 0a et(),.$link->getConstraint());..
166a0 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 41 43 $this->addRule(RuleSet::TYPE_PAC
166c0 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 75 69 KAGE,.$rule.=.$this->createRequi
166e0 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 reRule($package,.$possibleRequir
16700 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 2c es,.Rule::RULE_PACKAGE_REQUIRES,
16720 20 28 73 74 72 69 6e 67 29 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f .(string).$link));..foreach.($po
16740 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 77 ssibleRequires.as.$require).{.$w
16760 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 7d orkQueue->enqueue($require);.}.}
16780 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 74 ..foreach.($package->getConflict
167a0 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 63 s().as.$link).{.$possibleConflic
167c0 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 24 ts.=.$this->pool->whatProvides($
167e0 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 6e link->getTarget(),.$link->getCon
16800 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 43 straint());..foreach.($possibleC
16820 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 3e onflicts.as.$conflict).{.$this->
16840 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 24 addRule(RuleSet::TYPE_PACKAGE,.$
16860 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 67 this->createConflictRule($packag
16880 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 45 e,.$conflict,.Rule::RULE_PACKAGE
168a0 5f 43 4f 4e 46 4c 49 43 54 2c 20 28 73 74 72 69 6e 67 29 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d _CONFLICT,.(string).$link));.}.}
168c0 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d ....$isInstalled.=.(isset($this-
168e0 3e 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 >installedMap[$package->getId()]
16900 29 29 3b 0a 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 70 6c 61 ));..foreach.($package->getRepla
16920 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 ces().as.$link).{.$obsoleteProvi
16940 64 65 72 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 ders.=.$this->pool->whatProvides
16960 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 74 43 ($link->getTarget(),.$link->getC
16980 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 6f 62 73 6f 6c 65 74 onstraint());..foreach.($obsolet
169a0 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 eProviders.as.$provider).{.if.($
169c0 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 provider.===.$package).{.continu
169e0 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 e;.}..if.(!$this->obsoleteImposs
16a00 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 ibleForAlias($package,.$provider
16a20 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 )).{.$reason.=.($isInstalled).?.
16a40 52 75 6c 65 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 Rule::RULE_INSTALLED_PACKAGE_OBS
16a60 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f OLETES.:.Rule::RULE_PACKAGE_OBSO
16a80 4c 45 54 45 53 3b 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 LETES;.$this->addRule(RuleSet::T
16aa0 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 YPE_PACKAGE,.$this->createConfli
16ac0 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 ctRule($package,.$provider,.$rea
16ae0 73 6f 6e 2c 20 28 73 74 72 69 6e 67 29 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f son,.(string).$link));.}.}.}..$o
16b00 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e bsoleteProviders.=.$this->pool->
16b20 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 whatProvides($package->getName()
16b40 2c 20 6e 75 6c 6c 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 ,.null);..foreach.($obsoleteProv
16b60 69 64 65 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 iders.as.$provider).{.if.($provi
16b80 64 65 72 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 der.===.$package).{.continue;.}.
16ba0 0a 69 66 20 28 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 .if.(($package.instanceof.AliasP
16bc0 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 ackage).&&.$package->getAliasOf(
16be0 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c ).===.$provider).{.$this->addRul
16c00 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 24 72 75 6c 65 20 3d e(RuleSet::TYPE_PACKAGE,.$rule.=
16c20 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 .$this->createRequireRule($packa
16c40 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 ge,.array($provider),.Rule::RULE
16c60 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 _PACKAGE_ALIAS,.(string).$packag
16c80 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 6f 6c 65 74 65 49 e));.}.elseif.(!$this->obsoleteI
16ca0 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 2c 20 24 70 72 6f mpossibleForAlias($package,.$pro
16cc0 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 61 67 65 2d 3e 67 vider)).{.$reason.=.($package->g
16ce0 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 4e 61 6d 65 28 29 etName().==.$provider->getName()
16d00 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 45 5f 4e 41 4d 45 ).?.Rule::RULE_PACKAGE_SAME_NAME
16d20 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 49 43 49 54 5f 4f .:.Rule::RULE_PACKAGE_IMPLICIT_O
16d40 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 75 6c 65 53 65 74 BSOLETES;.$this->addRule(RuleSet
16d60 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
16d80 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 2c 20 24 70 72 6f reateConflictRule($package,.$pro
16da0 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 vider,.$reason,.(string).$packag
16dc0 65 29 29 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 e));.}.}.}.}..protected.function
16de0 20 6f 62 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 .obsoleteImpossibleForAlias($pac
16e00 6b 61 67 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 kage,.$provider).{.$packageIsAli
16e20 61 73 20 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 as.=.$package.instanceof.AliasPa
16e40 63 6b 61 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 ckage;.$providerIsAlias.=.$provi
16e60 64 65 72 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 der.instanceof.AliasPackage;..$i
16e80 6d 70 6f 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 mpossible.=.(.($packageIsAlias.&
16ea0 26 20 24 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 &.$package->getAliasOf().===.$pr
16ec0 6f 76 69 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 ovider).||.($providerIsAlias.&&.
16ee0 24 70 72 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 $provider->getAliasOf().===.$pac
16f00 6b 61 67 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 kage).||.($packageIsAlias.&&.$pr
16f20 6f 76 69 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 oviderIsAlias.&&.$provider->getA
16f40 6c 69 61 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 liasOf().===.$package->getAliasO
16f60 66 28 29 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 f()).);..return.$impossible;.}..
16f80 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 52 75 6c 65 73 .......private.function.addRules
16fa0 46 6f 72 55 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 ForUpdatePackages(PackageInterfa
16fc0 63 65 20 24 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 ce.$package).{.$updates.=.$this-
16fe0 3e 70 6f 6c 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 >policy->findUpdatePackages($thi
17000 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 70 2c 20 24 70 s->pool,.$this->installedMap,.$p
17020 61 63 6b 61 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 ackage);..foreach.($updates.as.$
17040 75 70 64 61 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 update).{.$this->addRulesForPack
17060 61 67 65 28 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 age($update);.}.}..protected.fun
17080 63 74 69 6f 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 ction.addRulesForJobs().{.foreac
170a0 68 20 28 24 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 h.($this->jobs.as.$job).{.switch
170c0 20 28 24 6a 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 .($job['cmd']).{.case.'install':
170e0 0a 69 66 20 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 .if.($job['packages']).{.foreach
17100 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 29 20 .($job['packages'].as.$package).
17120 7b 0a 69 66 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 {.if.(!isset($this->installedMap
17140 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 74 68 69 73 2d 3e 61 [$package->getId()])).{.$this->a
17160 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 3b 0a 7d 0a 7d ddRulesForPackage($package);.}.}
17180 0a 0a 24 72 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 ..$rule.=.$this->createInstallOn
171a0 65 4f 66 52 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 eOfRule($job['packages'],.Rule::
171c0 52 55 4c 45 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 RULE_JOB_INSTALL,.$job);.$this->
171e0 61 64 64 52 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 addRule(RuleSet::TYPE_JOB,.$rule
17200 29 3b 0a 7d 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 );.}.break;.case.'remove':.....f
17220 6f 72 65 61 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 oreach.($job['packages'].as.$pac
17240 6b 61 67 65 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 kage).{.$rule.=.$this->createRem
17260 6f 76 65 52 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 oveRule($package,.Rule::RULE_JOB
17280 5f 52 45 4d 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 _REMOVE,.$job);.$this->addRule(R
172a0 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 0a 62 72 65 61 uleSet::TYPE_JOB,.$rule);.}.brea
172c0 6b 3b 0a 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 52 75 6c k;.}.}.}..public.function.getRul
172e0 65 73 46 6f 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 esFor($jobs,.$installedMap).{.$t
17300 68 69 73 2d 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 his->jobs.=.$jobs;.$this->rules.
17320 3d 20 6e 65 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 =.new.RuleSet;.$this->installedM
17340 61 70 20 3d 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 ap.=.$installedMap;..foreach.($t
17360 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 29 20 7b his->installedMap.as.$package).{
17380 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 24 70 61 63 6b .$this->addRulesForPackage($pack
173a0 61 67 65 29 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 age);.$this->addRulesForUpdatePa
173c0 63 6b 61 67 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 ckages($package);.}..$this->addR
173e0 75 6c 65 73 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 ulesForJobs();..return.$this->ru
17400 6c 65 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 6d 65 73 70 les;.}.}.<?php............namesp
17420 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 73 ace.Composer\Command\Helper;..us
17440 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
17460 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 6c er\DialogHelper.as.BaseDialogHel
17480 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 73 per;..class.DialogHelper.extends
174a0 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 70 .BaseDialogHelper.{............p
174c0 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 73 ublic.function.getQuestion($ques
174e0 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 3a tion,.$default.=.null,.$sep.=.':
17500 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 0a ').{.return.$default.!==.null.?.
17520 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 65 sprintf('<info>%s</info>.[<comme
17540 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 2c nt>%s</comment>]%s.',.$question,
17560 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 66 .$default,.$sep).:.sprintf('<inf
17580 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 70 o>%s</info>%s.',.$question,.$sep
175a0 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
175c0 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
175e0 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 65 r\Factory;.use.Composer\Installe
17600 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 63 r;.use.Composer\Installer\Projec
17620 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 4f 5c 49 4f 49 6e tInstaller;.use.Composer\IO\IOIn
17640 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 72 79 terface;.use.Composer\Repository
17660 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 6f 73 65 \ComposerRepository;.use.Compose
17680 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 r\Repository\FilesystemRepositor
176a0 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 49 6e 73 74 61 y;.use.Composer\Repository\Insta
176c0 6c 6c 65 64 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 53 79 lledFilesystemRepository;.use.Sy
176e0 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
17700 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 65 putArgument;.use.Symfony\Compone
17720 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 3b nt\Console\Input\InputInterface;
17740 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
17760 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 79 5c 43 6f nput\InputOption;.use.Symfony\Co
17780 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
177a0 65 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 erface;.use.Composer\Json\JsonFi
177c0 6c 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 6c 65 le;.use.Composer\Util\RemoteFile
177e0 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
17800 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 63 6c 61 73 73 20 sion\VersionParser;.......class.
17820 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 43 6f 6d CreateProjectCommand.extends.Com
17840 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 66 69 67 mand.{.protected.function.config
17860 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 74 65 2d ure().{.$this.->setName('create-
17880 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 72 65 61 project').->setDescription('Crea
178a0 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 20 69 6e te.new.project.from.a.package.in
178c0 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 66 69 6e to.given.directory.').->setDefin
178e0 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 74 28 27 ition(array(.new.InputArgument('
17900 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 52 45 51 55 49 52 45 package',.InputArgument::REQUIRE
17920 44 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 6c 65 64 D,.'Package.name.to.be.installed
17940 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 6f 72 79 '),.new.InputArgument('directory
17960 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 44 69 72 ',.InputArgument::OPTIONAL,.'Dir
17980 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 20 62 65 ectory.where.the.files.should.be
179a0 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 28 27 76 .created'),.new.InputArgument('v
179c0 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 4e 41 4c ersion',.InputArgument::OPTIONAL
179e0 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 6c 61 74 ,.'Version,.will.defaults.to.lat
17a00 65 73 74 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 est'),.new.InputOption('prefer-s
17a20 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
17a40 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
17a60 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,.
17a80 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
17aa0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 w.InputOption('repository-url',.
17ac0 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 45 null,.InputOption::VALUE_REQUIRE
17ae0 44 2c 20 27 50 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 D,.'Pick.a.different.repository.
17b00 75 72 6c 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a url.to.look.for.the.package.'),.
17b20 6e 65 77 20 49 6e 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 new.InputOption('dev',.null,.Inp
17b40 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 74 68 65 72 20 74 utOption::VALUE_NONE,.'Whether.t
17b60 6f 20 69 6e 73 74 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 64 65 76 65 6c o.install.dependencies.for.devel
17b80 6f 70 6d 65 6e 74 2e 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 opment.').)).->setHelp(<<<EOT.Th
17ba0 65 20 3c 69 6e 66 6f 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 e.<info>create-project</info>.co
17bc0 6d 6d 61 6e 64 20 63 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 mmand.creates.a.new.project.from
17be0 20 61 20 67 69 76 65 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 .a.given.package.into.a.new.dire
17c00 63 74 6f 72 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 ctory..You.can.use.this.command.
17c20 74 6f 20 62 6f 6f 74 73 74 72 61 70 20 6e 65 77 0a 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 to.bootstrap.new.projects.or.set
17c40 75 70 20 61 20 63 6c 65 61 6e 20 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e up.a.clean.version-controlled.in
17c60 73 74 61 6c 6c 61 74 69 6f 6e 0a 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 stallation.for.developers.of.you
17c80 72 20 70 72 6f 6a 65 63 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 r.project...<info>php.composer.p
17ca0 68 61 72 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 har.create-project.vendor/projec
17cc0 74 20 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e t.target-directory.[version]</in
17ce0 66 6f 3e 0a 0a 54 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 fo>..To.setup.a.developer.workab
17d00 6c 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 le.version.you.should.create.the
17d20 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f .project.using.the.source.contro
17d40 6c 6c 65 64 20 63 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f lled.code.by.appending.the.<info
17d60 3e 27 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 20 >'--prefer-source'</info>.flag..
17d80 41 6c 73 6f 2c 20 69 74 20 69 73 0a 61 64 76 69 73 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 6c 6c Also,.it.is.advisable.to.install
17da0 20 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 64 .all.dependencies.required.for.d
17dc0 65 76 65 6c 6f 70 6d 65 6e 74 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 0a 3c 69 6e 66 evelopment.by.appending.the.<inf
17de0 6f 3e 27 2d 2d 64 65 76 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 o>'--dev'</info>.flag...To.insta
17e00 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 69 ll.a.package.from.another.reposi
17e20 74 6f 72 79 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 tory.repository.than.the.default
17e40 20 6f 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 .one.you.can.pass.the.<info>'--r
17e60 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 epository-url=http://myrepositor
17e80 79 2e 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a y.org'</info>.flag...EOT.).;.}..
17ea0 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 6e 70 75 74 protected.function.execute(Input
17ec0 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
17ee0 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 3e 69 6e 73 74 61 e.$output).{.return.$this->insta
17f00 6c 6c 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 llProject(.$this->getIO(),.$inpu
17f20 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 0a 24 69 6e 70 75 t->getArgument('package'),.$inpu
17f40 74 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 t->getArgument('directory'),.$in
17f60 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 2c 0a 24 69 6e put->getArgument('version'),.$in
17f80 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 63 65 27 29 2c put->getOption('prefer-source'),
17fa0 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 2c 0a 24 69 6e 70 75 .$input->getOption('dev'),.$inpu
17fc0 74 2d 3e 67 65 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 0a 29 t->getOption('repository-url').)
17fe0 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 6c 50 72 6f 6a ;.}..public.function.installProj
18000 65 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d ect(IOInterface.$io,.$packageNam
18020 65 2c 20 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 3d e,.$directory.=.null,.$version.=
18040 20 6e 75 6c 6c 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 69 .null,.$preferSource.=.false,.$i
18060 6e 73 74 61 6c 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 nstallDevPackages.=.false,.$repo
18080 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d sitoryUrl.=.null).{.$dm.=.$this-
180a0 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 29 3b 0a 69 66 20 >createDownloadManager($io);.if.
180c0 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 ($preferSource).{.$dm->setPrefer
180e0 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f Source(true);.}..$config.=.Facto
18100 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d ry::createConfig();.if.(null.===
18120 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d .$repositoryUrl).{.$sourceRepo.=
18140 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 .new.ComposerRepository(array('u
18160 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 29 2c 20 rl'.=>.'http://packagist.org'),.
18180 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e 22 20 $io,.$config);.}.elseif.("json".
181a0 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 41 54 ===.pathinfo($repositoryUrl,.PAT
181c0 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 HINFO_EXTENSION)).{.$sourceRepo.
181e0 3d 20 6e 65 77 20 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 =.new.FilesystemRepository(new.J
18200 73 6f 6e 46 69 6c 65 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 6d 6f sonFile($repositoryUrl,.new.Remo
18220 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 teFilesystem($io)));.}.elseif.(0
18240 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 74 74 .===.strpos($repositoryUrl,.'htt
18260 70 27 29 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 6f 73 65 p')).{.$sourceRepo.=.new.Compose
18280 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 70 6f rRepository(array('url'.=>.$repo
182a0 73 69 74 6f 72 79 55 72 6c 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 sitoryUrl),.$io,.$config);.}.els
182c0 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 78 e.{.throw.new.\InvalidArgumentEx
182e0 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 ception("Invalid.repository.url.
18300 67 69 76 65 6e 2e 20 48 61 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 given..Has.to.be.a..json.file.or
18320 20 61 6e 20 68 74 74 70 20 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 64 61 74 65 73 20 .an.http.url.");.}..$candidates.
18340 3d 20 24 73 6f 75 72 63 65 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 =.$sourceRepo->findPackages($pac
18360 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 21 24 63 61 6e 64 69 kageName,.$version);.if.(!$candi
18380 64 61 74 65 73 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 dates).{.throw.new.\InvalidArgum
183a0 65 6e 74 45 78 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 entException("Could.not.find.pac
183c0 6b 61 67 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 22 20 2e 20 28 24 76 65 72 73 69 6f 6e 20 3f kage.$packageName"...($version.?
183e0 20 22 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 24 76 65 72 73 69 6f 6e 2e 22 20 3a 20 27 27 29 .".with.version.$version.".:.'')
18400 29 3b 0a 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 );.}..if.(null.===.$directory).{
18420 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 70 61 63 6b 61 67 65 4e .$parts.=.explode("/",.$packageN
18440 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e ame,.2);.$directory.=.getcwd()..
18460 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 .DIRECTORY_SEPARATOR...array_pop
18480 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 ($parts);.}....$package.=.$candi
184a0 64 61 74 65 73 5b 30 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 dates[0];.foreach.($candidates.a
184c0 73 20 24 63 61 6e 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 s.$candidate).{.if.(version_comp
184e0 61 72 65 28 24 70 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 are($package->getVersion(),.$can
18500 64 69 64 61 74 65 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 didate->getVersion(),.'<')).{.$p
18520 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 30 20 ackage.=.$candidate;.}.}..if.(0.
18540 3d 3d 3d 20 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 ===.strpos($package->getPrettyVe
18560 72 73 69 6f 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 rsion(),.'dev-').&&.in_array($pa
18580 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 72 72 61 79 28 27 67 ckage->getSourceType(),.array('g
185a0 69 74 27 2c 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 it',.'hg'))).{.$package->setSour
185c0 63 65 52 65 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 ceReference(substr($package->get
185e0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 PrettyVersion(),.4));.}..$io->wr
18600 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 ite('<info>Installing.'...$packa
18620 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 61 ge->getName()...'.('...VersionPa
18640 72 73 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 2c 20 66 61 rser::formatVersion($package,.fa
18660 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 2c 20 74 72 75 65 29 3b 0a 24 70 72 6f 6a 65 lse)...')</info>',.true);.$proje
18680 63 74 49 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c ctInstaller.=.new.ProjectInstall
186a0 65 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 24 64 6d 29 3b 0a 24 70 72 6f 6a 65 63 74 49 6e 73 er($directory,.$dm);.$projectIns
186c0 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c taller->install(new.InstalledFil
186e0 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 27 esystemRepository(new.JsonFile('
18700 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 29 29 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 69 6f php://memory')),.$package);..$io
18720 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 6a 65 63 74 20 69 ->write('<info>Created.project.i
18740 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 3e 27 2c 20 74 72 n.'...$directory...'</info>',.tr
18760 75 65 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 ue);.chdir($directory);..putenv(
18780 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
187a0 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 24 63 6f 6d 70 6f 73 e->getPrettyVersion());..$compos
187c0 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 29 3b 0a 24 69 6e 73 74 er.=.Factory::create($io);.$inst
187e0 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 6f 2c 20 24 aller.=.Installer::create($io,.$
18800 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 0a 2d 3e 73 65 74 50 72 65 66 composer);..$installer.->setPref
18820 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 44 65 76 erSource($preferSource).->setDev
18840 4d 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 72 75 6e 28 Mode($installDevPackages).->run(
18860 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 61 74 65 44 );.}..protected.function.createD
18880 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a ownloadManager(IOInterface.$io).
188a0 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
188c0 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
188e0 67 65 72 28 24 69 6f 29 3b 0a 7d 0a 7d 0a 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ger($io);.}.}..<?php............
18900 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 75 73 65 namespace.Composer\Command;..use
18920 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 75 73 65 20 43 6f 6d .Composer\Json\JsonFile;.use.Com
18940 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 52 65 70 6f poser\Factory;.use.Composer\Repo
18960 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 75 73 65 20 sitory\CompositeRepository;.use.
18980 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 6f 72 6d 52 65 70 6f Composer\Repository\PlatformRepo
189a0 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 5c sitory;.use.Composer\Repository\
189c0 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ComposerRepository;.use.Symfony\
189e0 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
18a00 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
18a20 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
18a40 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 75 fony\Component\Console\Output\Ou
18a60 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 6d 70 6f tputInterface;.use.Symfony\Compo
18a80 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 53 79 6d 66 6f 6e nent\Process\Process;.use.Symfon
18aa0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 y\Component\Process\ExecutableFi
18ac0 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 20 65 78 74 nder;......class.InitCommand.ext
18ae0 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 69 ends.Command.{.private.$gitConfi
18b00 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 g;.private.$repos;..public.funct
18b20 69 6f 6e 20 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 0a 7b ion.parseAuthorString($author).{
18b40 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c 6e 61 6d 65 3e 5b 2d 20 5c .if.(preg_match('/^(?P<name>[-.\
18b60 2e 2c 5c 77 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 .,\w\'...]+).<(?P<email>.+?)>$/u
18b80 27 2c 20 24 61 75 74 68 6f 72 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 ',.$author,.$match)).{.if.(!func
18ba0 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 7c 7c 20 76 65 72 tion_exists('filter_var').||.ver
18bc0 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 20 27 35 2e 33 2e 33 sion_compare(PHP_VERSION,.'5.3.3
18be0 27 2c 20 27 3c 27 29 20 7c 7c 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 20 3d 3d 3d 20 66 ',.'<').||.$match['email'].===.f
18c00 69 6c 74 65 72 5f 76 61 72 28 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 ilter_var($match['email'],.FILTE
18c20 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 R_VALIDATE_EMAIL)).{.return.arra
18c40 79 28 0a 27 6e 61 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 y(.'name'.=>.trim($match['name']
18c60 29 2c 0a 27 65 6d 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 ),.'email'.=>.$match['email'].);
18c80 0a 7d 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 .}.}..throw.new.\InvalidArgument
18ca0 45 78 63 65 70 74 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 Exception(.'Invalid.author.strin
18cc0 67 2e 20 20 4d 75 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 g...Must.be.in.the.format:.'..'J
18ce0 6f 68 6e 20 53 6d 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 ohn.Smith.<john@example.com>'.);
18d00 0a 7d 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
18d20 28 29 0a 7b 0a 24 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 ().{.$this.->setName('init').->s
18d40 65 74 44 65 73 63 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 etDescription('Creates.a.basic.c
18d60 6f 6d 70 6f 73 65 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 omposer.json.file.in.current.dir
18d80 65 63 74 6f 72 79 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 ectory.').->setDefinition(array(
18da0 0a 6e 65 77 20 49 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 .new.InputOption('name',.null,.I
18dc0 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 4e 61 6d 65 20 6f 66 nputOption::VALUE_NONE,.'Name.of
18de0 20 74 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 .the.package'),.new.InputOption(
18e00 27 64 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 'description',.null,.InputOption
18e20 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 61 ::VALUE_NONE,.'Description.of.pa
18e40 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 6f 72 ckage'),.new.InputOption('author
18e60 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 45 ',.null,.InputOption::VALUE_NONE
18e80 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 29 2c 0a 0a 20 6e ,.'Author.name.of.package'),...n
18ea0 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 20 6e 75 6c 6c 2c ew.InputOption('homepage',.null,
18ec0 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 48 6f 6d 65 70 .InputOption::VALUE_NONE,.'Homep
18ee0 61 67 65 20 6f 66 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 age.of.package'),.new.InputOptio
18f00 6e 28 27 72 65 71 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a n('require',.null,.InputOption::
18f20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 VALUE_IS_ARRAY.|.InputOption::VA
18f40 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 LUE_REQUIRED,.'Package.to.requir
18f60 65 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 65 2e 67 e.with.a.version.constraint,.e.g
18f80 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 30 2e 30 ..foo/bar:1.0.0.or.foo/bar=1.0.0
18fa0 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 70 75 74 .or."foo/bar.1.0.0"'),.new.Input
18fc0 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 Option('require-dev',.null,.Inpu
18fe0 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 4f tOption::VALUE_IS_ARRAY.|.InputO
19000 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 20 ption::VALUE_REQUIRED,.'Package.
19020 74 6f 20 72 65 71 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 74 68 20 to.require.for.development.with.
19040 61 20 76 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 a.version.constraint,.e.g..foo/b
19060 61 72 3a 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 ar:1.0.0.or.foo/bar=1.0.0.or."fo
19080 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c o/bar.1.0.0"'),.)).->setHelp(<<<
190a0 45 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 EOT.The.<info>init</info>.comman
190c0 64 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 d.creates.a.basic.composer.json.
190e0 66 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 file.in.the.current.directory...
19100 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 69 74 3c 2f 69 6e <info>php.composer.phar.init</in
19120 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 75 6e 63 74 69 fo>..EOT.).;.}..protected.functi
19140 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 75 74 on.execute(InputInterface.$input
19160 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 24 64 69 ,.OutputInterface.$output).{.$di
19180 61 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 alog.=.$this->getHelperSet()->ge
191a0 74 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 t('dialog');..$whitelist.=.array
191c0 28 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 ('name',.'description',.'author'
191e0 2c 20 27 72 65 71 75 69 72 65 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f ,.'require');..$options.=.array_
19200 66 69 6c 74 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 filter(array_intersect_key($inpu
19220 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 t->getOptions(),.array_flip($whi
19240 74 65 6c 69 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 telist)));..if.(isset($options['
19260 61 75 74 68 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d author'])).{.$options['authors']
19280 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 .=.$this->formatAuthors($options
192a0 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 ['author']);.unset($options['aut
192c0 68 6f 72 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d hor']);.}..$options['require'].=
192e0 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 0a 24 74 .isset($options['require']).?.$t
19300 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 6f 70 74 69 6f 6e 73 his->formatRequirements($options
19320 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3a 0a 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 0a 24 ['require']).:.new.\stdClass;..$
19340 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 file.=.new.JsonFile('composer.js
19360 6f 6e 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 on');..$json.=.$file->encode($op
19380 74 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 tions);..if.($input->isInteracti
193a0 76 65 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a ve()).{.$output->writeln(array(.
193c0 27 27 2c 0a 24 6a 73 6f 6e 2c 0a 27 27 0a 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f 67 2d 3e '',.$json,.''.));.if.(!$dialog->
193e0 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 24 64 69 61 6c 6f 67 askConfirmation($output,.$dialog
19400 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 ->getQuestion('Do.you.confirm.ge
19420 6e 65 72 61 74 69 6f 6e 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b neration',.'yes',.'?'),.true)).{
19440 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 43 6f 6d 6d 61 6e .$output->writeln('<error>Comman
19460 64 20 61 62 6f 72 74 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a d.aborted</error>');..return.1;.
19480 7d 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 }.}..$file->write($options);..if
194a0 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 69 67 .($input->isInteractive()).{.$ig
194c0 6e 6f 72 65 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 noreFile.=.realpath('.gitignore'
194e0 29 3b 0a 0a 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 );..if.(false.===.$ignoreFile).{
19500 0a 24 69 67 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 .$ignoreFile.=.realpath('.')...'
19520 2f 2e 67 69 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 /.gitignore';.}..if.(!$this->has
19540 56 65 6e 64 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 VendorIgnore($ignoreFile)).{.$qu
19560 65 73 74 69 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 estion.=.'Would.you.like.the.<in
19580 66 6f 3e 76 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 fo>vendor</info>.directory.added
195a0 20 74 6f 20 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 .to.your.<info>.gitignore</info>
195c0 20 5b 3c 63 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 .[<comment>yes</comment>]?';..if
195e0 20 28 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 .($dialog->askConfirmation($outp
19600 75 74 2c 20 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 ut,.$question,.true)).{.$this->a
19620 64 64 56 65 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 ddVendorIgnore($ignoreFile);.}.}
19640 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 69 6e 74 65 72 61 63 .}.}..protected.function.interac
19660 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 75 74 49 t(InputInterface.$input,.OutputI
19680 6e 74 65 72 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 nterface.$output).{.$git.=.$this
196a0 2d 3e 67 65 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 ->getGitConfig();..$dialog.=.$th
196c0 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 64 69 61 6c 6f 67 27 is->getHelperSet()->get('dialog'
196e0 29 3b 0a 24 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 );.$formatter.=.$this->getHelper
19700 53 65 74 28 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 Set()->get('formatter');.$output
19720 2d 3e 77 72 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 ->writeln(array(.'',.$formatter-
19740 3e 66 6f 72 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 >formatBlock('Welcome.to.the.Com
19760 70 6f 73 65 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 poser.config.generator',.'bg=blu
19780 65 3b 66 67 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 e;fg=white',.true),.''.));....$o
197a0 75 74 70 75 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 utput->writeln(array(.'',.'This.
197c0 63 6f 6d 6d 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 command.will.guide.you.through.c
197e0 72 65 61 74 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 reating.your.composer.json.confi
19800 67 2e 27 2c 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 g.',.'',.));..$cwd.=.realpath(".
19820 22 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 ");..if.(false.===.$name.=.$inpu
19840 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 t->getOption('name')).{.$name.=.
19860 62 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 basename($cwd);.if.(isset($git['
19880 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 github.user'])).{.$name.=.$git['
198a0 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 github.user']...'/'...$name;.}.e
198c0 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 lseif.(!empty($_SERVER['USERNAME
198e0 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d '])).{.$name.=.$_SERVER['USERNAM
19900 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 E']...'/'...$name;.}.elseif.(get
19920 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 _current_user()).{.$name.=.get_c
19940 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 urrent_user()...'/'...$name;.}.e
19960 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e lse.{...$name.=.$name...'/'...$n
19980 61 6d 65 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e ame;.}.}..$name.=.$dialog->askAn
199a0 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 dValidate(.$output,.$dialog->get
199c0 51 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e Question('Package.name.(<vendor>
199e0 2f 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 /<name>)',.$name),.function.($va
19a00 6c 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 lue).use.($name).{.if.(null.===.
19a20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 $value).{.return.$name;.}..if.(!
19a40 70 72 65 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 preg_match('{^[a-z0-9_.-]+/[a-z0
19a60 2d 39 5f 2e 2d 5d 2b 24 7d 69 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 -9_.-]+$}i',.$value)).{.throw.ne
19a80 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 0a 27 54 68 w.\InvalidArgumentException(.'Th
19aa0 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 e.package.name.'.$value.'.is.inv
19ac0 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 alid,.it.should.have.a.vendor.na
19ae0 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 61 20 70 61 63 6b 61 me,.a.forward.slash,.and.a.packa
19b00 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 39 5f 2e 2d 5d 2b 2f ge.name,.matching:.[a-z0-9_.-]+/
19b20 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 6e 20 24 76 61 6c 75 [a-z0-9_.-]+'.);.}..return.$valu
19b40 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 28 27 6e 61 6d 65 27 e;.}.);.$input->setOption('name'
19b60 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 20 24 69 6e 70 75 74 ,.$name);..$description.=.$input
19b80 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 29 20 3f 3a 20 66 61 ->getOption('description').?:.fa
19ba0 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 6f 67 2d 3e 61 73 6b lse;.$description.=.$dialog->ask
19bc0 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(
19be0 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 6f 6e 29 0a 29 3b 0a 'Description',.$description).);.
19c00 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c $input->setOption('description',
19c20 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 .$description);..if.(false.===.$
19c40 61 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 author.=.$input->getOption('auth
19c60 6f 72 27 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d or')).{.if.(isset($git['user.nam
19c80 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d e']).&&.isset($git['user.email']
19ca0 29 29 20 7b 0a 24 61 75 74 68 6f 72 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 )).{.$author.=.sprintf('%s.<%s>'
19cc0 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 2c 20 24 67 69 74 5b 27 75 73 65 72 2e ,.$git['user.name'],.$git['user.
19ce0 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 61 email']);.}.}..$self.=.$this;.$a
19d00 75 74 68 6f 72 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 28 uthor.=.$dialog->askAndValidate(
19d20 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 27 .$output,.$dialog->getQuestion('
19d40 41 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 Author',.$author),.function.($va
19d60 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 lue).use.($self,.$author).{.if.(
19d80 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 75 74 68 6f null.===.$value).{.return.$autho
19da0 72 3b 0a 7d 0a 0a 24 61 75 74 68 6f 72 20 3d 20 24 73 65 6c 66 2d 3e 70 61 72 73 65 41 75 74 68 r;.}..$author.=.$self->parseAuth
19dc0 6f 72 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 orString($value);..return.sprint
19de0 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 f('%s.<%s>',.$author['name'],.$a
19e00 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 uthor['email']);.}.);.$input->se
19e20 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 3b 0a 0a 24 6f 75 tOption('author',.$author);..$ou
19e40 74 70 75 74 2d 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 tput->writeln(array(.'',.'Define
19e60 20 79 6f 75 72 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 .your.dependencies.',.''.));..$r
19e80 65 71 75 69 72 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 equirements.=.array();.if.($dial
19ea0 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 24 64 69 og->askConfirmation($output,.$di
19ec0 61 6c 6f 67 2d 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 alog->getQuestion('Would.you.lik
19ee0 65 20 74 6f 20 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 e.to.define.your.dependencies.(r
19f00 65 71 75 69 72 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 equire).interactively',.'yes',.'
19f20 3f 27 29 2c 20 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 ?'),.true)).{.$requirements.=.$t
19f40 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 24 69 6e 70 75 his->determineRequirements($inpu
19f60 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 6f 6e 28 27 72 t,.$output,.$input->getOption('r
19f80 65 71 75 69 72 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 equire'));.}.$input->setOption('
19fa0 72 65 71 75 69 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 require',.$requirements);.$devRe
19fc0 71 75 69 72 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 quirements.=.array();.if.($dialo
19fe0 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 24 64 69 61 g->askConfirmation($output,.$dia
1a000 6c 6f 67 2d 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 log->getQuestion('Would.you.like
1a020 20 74 6f 20 64 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 .to.define.your.dev.dependencies
1a040 20 28 72 65 71 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 .(require-dev).interactively',.'
1a060 79 65 73 27 2c 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 yes',.'?'),.true)).{.$devRequire
1a080 6d 65 6e 74 73 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 ments.=.$this->determineRequirem
1a0a0 65 6e 74 73 28 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 ents($input,.$output,.$input->ge
1a0c0 74 4f 70 74 69 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 tOption('require-dev'));.}.$inpu
1a0e0 74 2d 3e 73 65 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 t->setOption('require-dev',.$dev
1a100 52 65 71 75 69 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 Requirements);.}..protected.func
1a120 74 69 6f 6e 20 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 tion.findPackages($name).{.$pack
1a140 61 67 65 73 20 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 ages.=.array();....if.(!$this->r
1a160 65 70 6f 73 29 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 epos).{.$this->repos.=.new.Compo
1a180 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 0a 6e 65 77 20 50 6c 61 74 66 6f siteRepository(array(.new.Platfo
1a1a0 72 6d 52 65 70 6f 73 69 74 6f 72 79 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 rmRepository,.new.ComposerReposi
1a1c0 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b tory(array('url'.=>.'http://pack
1a1e0 61 67 69 73 74 2e 6f 72 67 27 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 20 46 61 63 agist.org'),.$this->getIO(),.Fac
1a200 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 6f tory::createConfig()).));.}..$to
1a220 6b 65 6e 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 ken.=.strtolower($name);.foreach
1a240 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 .($this->repos->getPackages().as
1a260 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 28 24 70 6f 73 .$package).{.if.(false.===.($pos
1a280 20 3d 20 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 .=.strpos($package->getName(),.$
1a2a0 74 6f 6b 65 6e 29 29 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 token))).{.continue;.}..$package
1a2c0 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 24 70 61 63 6b 61 s[].=.$package;.}..return.$packa
1a2e0 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 20 64 65 74 65 72 ges;.}..protected.function.deter
1a300 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 mineRequirements(InputInterface.
1a320 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 2c $input,.OutputInterface.$output,
1a340 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 .$requires.=.array()).{.$dialog.
1a360 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 28 27 64 69 =.$this->getHelperSet()->get('di
1a380 61 6c 6f 67 27 29 3b 0a 24 70 72 6f 6d 70 74 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 alog');.$prompt.=.$dialog->getQu
1a3a0 65 73 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 61 20 70 61 63 6b 61 67 65 27 2c 20 66 estion('Search.for.a.package',.f
1a3c0 61 6c 73 65 2c 20 27 3a 27 29 3b 0a 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 66 6f alse,.':');..if.($requires).{.fo
1a3e0 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 71 reach.($requires.as.$key.=>.$req
1a400 75 69 72 65 6d 65 6e 74 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 20 3d 20 24 74 uirement).{.$requires[$key].=.$t
1a420 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 his->normalizeRequirement($requi
1a440 72 65 6d 65 6e 74 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 rement);.if.(false.===.strpos($r
1a460 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 2c 20 27 20 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 69 equires[$key],.'.').&&.$input->i
1a480 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 24 64 sInteractive()).{.$question.=.$d
1a4a0 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 70 72 6f 76 69 ialog->getQuestion('Please.provi
1a4c0 64 65 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 20 de.a.version.constraint.for.the.
1a4e0 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 20 72 65 71 75 69 72 65 6d 65 6e 74 27 29 3b 0a '.$requirement.'.requirement');.
1a500 69 66 20 28 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 if.($constraint.=.$dialog->ask($
1a520 6f 75 74 70 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 73 5b output,.$question)).{.$requires[
1a540 24 6b 65 79 5d 20 2e 3d 20 27 20 27 20 2e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a $key]..=.'.'...$constraint;.}.}.
1a560 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 73 5b 24 if.(false.===.strpos($requires[$
1a580 6b 65 79 5d 2c 20 27 20 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 key],.'.')).{.throw.new.\Invalid
1a5a0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 72 65 71 75 69 72 65 6d 65 ArgumentException('The.requireme
1a5c0 6e 74 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e nt.'.$requirement.'.must.contain
1a5e0 20 61 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 7d 0a 0a 72 65 .a.version.constraint');.}.}..re
1a600 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 turn.$requires;.}..while.(null.!
1a620 3d 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 ==.$package.=.$dialog->ask($outp
1a640 75 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 ut,.$prompt)).{.$matches.=.$this
1a660 2d 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 ->findPackages($package);..if.(c
1a680 6f 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 ount($matches)).{.$output->write
1a6a0 6c 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 ln(array(.'',.sprintf('Found.<in
1a6c0 66 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 fo>%s</info>.packages.matching.<
1a6e0 69 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 info>%s</info>',.count($matches)
1a700 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d ,.$package),.''.));..foreach.($m
1a720 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 61 63 6b 61 67 65 29 atches.as.$position.=>.$package)
1a740 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 28 27 20 3c 69 .{.$output->writeln(sprintf('.<i
1a760 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 nfo>%5s</info>.%s.<comment>%s</c
1a780 6f 6d 6d 65 6e 74 3e 27 2c 20 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 70 61 63 6b 61 67 omment>',."[$position]",.$packag
1a7a0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 e->getPrettyName(),.$package->ge
1a7c0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e tPrettyVersion()));.}..$output->
1a7e0 77 72 69 74 65 6c 6e 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 writeln('');..$validator.=.funct
1a800 69 6f 6e 20 28 24 73 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 ion.($selection).use.($matches).
1a820 7b 0a 69 66 20 28 27 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 {.if.(''.===.$selection).{.retur
1a840 6e 20 66 61 6c 73 65 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 n.false;.}..if.(!is_numeric($sel
1a860 65 63 74 69 6f 6e 29 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 ection).&&.preg_match('{^\s*(\S+
1a880 29 20 2b 28 5c 53 2e 2a 29 5c 73 2a 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e 2c 20 24 6d 61 74 ).+(\S.*)\s*}',.$selection,.$mat
1a8a0 63 68 65 73 29 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 ches)).{.return.$matches[1].'.'.
1a8c0 24 6d 61 74 63 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 $matches[2];.}..if.(!isset($matc
1a8e0 68 65 73 5b 28 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 hes[(int).$selection])).{.throw.
1a900 6e 65 77 20 5c 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 new.\Exception('Not.a.valid.sele
1a920 63 74 69 6f 6e 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 ction');.}..$package.=.$matches[
1a940 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e (int).$selection];..return.sprin
1a960 74 66 28 27 25 73 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c tf('%s.%s',.$package->getName(),
1a980 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());.
1a9a0 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 };..$package.=.$dialog->askAndVa
1a9c0 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 lidate($output,.$dialog->getQues
1a9e0 74 69 6f 6e 28 27 45 6e 74 65 72 20 70 61 63 6b 61 67 65 20 23 20 74 6f 20 61 64 64 2c 20 6f 72 tion('Enter.package.#.to.add,.or
1aa00 20 61 20 22 5b 70 61 63 6b 61 67 65 5d 20 5b 76 65 72 73 69 6f 6e 5d 22 20 63 6f 75 70 6c 65 20 .a."[package].[version]".couple.
1aa20 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 27 3a 27 if.it.is.not.listed',.false,.':'
1aa40 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d ),.$validator,.3);..if.(false.!=
1aa60 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 61 63 =.$package).{.$requires[].=.$pac
1aa80 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d kage;.}.}.}..return.$requires;.}
1aaa0 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 41 75 74 68 6f ..protected.function.formatAutho
1aac0 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 rs($author).{.return.array($this
1aae0 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 29 3b 0a 7d ->parseAuthorString($author));.}
1ab00 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 52 65 71 75 69 ..protected.function.formatRequi
1ab20 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 74 73 29 0a 7b 0a 24 rements(array.$requirements).{.$
1ab40 72 65 71 75 69 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 72 65 requires.=.array();.foreach.($re
1ab60 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 24 72 quirements.as.$requirement).{.$r
1ab80 65 71 75 69 72 65 6d 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 equirement.=.$this->normalizeReq
1aba0 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 3b 0a 6c 69 73 74 28 24 70 61 uirement($requirement);.list($pa
1abc0 63 6b 61 67 65 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3d 20 65 78 ckageName,.$packageVersion).=.ex
1abe0 70 6c 6f 64 65 28 22 20 22 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 2c 20 32 29 3b 0a 0a 24 72 plode(".",.$requirement,.2);..$r
1ac00 65 71 75 69 72 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 equires[$packageName].=.$package
1ac20 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 72 65 71 75 69 72 Version;.}..return.empty($requir
1ac40 65 73 29 20 3f 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 20 3a 20 24 72 65 71 75 69 72 65 73 3b es).?.new.\stdClass.:.$requires;
1ac60 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 7a 65 .}..protected.function.normalize
1ac80 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 Requirement($requirement).{.retu
1aca0 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 rn.preg_replace('{^([^=:.]+)[=:.
1acc0 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 ](.*)$}',.'$1.$2',.$requirement)
1ace0 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 47 69 74 43 6f ;.}..protected.function.getGitCo
1ad00 6e 66 69 67 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 67 69 74 nfig().{.if.(null.!==.$this->git
1ad20 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 Config).{.return.$this->gitConfi
1ad40 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 g;.}..$finder.=.new.ExecutableFi
1ad60 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 nder();.$gitBin.=.$finder->find(
1ad80 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 73 70 72 69 'git');..$cmd.=.new.Process(spri
1ada0 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 ntf('%s.config.-l',.escapeshella
1adc0 72 67 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 66 20 rg($gitBin)));.$cmd->run();..if.
1ade0 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e ($cmd->isSuccessful()).{.$this->
1ae00 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f gitConfig.=.array();.preg_match_
1ae20 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 2d 3e 67 all('{^([^=]+)=(.*)$}m',.$cmd->g
1ae40 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f etOutput(),.$matches,.PREG_SET_O
1ae60 52 44 45 52 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 6d 61 74 RDER);.foreach.($matches.as.$mat
1ae80 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 5b 31 5d ch).{.$this->gitConfig[$match[1]
1aea0 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ].=.$match[2];.}..return.$this->
1aec0 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 gitConfig;.}..return.$this->gitC
1aee0 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a onfig.=.array();.}..............
1af00 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e 64 6f 72 ....protected.function.hasVendor
1af20 49 67 6e 6f 72 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 76 Ignore($ignoreFile,.$vendor.=.'v
1af40 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f endor').{.if.(!file_exists($igno
1af60 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 74 reFile)).{.return.false;.}..$pat
1af80 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7e 5e 2f 3f 25 73 28 2f 7c 2f 5c 2a 29 3f 24 tern.=.sprintf(.'~^/?%s(/|/\*)?$
1afa0 7e 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 2c 20 27 7e 27 29 0a 29 3b 0a ~',.preg_quote($vendor,.'~').);.
1afc0 0a 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 .$lines.=.file($ignoreFile,.FILE
1afe0 5f 49 47 4e 4f 52 45 5f 4e 45 57 5f 4c 49 4e 45 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 _IGNORE_NEW_LINES);.foreach.($li
1b000 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 nes.as.$line).{.if.(preg_match($
1b020 70 61 74 74 65 72 6e 2c 20 24 6c 69 6e 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a pattern,.$line)).{.return.true;.
1b040 7d 0a 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 }.}..return.false;.}..protected.
1b060 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 function.addVendorIgnore($ignore
1b080 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 7b 0a 24 63 6f 6e File,.$vendor.=.'vendor').{.$con
1b0a0 74 65 6e 74 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e tents.=."";.if.(file_exists($ign
1b0c0 6f 72 65 46 69 6c 65 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 oreFile)).{.$contents.=.file_get
1b0e0 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 0a 69 66 20 28 22 5c 6e _contents($ignoreFile);..if.("\n
1b100 22 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 2d 31 29 29 20 ".!==.substr($contents,.0,.-1)).
1b120 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 {.$contents..=."\n";.}.}..file_p
1b140 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e ut_contents($ignoreFile,.$conten
1b160 74 73 20 2e 20 24 76 65 6e 64 6f 72 2e 20 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ts...$vendor.."\n");.}.}.<?php..
1b180 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 43 6f 6d ..........namespace.Composer\Com
1b1a0 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 6c 65 72 3b 0a 75 mand;..use.Composer\Installer;.u
1b1c0 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
1b1e0 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 43 ut\InputInterface;.use.Symfony\C
1b200 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 74 69 omponent\Console\Input\InputOpti
1b220 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 6f 6c on;.use.Symfony\Component\Consol
1b240 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
1b260 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 70 ny\Component\Console\Output\Outp
1b280 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 43 6f 6d utInterface;.....class.UpdateCom
1b2a0 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 64 mand.extends.Command.{.protected
1b2c0 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.->
1b2e0 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 setName('update').->setDescripti
1b300 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f on('Updates.your.dependencies.to
1b320 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 .the.latest.version,.and.updates
1b340 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 0a 2d 3e 73 65 74 .the.composer.lock.file.').->set
1b360 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 75 6d Definition(array(.new.InputArgum
1b380 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 3a 3a 49 ent('packages',.InputArgument::I
1b3a0 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 4f 4e 41 S_ARRAY.|.InputArgument::OPTIONA
1b3c0 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 65 20 75 70 64 61 L,.'Packages.that.should.be.upda
1b3e0 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 61 63 6b 61 67 65 ted,.if.not.provided.all.package
1b400 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 27 70 72 65 66 65 s.are.'),.new.InputOption('prefe
1b420 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 6f 6e 3a 3a 56 41 r-source',.null,.InputOption::VA
1b440 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 74 69 6f 6e 20 66 LUE_NONE,.'Forces.installation.f
1b460 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 6f 73 73 69 62 6c rom.package.sources.when.possibl
1b480 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 6f 6e 2e 27 29 2c e,.including.VCS.information.'),
1b4a0 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 20 6e 75 6c 6c .new.InputOption('dry-run',.null
1b4c0 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 4f 75 74 70 ,.InputOption::VALUE_NONE,.'Outp
1b4e0 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 20 6e 6f 74 20 uts.the.operations.but.will.not.
1b500 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 79 20 65 6e 61 execute.anything.(implicitly.ena
1b520 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 75 74 4f 70 74 bles.--verbose).'),.new.InputOpt
1b540 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 6e 3a 3a 56 41 ion('dev',.null,.InputOption::VA
1b560 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 74 69 6f 6e 20 LUE_NONE,.'Enables.installation.
1b580 6f 66 20 64 65 76 2d 72 65 71 75 69 72 65 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 of.dev-require.packages.'),.new.
1b5a0 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 2c 20 InputOption('no-scripts',.null,.
1b5c0 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 73 20 InputOption::VALUE_NONE,.'Skips.
1b5e0 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 65 66 the.execution.of.all.scripts.def
1b600 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 0a 29 ined.in.composer.json.file.'),.)
1b620 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 3e 75 70 64 ).->setHelp(<<<EOT.The.<info>upd
1b640 61 74 65 3c 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 ate</info>.command.reads.the.com
1b660 70 6f 73 65 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 poser.json.file.from.the.current
1b680 20 64 69 72 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 .directory,.processes.it,.and.up
1b6a0 64 61 74 65 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 dates,.removes.or.installs.all.t
1b6c0 68 65 0a 64 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 he.dependencies...<info>php.comp
1b6e0 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b oser.phar.update</info>..EOT.).;
1b700 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 28 49 .}..protected.function.execute(I
1b720 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
1b740 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 74 68 rface.$output).{.$composer.=.$th
1b760 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e is->getComposer();.$io.=.$this->
1b780 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 getIO();.$install.=.Installer::c
1b7a0 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c reate($io,.$composer);..$install
1b7c0 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 27 .->setDryRun($input->getOption('
1b7e0 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 3e dry-run')).->setVerbose($input->
1b800 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 65 getOption('verbose')).->setPrefe
1b820 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 70 72 65 66 65 rSource($input->getOption('prefe
1b840 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d r-source')).->setDevMode($input-
1b860 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 >getOption('dev')).->setRunScrip
1b880 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 ts(!$input->getOption('no-script
1b8a0 73 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 s')).->setUpdate(true).->setUpda
1b8c0 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 teWhitelist($input->getArgument(
1b8e0 27 70 61 63 6b 61 67 65 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 'packages')).;..return.$install-
1b900 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 0a >run().?.0.:.1;.}.}.<?php.......
1b920 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 3b .....namespace.Composer\Command;
1b940 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 5c ..use.Symfony\Component\Console\
1b960 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 6e Input\InputInterface;.use.Symfon
1b980 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
1b9a0 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
1b9c0 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 79 onsole\Input\InputOption;.use.Sy
1b9e0 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
1ba00 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 46 61 63 utputInterface;.use.Composer\Fac
1ba20 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 65 72 3b 0a 75 73 tory;.use.Composer\Installer;.us
1ba40 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 75 73 65 20 43 6f e.Composer\Json\JsonFile;.use.Co
1ba60 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a mposer\Json\JsonManipulator;....
1ba80 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 20 49 ..class.RequireCommand.extends.I
1baa0 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 6e 20 nitCommand.{.protected.function.
1bac0 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 72 configure().{.$this.->setName('r
1bae0 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 73 20 equire').->setDescription('Adds.
1bb00 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
1bb20 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 73 65 er.json.and.installs.them').->se
1bb40 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 75 tDefinition(array(.new.InputArgu
1bb60 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 3a 3a ment('packages',.InputArgument::
1bb80 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 4f 4e IS_ARRAY.|.InputArgument::OPTION
1bba0 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 65 72 AL,.'Required.package.with.a.ver
1bbc0 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 31 2e sion.constraint,.e.g..foo/bar:1.
1bbe0 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 61 72 0.0.or.foo/bar=1.0.0.or."foo/bar
1bc00 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 76 27 .1.0.0"'),.new.InputOption('dev'
1bc20 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,
1bc40 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 65 76 .'Add.requirement.to.require-dev
1bc60 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 6f 75 .'),.new.InputOption('prefer-sou
1bc80 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 5f 4e rce',.null,.InputOption::VALUE_N
1bca0 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
1bcc0 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 69 6e ackage.sources.when.possible,.in
1bce0 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 29 29 0a 2d cluding.VCS.information.'),.)).-
1bd00 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d >setHelp(<<<EOT.The.require.comm
1bd20 61 6e 64 20 61 64 64 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 and.adds.required.packages.to.yo
1bd40 75 72 20 63 6f 6d 70 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 ur.composer.json.and.installs.th
1bd60 65 6d 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 em..EOT.).;.}..protected.functio
1bd80 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,
1bda0 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 66 61 63 .OutputInterface.$output).{.$fac
1bdc0 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 3b 0a 24 66 69 6c 65 20 3d 20 24 66 61 63 tory.=.new.Factory;.$file.=.$fac
1bde0 74 6f 72 79 2d 3e 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 tory->getComposerFile();..if.(!f
1be00 69 6c 65 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 ile_exists($file)).{.$output->wr
1be20 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 6e 6f 74 20 66 6f 75 6e iteln('<error>'.$file.'.not.foun
1be40 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 21 d.</error>');..return.1;.}.if.(!
1be60 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 77 is_readable($file)).{.$output->w
1be80 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 69 73 20 6e 6f 74 20 riteln('<error>'.$file.'.is.not.
1bea0 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 6e 20 31 3b 0a readable.</error>');..return.1;.
1bec0 7d 0a 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 72 53 65 74 }..$dialog.=.$this->getHelperSet
1bee0 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 ()->get('dialog');..$json.=.new.
1bf00 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 72 20 3d 20 24 6a 73 JsonFile($file);.$composer.=.$js
1bf20 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 on->read();..$requirements.=.$th
1bf40 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 24 69 6e 70 75 74 is->determineRequirements($input
1bf60 2c 20 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 ,.$output,.$input->getArgument('
1bf80 70 61 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 packages'));..$requireKey.=.$inp
1bfa0 75 74 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 ut->getOption('dev').?.'require-
1bfc0 64 65 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 dev'.:.'require';.$baseRequireme
1bfe0 6e 74 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 nts.=.array_key_exists($requireK
1c000 65 79 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 ey,.$composer).?.$composer[$requ
1c020 69 72 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 ireKey].:.array();.$requirements
1c040 20 3d 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 .=.$this->formatRequirements($re
1c060 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 quirements);..if.(!$this->update
1c080 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 6d FileCleanly($json,.$baseRequirem
1c0a0 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 79 ents,.$requirements,.$requireKey
1c0c0 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 24 )).{.foreach.($requirements.as.$
1c0e0 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 75 package.=>.$version).{.$baseRequ
1c100 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 7d irements[$package].=.$version;.}
1c120 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 65 ..$composer[$requireKey].=.$base
1c140 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 70 Requirements;.$json->write($comp
1c160 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 66 oser);.}..$output->writeln('<inf
1c180 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 6e o>'.$file.'.has.been.updated</in
1c1a0 66 6f 3e 27 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 fo>');....$composer.=.$this->get
1c1c0 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 Composer();.$io.=.$this->getIO()
1c1e0 3b 0a 24 69 6e 73 74 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 ;.$install.=.Installer::create($
1c200 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 56 io,.$composer);..$install.->setV
1c220 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 erbose($input->getOption('verbos
1c240 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 e')).->setPreferSource($input->g
1c260 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 29 0a 2d 3e 73 65 74 etOption('prefer-source')).->set
1c280 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 DevMode($input->getOption('dev')
1c2a0 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 ).->setUpdate(true).->setUpdateW
1c2c0 68 69 74 65 6c 69 73 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 3b 0a 0a 72 65 74 75 hitelist($requirements);.;..retu
1c2e0 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 7d 0a 0a 70 rn.$install->run().?.0.:.1;.}..p
1c300 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c rivate.function.updateFileCleanl
1c320 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 79 20 24 6e 65 77 y($json,.array.$base,.array.$new
1c340 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c ,.$requireKey).{.$contents.=.fil
1c360 65 5f 67 65 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 29 29 e_get_contents($json->getPath())
1c380 3b 0a 0a 24 6d 61 6e 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 ;..$manipulator.=.new.JsonManipu
1c3a0 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 lator($contents);..foreach.($new
1c3c0 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 6e 74 29 20 7b 0a 69 .as.$package.=>.$constraint).{.i
1c3e0 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 65 71 75 69 f.(!$manipulator->addLink($requi
1c400 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b reKey,.$package,.$constraint)).{
1c420 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e .return.false;.}.}..file_put_con
1c440 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c tents($json->getPath(),.$manipul
1c460 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 ator->getContents());..return.tr
1c480 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 69 6e 74 65 72 61 ue;.}..protected.function.intera
1c4a0 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 75 74 ct(InputInterface.$input,.Output
1c4c0 49 6e 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 3b 0a 7d 0a 7d Interface.$output).{.return;.}.}
1c4e0 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
1c500 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 6f 6d 70 oser\Command;..use.Composer\Comp
1c520 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 73 65 20 oser;.use.Composer\Factory;.use.
1c540 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 61 63 Composer\Package\PackageInterfac
1c560 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
1c580 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
1c5a0 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
1c5c0 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\
1c5e0 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
1c600 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\
1c620 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 52 65 OutputInterface;.use.Composer\Re
1c640 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 75 73 pository\CompositeRepository;.us
1c660 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 6f 72 6d 52 65 e.Composer\Repository\PlatformRe
1c680 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
1c6a0 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 6f 73 y\ComposerRepository;.use.Compos
1c6c0 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 6e 74 65 72 66 61 63 er\Repository\RepositoryInterfac
1c6e0 65 3b 0a 0a 0a 0a 0a 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 e;......class.ShowCommand.extend
1c700 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
1c720 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 73 68 onfigure().{.$this.->setName('sh
1c740 6f 77 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f ow').->setDescription('Show.info
1c760 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 rmation.about.packages').->setDe
1c780 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
1c7a0 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
1c7c0 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 ONAL,.'Package.to.inspect'),.new
1c7e0 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 .InputArgument('version',.InputA
1c800 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 74 6f 20 69 rgument::OPTIONAL,.'Version.to.i
1c820 6e 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 69 6e 73 74 61 nspect'),.new.InputOption('insta
1c840 6c 6c 65 64 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 lled',.null,.InputOption::VALUE_
1c860 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 20 6f NONE,.'List.installed.packages.o
1c880 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d nly'),.new.InputOption('platform
1c8a0 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 45 ',.null,.InputOption::VALUE_NONE
1c8c0 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 ,.'List.platform.packages.only')
1c8e0 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 73 68 6f 77 20 63 ,.)).->setHelp(<<<EOT.The.show.c
1c900 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 72 6d 61 ommand.displays.detailed.informa
1c920 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 70 61 63 6b 61 67 65 2c 20 6f 72 0a 6c 69 73 74 73 20 61 tion.about.a.package,.or.lists.a
1c940 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a ll.packages.available...EOT.).;.
1c960 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 28 49 6e }..protected.function.execute(In
1c980 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
1c9a0 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 face.$output).{...$platformRepo.
1c9c0 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 69 66 20 28 24 69 =.new.PlatformRepository;.if.($i
1c9e0 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')).{.$
1ca00 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
1ca20 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
1ca40 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 ion('installed')).{.$composer.=.
1ca60 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 $this->getComposer();.$repos.=.$
1ca80 69 6e 73 74 61 6c 6c 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 installedRepo.=.$composer->getRe
1caa0 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
1cac0 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 itory();.}.elseif.($composer.=.$
1cae0 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
1cb00 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
1cb20 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()
1cb40 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
1cb60 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
1cb80 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
1cba0 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
1cbc0 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
1cbe0 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
1cc00 72 69 65 73 28 29 29 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 ries()));.}.else.{.$output->writ
1cc20 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 69 6e 20 74 eln('No.composer.json.found.in.t
1cc40 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 67 20 70 61 he.current.directory,.showing.pa
1cc60 63 6b 61 67 65 73 20 66 72 6f 6d 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 29 3b 0a 24 69 6e ckages.from.packagist.org');.$in
1cc80 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 70 61 stalledRepo.=.$platformRepo;.$pa
1cca0 63 6b 61 67 69 73 74 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 ckagist.=.new.ComposerRepository
1ccc0 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 (array('url'.=>.'http://packagis
1cce0 74 2e 6f 72 67 27 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 20 46 61 63 74 6f 72 79 t.org'),.$this->getIO(),.Factory
1cd00 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 ::createConfig());.$repos.=.new.
1cd20 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 28 24 69 6e 73 74 61 CompositeRepository(array($insta
1cd40 6c 6c 65 64 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 69 73 74 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 lledRepo,.$packagist));.}....if.
1cd60 28 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 61 67 65 27 29 29 ($input->getArgument('package'))
1cd80 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 .{.$package.=.$this->getPackage(
1cda0 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c $input,.$output,.$installedRepo,
1cdc0 20 24 72 65 70 6f 73 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 .$repos);.if.(!$package).{.throw
1cde0 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 27 .new.\InvalidArgumentException('
1ce00 50 61 63 6b 61 67 65 20 27 2e 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 Package.'.$input->getArgument('p
1ce20 61 63 6b 61 67 65 27 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 ackage').'.not.found');.}..$this
1ce40 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 ->printMeta($input,.$output,.$pa
1ce60 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a ckage,.$installedRepo,.$repos);.
1ce80 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 20 24 6f 75 74 70 75 $this->printLinks($input,.$outpu
1cea0 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 24 74 68 69 73 2d t,.$package,.'requires');.$this-
1cec0 3e 70 72 69 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 >printLinks($input,.$output,.$pa
1cee0 63 6b 61 67 65 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 ckage,.'devRequires',.'requires.
1cf00 28 64 65 76 29 27 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 (dev)');.if.($package->getSugges
1cf20 74 73 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 ts()).{.$output->writeln("\n<inf
1cf40 6f 3e 73 75 67 67 65 73 74 73 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 o>suggests</info>");.foreach.($p
1cf60 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 73 75 67 67 65 73 ackage->getSuggests().as.$sugges
1cf80 74 65 64 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 ted.=>.$reason).{.$output->write
1cfa0 6c 6e 28 24 73 75 67 67 65 73 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 ln($suggested...'.<comment>'...$
1cfc0 72 65 61 73 6f 6e 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 reason...'</comment>');.}.}.$thi
1cfe0 73 2d 3e 70 72 69 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 s->printLinks($input,.$output,.$
1d000 70 61 63 6b 61 67 65 2c 20 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 package,.'provides');.$this->pri
1d020 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
1d040 65 2c 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e e,.'conflicts');.$this->printLin
1d060 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 72 ks($input,.$output,.$package,.'r
1d080 65 70 6c 61 63 65 73 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 eplaces');..return;.}....$packag
1d0a0 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 2d 3e 67 es.=.array();.foreach.($repos->g
1d0c0 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 69 66 20 28 etPackages().as.$package).{.if.(
1d0e0 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 $platformRepo->hasPackage($packa
1d100 67 65 29 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 72 6d 3c 2f ge)).{.$type.=.'<info>platform</
1d120 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 info>:';.}.elseif.($installedRep
1d140 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 0a 24 74 79 70 65 o->hasPackage($package)).{.$type
1d160 20 3d 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 .=.'<info>installed</info>:';.}.
1d180 65 6c 73 65 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 else.{.$type.=.'<comment>availab
1d1a0 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 le</comment>:';.}.if.(isset($pac
1d1c0 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 61 6d 65 28 29 kages[$type][$package->getName()
1d1e0 5d 29 0a 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 73 5b ]).&&.version_compare($packages[
1d200 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 2d 3e 67 65 74 $type][$package->getName()]->get
1d220 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 Version(),.$package->getVersion(
1d240 29 2c 20 27 3e 3d 27 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 ),.'>=').).{.continue;.}.$packag
1d260 65 73 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 es[$type][$package->getName()].=
1d280 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 .$package;.}..foreach.(array('<i
1d2a0 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 2c 20 27 3c 63 6f 6d 6d 65 6e 74 nfo>platform</info>:',.'<comment
1d2c0 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 2c 20 27 3c 69 6e 66 6f 3e 69 >available</comment>:',.'<info>i
1d2e0 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 69 nstalled</info>:').as.$type).{.i
1d300 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6f f.(isset($packages[$type])).{.$o
1d320 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 70 65 29 3b 0a 6b 73 6f 72 74 28 24 70 61 utput->writeln($type);.ksort($pa
1d340 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 ckages[$type]);.foreach.($packag
1d360 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 es[$type].as.$package).{.$output
1d380 2d 3e 77 72 69 74 65 6c 6e 28 27 20 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 ->writeln('..'.$package->getPret
1d3a0 74 79 4e 61 6d 65 28 29 20 2e 27 20 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e tyName()..'.<comment>:</comment>
1d3c0 20 27 2e 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 .'..strtok($package->getDescript
1d3e0 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 ion(),."\r\n"));.}.$output->writ
1d400 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 eln('');.}.}.}.........protected
1d420 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 49 6e 70 75 74 49 6e 74 65 72 66 .function.getPackage(InputInterf
1d440 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
1d460 70 75 74 2c 20 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 put,.RepositoryInterface.$instal
1d480 6c 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 ledRepo,.RepositoryInterface.$re
1d4a0 70 6f 73 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 pos).{...if.($input->getArgument
1d4c0 28 27 76 65 72 73 69 6f 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 2d 3e 66 69 ('version')).{.return.$repos->fi
1d4e0 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 ndPackage($input->getArgument('p
1d500 61 63 6b 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 ackage'),.$input->getArgument('v
1d520 65 72 73 69 6f 6e 27 29 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c ersion'));.}....foreach.($instal
1d540 6c 65 64 52 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 61 ledRepo->getPackages().as.$packa
1d560 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 20 3d 3d ge).{.if.($package->getName().==
1d580 3d 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 61 67 65 27 29 =.$input->getArgument('package')
1d5a0 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 0a 20 24 68 69 67 ).{.return.$package;.}.}....$hig
1d5c0 68 65 73 74 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 hestVersion.=.null;.foreach.($re
1d5e0 70 6f 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 pos->findPackages($input->getArg
1d600 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b ument('package')).as.$package).{
1d620 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 20 7c 7c .if.(null.===.$highestVersion.||
1d640 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 .version_compare($package->getVe
1d660 72 73 69 6f 6e 28 29 2c 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 2d 3e 67 65 74 56 65 72 rsion(),.$highestVersion->getVer
1d680 73 69 6f 6e 28 29 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e sion(),.'>=')).{.$highestVersion
1d6a0 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 68 69 67 68 65 73 .=.$package;.}.}..return.$highes
1d6c0 74 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 tVersion;.}.....protected.functi
1d6e0 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 on.printMeta(InputInterface.$inp
1d700 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 2c 20 50 61 63 ut,.OutputInterface.$output,.Pac
1d720 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 52 65 70 6f 73 69 74 6f kageInterface.$package,.Reposito
1d740 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 6f ryInterface.$installedRepo,.Repo
1d760 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 75 sitoryInterface.$repos).{.$outpu
1d780 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 20 t->writeln('<info>name</info>...
1d7a0 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 28 ..:.'...$package->getPrettyName(
1d7c0 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 63 ));.$output->writeln('<info>desc
1d7e0 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 44 rip.</info>.:.'...$package->getD
1d800 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 28 escription());.$output->writeln(
1d820 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 69 '<info>keywords</info>.:.'...joi
1d840 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 20 n(',.',.$package->getKeywords().
1d860 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 6f ?:.array()));.$this->printVersio
1d880 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 69 ns($input,.$output,.$package,.$i
1d8a0 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e nstalledRepo,.$repos);.$output->
1d8c0 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a writeln('<info>type</info>.....:
1d8e0 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 6f 75 74 70 .'...$package->getType());.$outp
1d900 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6c 69 63 65 6e 73 65 3c 2f 69 6e 66 6f ut->writeln('<info>license</info
1d920 3e 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d >..:.'...implode(',.',.$package-
1d940 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c >getLicense()));.$output->writel
1d960 6e 28 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a 20 27 20 2e 20 73 n('<info>source</info>...:.'...s
1d980 70 72 69 6e 74 66 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 printf('[%s].<comment>%s</commen
1d9a0 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 t>.%s',.$package->getSourceType(
1d9c0 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 ),.$package->getSourceUrl(),.$pa
1d9e0 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 29 3b 0a 24 ckage->getSourceReference()));.$
1da00 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 output->writeln('<info>dist</inf
1da20 6f 3e 20 20 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 o>.....:.'...sprintf('[%s].<comm
1da40 65 6e 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 ent>%s</comment>.%s',.$package->
1da60 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 getDistType(),.$package->getDist
1da80 55 72 6c 28 29 2c 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 Url(),.$package->getDistReferenc
1daa0 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 66 6f 3e 6e e()));.$output->writeln('<info>n
1dac0 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 ames</info>....:.'...implode(',.
1dae0 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 3b 0a 0a 69 66 20 28 ',.$package->getNames()));..if.(
1db00 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 75 $package->getSupport()).{.$outpu
1db20 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 70 70 6f 72 74 3c 2f 69 6e 66 t->writeln("\n<info>support</inf
1db40 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 74 53 75 70 70 o>");.foreach.($package->getSupp
1db60 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 ort().as.$type.=>.$value).{.$out
1db80 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 put->writeln('<comment>'...$type
1dba0 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a ...'</comment>.:.'.$value);.}.}.
1dbc0 0a 69 66 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 29 20 7b 0a .if.($package->getAutoload()).{.
1dbe0 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 61 75 74 6f 6c 6f $output->writeln("\n<info>autolo
1dc00 61 64 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 ad</info>");.foreach.($package->
1dc20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 61 75 74 6f 6c getAutoload().as.$type.=>.$autol
1dc40 6f 61 64 73 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 oads).{.$output->writeln('<comme
1dc60 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 27 29 3b 0a 0a 69 nt>'...$type...'</comment>');..i
1dc80 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 f.($type.===.'psr-0').{.foreach.
1dca0 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 29 20 7b ($autoloads.as.$name.=>.$path).{
1dcc0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 28 24 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 .$output->writeln(($name.?:.'*')
1dce0 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 3b 0a 7d 0a 7d ...'.=>.'...($path.?:.'.'));.}.}
1dd00 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b .elseif.($type.===.'classmap').{
1dd20 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(',.',.
1dd40 24 61 75 74 6f 6c 6f 61 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e $autoloads));.}.}.if.($package->
1dd60 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 getIncludePaths()).{.$output->wr
1dd80 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f iteln('<comment>include-path</co
1dda0 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f mment>');.$output->writeln(implo
1ddc0 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 de(',.',.$package->getIncludePat
1dde0 68 73 28 29 29 29 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 63 hs()));.}.}.}.....protected.func
1de00 74 69 6f 6e 20 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 tion.printVersions(InputInterfac
1de20 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
1de40 74 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 2c 20 52 65 t,.PackageInterface.$package,.Re
1de60 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 65 64 52 65 70 6f positoryInterface.$installedRepo
1de80 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 6f 73 29 0a 7b 0a ,.RepositoryInterface.$repos).{.
1dea0 69 66 20 28 24 69 6e 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 if.($input->getArgument('version
1dec0 27 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 76 65 ')).{.$output->writeln('<info>ve
1dee0 72 73 69 6f 6e 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 rsion</info>..:.'...$package->ge
1df00 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 3b 0a 7d 0a 0a 24 tPrettyVersion());..return;.}..$
1df20 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 versions.=.array();..foreach.($r
1df40 65 70 6f 73 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 epos->findPackages($package->get
1df60 4e 61 6d 65 28 29 29 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 Name()).as.$version).{.$versions
1df80 5b 24 76 65 72 73 69 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d [$version->getPrettyVersion()].=
1dfa0 20 24 76 65 72 73 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 75 61 73 6f .$version->getVersion();.}..uaso
1dfc0 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 rt($versions,.'version_compare')
1dfe0 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 ;..$versions.=.implode(',.',.arr
1e000 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 69 6f 6e 73 29 ay_keys(array_reverse($versions)
1e020 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 61 73 50 61 ));....if.($installedRepo->hasPa
1e040 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 73 ckage($package)).{.$versions.=.s
1e060 74 72 5f 72 65 70 6c 61 63 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 tr_replace($package->getPrettyVe
1e080 72 73 69 6f 6e 28 29 2c 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e rsion(),.'<info>*.'...$package->
1e0a0 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 2c 20 getPrettyVersion()...'</info>',.
1e0c0 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 $versions);.}..$output->writeln(
1e0e0 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 '<info>versions</info>.:.'...$ve
1e100 72 73 69 6f 6e 73 29 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 rsions);.}.......protected.funct
1e120 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 ion.printLinks(InputInterface.$i
1e140 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 2c 20 50 nput,.OutputInterface.$output,.P
1e160 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 6c 69 6e 6b 54 ackageInterface.$package,.$linkT
1e180 79 70 65 2c 20 24 74 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 ype,.$title.=.null).{.$title.=.$
1e1a0 74 69 74 6c 65 20 3f 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 title.?:.$linkType;.if.($links.=
1e1c0 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 6c 69 6e 6b 54 .$package->{'get'.ucfirst($linkT
1e1e0 79 70 65 29 7d 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 ype)}()).{.$output->writeln("\n<
1e200 69 6e 66 6f 3e 22 20 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 info>"...$title..."</info>");..f
1e220 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 24 6f 75 74 70 oreach.($links.as.$link).{.$outp
1e240 75 74 2d 3e 77 72 69 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 ut->writeln($link->getTarget()..
1e260 20 27 20 3c 63 6f 6d 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 .'.<comment>'...$link->getPretty
1e280 43 6f 6e 73 74 72 61 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 Constraint()...'</comment>');.}.
1e2a0 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
1e2c0 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 72 .Composer\Command;..use.Composer
1e2e0 5c 43 6f 6d 70 6f 73 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 \Composer;.use.Symfony\Component
1e300 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
1e320 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
1e340 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
1e360 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 74 69 6f mponent\Console\Input\InputOptio
1e380 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
1e3a0 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 0a 0a 63 6c \Output\OutputInterface;......cl
1e3c0 61 73 73 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 ass.DependsCommand.extends.Comma
1e3e0 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 nd.{.protected.$linkTypes.=.arra
1e400 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 0a 27 72 65 71 y(.'require'.=>.'requires',.'req
1e420 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 0a 29 3b 0a 0a uire-dev'.=>.'devRequires',.);..
1e440 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().{
1e460 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 2d 3e 73 65 .$this.->setName('depends').->se
1e480 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 63 6b 61 67 tDescription('Shows.which.packag
1e4a0 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 67 65 27 29 es.depend.on.the.given.package')
1e4c0 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
1e4e0 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 67 75 6d 65 tArgument('package',.InputArgume
1e500 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 73 70 65 63 nt::REQUIRED,.'Package.to.inspec
1e520 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 79 70 65 27 t'),.new.InputOption('link-type'
1e540 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 4f 50 54 49 4f 4e 41 ,.'',.InputOption::VALUE_OPTIONA
1e560 4c 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 52 41 59 2c L.|.InputOption::VALUE_IS_ARRAY,
1e580 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 65 2c 20 72 .'Link.types.to.show.(require,.r
1e5a0 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 69 73 2d 3e equire-dev)',.array_keys($this->
1e5c0 6c 69 6e 6b 54 79 70 65 73 29 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a linkTypes)).)).->setHelp(<<<EOT.
1e5e0 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 6f 6e 20 61 62 Displays.detailed.information.ab
1e600 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 72 65 6e 63 65 out.where.a.package.is.reference
1e620 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 20 64 65 70 65 d...<info>php.composer.phar.depe
1e640 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 3e 0a 0a 45 4f nds.composer/composer</info>..EO
1e660 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 65 78 65 63 T.).;.}..protected.function.exec
1e680 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 75 74 70 75 ute(InputInterface.$input,.Outpu
1e6a0 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 6f 73 65 72 20 tInterface.$output).{.$composer.
1e6c0 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 66 65 72 65 6e =.$this->getComposer();.$referen
1e6e0 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 ces.=.$this->getReferences($inpu
1e700 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 24 69 6e t,.$output,.$composer);..if.($in
1e720 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 74 68 put->getOption('verbose')).{.$th
1e740 69 73 2d 3e 70 72 69 6e 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 is->printReferences($input,.$out
1e760 70 75 74 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 put,.$references);.}.else.{.$thi
1e780 73 2d 3e 70 72 69 6e 74 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 s->printPackages($input,.$output
1e7a0 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ,.$references);.}.}...........pr
1e7c0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 49 6e 70 ivate.function.getReferences(Inp
1e7e0 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 66 utInterface.$input,.OutputInterf
1e800 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 ace.$output,.Composer.$composer)
1e820 0a 7b 0a 24 6e 65 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 .{.$needle.=.$input->getArgument
1e840 28 27 70 61 63 6b 61 67 65 27 29 3b 0a 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 ('package');..$references.=.arra
1e860 79 28 29 3b 0a 24 76 65 72 62 6f 73 65 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 6e 70 75 74 y();.$verbose.=.(Boolean).$input
1e880 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 3b 0a 0a 24 72 65 70 6f 73 20 ->getOption('verbose');..$repos.
1e8a0 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 79 4d 61 6e 61 67 65 =.$composer->getRepositoryManage
1e8c0 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 24 74 79 70 65 73 20 3d r()->getRepositories();.$types.=
1e8e0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 3b .$input->getOption('link-type');
1e900 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 ..foreach.($repos.as.$repository
1e920 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 50 61 63 ).{.foreach.($repository->getPac
1e940 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 kages().as.$package).{.foreach.(
1e960 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d $types.as.$type).{.$type.=.rtrim
1e980 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e ($type,.'s');.if.(!isset($this->
1e9a0 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 77 20 6e 65 77 20 5c linkTypes[$type])).{.throw.new.\
1e9c0 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 55 6e 65 78 70 65 InvalidArgumentException('Unexpe
1e9e0 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 2c 20 76 61 6c 69 64 cted.link.type:.'.$type.',.valid
1ea00 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 72 72 61 79 5f 6b 65 .types:.'.implode(',.',.array_ke
1ea20 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 ys($this->linkTypes)));.}.foreac
1ea40 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 h.($package->{'get'.$this->linkT
1ea60 79 70 65 73 5b 24 74 79 70 65 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 ypes[$type]}().as.$link).{.if.($
1ea80 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b link->getTarget().===.$needle).{
1eaa0 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 5d 20 3d .if.($verbose).{.$references[].=
1eac0 20 61 72 72 61 79 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 29 3b 0a .array($type,.$package,.$link);.
1eae0 7d 20 65 6c 73 65 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 }.else.{.$references[$package->g
1eb00 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e etName()].=.$package->getPrettyN
1eb20 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 ame();.}.}.}.}.}.}..return.$refe
1eb40 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e rences;.}..private.function.prin
1eb60 74 52 65 66 65 72 65 6e 63 65 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 tReferences(InputInterface.$inpu
1eb80 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 2c 20 61 72 72 61 t,.OutputInterface.$output,.arra
1eba0 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 66 65 72 y.$references).{.foreach.($refer
1ebc0 65 6e 63 65 73 20 61 73 20 24 72 65 66 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c ences.as.$ref).{.$output->writel
1ebe0 6e 28 24 72 65 66 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 20 27 n($ref[1]->getPrettyName()...'.'
1ec00 20 2e 20 24 72 65 66 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e ...$ref[1]->getPrettyVersion()..
1ec20 20 27 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 72 65 66 5b 30 5d 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 .'.<info>'...$ref[0]...'</info>.
1ec40 27 20 2e 20 24 72 65 66 5b 32 5d 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 '...$ref[2]->getPrettyConstraint
1ec60 28 29 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 70 72 69 6e 74 ());.}.}..private.function.print
1ec80 50 61 63 6b 61 67 65 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 Packages(InputInterface.$input,.
1eca0 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 61 72 72 61 79 20 24 OutputInterface.$output,.array.$
1ecc0 70 61 63 6b 61 67 65 73 29 0a 7b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 66 6f packages).{.ksort($packages);.fo
1ece0 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 0a reach.($packages.as.$package).{.
1ed00 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a $output->writeln($package);.}.}.
1ed20 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
1ed40 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 43 6f 6d 70 poser\Command;..use.Symfony\Comp
1ed60 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 61 onent\Console\Input\InputInterfa
1ed80 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 6c ce;.use.Symfony\Component\Consol
1eda0 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 0a 63 6c e\Output\OutputInterface;.....cl
1edc0 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 ass.AboutCommand.extends.Command
1ede0 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 66 69 67 75 72 65 28 .{.protected.function.configure(
1ee00 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 27 29 0a 2d 3e 73 ).{.$this.->setName('about').->s
1ee20 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e etDescription('Short.information
1ee40 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 .about.Composer').->setHelp(<<<E
1ee60 4f 54 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 62 6f 75 74 OT.<info>php.composer.phar.about
1ee80 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
1eea0 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
1eec0 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).{.
1eee0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 43 6f $output->writeln(<<<EOT.<info>Co
1ef00 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 67 65 6d 65 6e 74 20 66 6f 72 20 mposer.-.Package.Management.for.
1ef20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 6f 6d 70 6f 73 65 72 20 69 73 20 PHP</info>.<comment>Composer.is.
1ef40 61 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 72 20 74 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c a.package.manager.tracking.local
1ef60 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 .dependencies.of.your.projects.a
1ef80 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 nd.libraries..See.http://getcomp
1efa0 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c oser.org/.for.more.information.<
1efc0 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a /comment>.EOT.);..}.}.<?php.....
1efe0 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
1f000 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 6e 73 6f 6c d;..use.Symfony\Component\Consol
1f020 65 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 e\Command\Command.as.BaseCommand
1f040 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 6d 6d 61 6e 64 20 ;........abstract.class.Command.
1f060 65 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 6f 74 65 63 74 extends.BaseCommand.{....protect
1f080 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 ed.function.getComposer($require
1f0a0 64 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 d.=.true).{.return.$this->getApp
1f0c0 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 lication()->getComposer($require
1f0e0 64 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 67 65 74 d);.}.....protected.function.get
1f100 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 IO().{.return.$this->getApplicat
1f120 69 6f 6e 28 29 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ion()->getIO();.}.}.<?php.......
1f140 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 3b .....namespace.Composer\Command;
1f160 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 5c ..use.Symfony\Component\Console\
1f180 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 6e Input\InputInterface;.use.Symfon
1f1a0 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
1f1c0 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
1f1e0 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
1f200 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
1f220 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
1f240 6f 72 79 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 ory\PlatformRepository;.use.Comp
1f260 6f 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 oser\Repository\ComposerReposito
1f280 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 50 61 63 6b 61 67 65 ry;.use.Composer\Package\Package
1f2a0 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\
1f2c0 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 46 61 63 74 6f AliasPackage;.use.Composer\Facto
1f2e0 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ry;.....class.SearchCommand.exte
1f300 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
1f320 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('
1f340 73 65 61 72 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 search').->setDescription('Searc
1f360 68 20 66 6f 72 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 h.for.packages').->setDefinition
1f380 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 74 6f 6b 65 6e (array(.new.InputArgument('token
1f3a0 73 27 2c 20 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 s',.InputArgument::IS_ARRAY.|.In
1f3c0 70 75 74 41 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 putArgument::REQUIRED,.'tokens.t
1f3e0 6f 20 73 65 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 o.search.for'),.)).->setHelp(<<<
1f400 45 4f 54 0a 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 EOT.The.search.command.searches.
1f420 66 6f 72 20 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 for.packages.by.its.name.<info>p
1f440 68 70 20 63 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 hp.composer.phar.search.symfony.
1f460 63 6f 6d 70 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 composer</info>..EOT.).;.}..prot
1f480 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 65 ected.function.execute(InputInte
1f4a0 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 6f rface.$input,.OutputInterface.$o
1f4c0 75 74 70 75 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 utput).{...$platformRepo.=.new.P
1f4e0 6c 61 74 66 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 latformRepository;.if.($composer
1f500 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 65 29 29 20 7b 0a .=.$this->getComposer(false)).{.
1f520 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 74 52 65 70 6f 73 $localRepo.=.$composer->getRepos
1f540 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 69 74 6f itoryManager()->getLocalReposito
1f560 72 79 28 29 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 ry();.$installedRepo.=.new.Compo
1f580 73 69 74 65 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 siteRepository(array($localRepo,
1f5a0 20 24 70 6c 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 .$platformRepo));.$repos.=.new.C
1f5c0 6f 6d 70 6f 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 ompositeRepository(array_merge(a
1f5e0 72 72 61 79 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 rray($installedRepo),.$composer-
1f600 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 52 65 70 6f >getRepositoryManager()->getRepo
1f620 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e sitories()));.}.else.{.$output->
1f640 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.
1f660 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
1f680 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 29 3b g.packages.from.packagist.org');
1f6a0 0a 24 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 .$installedRepo.=.$platformRepo;
1f6c0 0a 24 70 61 63 6b 61 67 69 73 74 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 .$packagist.=.new.ComposerReposi
1f6e0 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b tory(array('url'.=>.'http://pack
1f700 61 67 69 73 74 2e 6f 72 67 27 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 20 46 61 63 agist.org'),.$this->getIO(),.Fac
1f720 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 tory::createConfig());.$repos.=.
1f740 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 28 24 69 new.CompositeRepository(array($i
1f760 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 69 73 74 29 29 3b 0a 7d 0a 0a 24 nstalledRepo,.$packagist));.}..$
1f780 74 6f 6b 65 6e 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 74 6f tokens.=.$input->getArgument('to
1f7a0 6b 65 6e 73 27 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6d kens');.$packages.=.array();..$m
1f7c0 61 78 50 61 63 6b 61 67 65 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 axPackageLength.=.0;.foreach.($r
1f7e0 65 70 6f 73 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 epos->getPackages().as.$package)
1f800 20 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 61 73 .{.if.($package.instanceof.Alias
1f820 50 61 63 6b 61 67 65 20 7c 7c 20 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b Package.||.isset($packages[$pack
1f840 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a age->getName()])).{.continue;.}.
1f860 0a 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 .foreach.($tokens.as.$token).{.i
1f880 66 20 28 21 24 73 63 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 50 61 63 6b 61 67 65 f.(!$score.=.$this->matchPackage
1f8a0 28 24 70 61 63 6b 61 67 65 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a ($package,.$token)).{.continue;.
1f8c0 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 69 70 6f 73 }..if.(false.!==.($pos.=.stripos
1f8e0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 29 20 ($package->getName(),.$token))).
1f900 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 {.$name.=.substr($package->getPr
1f920 65 74 74 79 4e 61 6d 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 ettyName(),.0,.$pos)...'<highlig
1f940 68 74 3e 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 ht>'...substr($package->getPrett
1f960 79 4e 61 6d 65 28 29 2c 20 24 70 6f 73 2c 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e yName(),.$pos,.strlen($token))..
1f980 20 27 3c 2f 68 69 67 68 6c 69 67 68 74 3e 27 0a 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 .'</highlight>'...substr($packag
1f9a0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 e->getPrettyName(),.$pos.+.strle
1f9c0 6e 28 24 74 6f 6b 65 6e 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 n($token));.}.else.{.$name.=.$pa
1f9e0 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 64 65 73 63 ckage->getPrettyName();.}..$desc
1fa00 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 ription.=.strtok($package->getDe
1fa20 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 scription(),."\r\n");.if.(false.
1fa40 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 69 70 6f 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e !==.($pos.=.stripos($description
1fa60 2c 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 ,.$token))).{.$description.=.sub
1fa80 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 str($description,.0,.$pos)...'<h
1faa0 69 67 68 6c 69 67 68 74 3e 27 20 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e ighlight>'...substr($description
1fac0 2c 20 24 70 6f 73 2c 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 ,.$pos,.strlen($token))...'</hig
1fae0 68 6c 69 67 68 74 3e 27 0a 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 hlight>'...substr($description,.
1fb00 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b $pos.+.strlen($token));.}..$pack
1fb20 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 61 72 72 61 ages[$package->getName()].=.arra
1fb40 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e y(.'name'.=>.$name,.'description
1fb60 27 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 27 6c 65 6e 67 74 68 27 20 3d 3e 20 24 '.=>.$description,.'length'.=>.$
1fb80 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 length.=.strlen($package->getPre
1fba0 74 74 79 4e 61 6d 65 28 29 29 2c 0a 27 73 63 6f 72 65 27 20 3d 3e 20 24 73 63 6f 72 65 2c 0a 29 ttyName()),.'score'.=>.$score,.)
1fbc0 3b 0a 0a 24 6d 61 78 50 61 63 6b 61 67 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6d 61 78 50 ;..$maxPackageLength.=.max($maxP
1fbe0 61 63 6b 61 67 65 4c 65 6e 67 74 68 2c 20 24 6c 65 6e 67 74 68 29 3b 0a 0a 63 6f 6e 74 69 6e 75 ackageLength,.$length);..continu
1fc00 65 20 32 3b 0a 7d 0a 7d 0a 0a 75 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 2c 20 66 75 6e 63 74 e.2;.}.}..usort($packages,.funct
1fc20 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 63 6f 72 65 27 5d 20 3d ion.($a,.$b).{.if.($a['score'].=
1fc40 3d 3d 20 24 62 5b 27 73 63 6f 72 65 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 ==.$b['score']).{.return.0;.}..r
1fc60 65 74 75 72 6e 20 24 61 5b 27 73 63 6f 72 65 27 5d 20 3e 20 24 62 5b 27 73 63 6f 72 65 27 5d 20 eturn.$a['score'].>.$b['score'].
1fc80 3f 20 2d 31 20 3a 20 31 3b 0a 7d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ?.-1.:.1;.});..foreach.($package
1fca0 73 20 61 73 20 24 64 65 74 61 69 6c 73 29 20 7b 0a 24 65 78 74 72 61 53 70 61 63 65 73 20 3d 20 s.as.$details).{.$extraSpaces.=.
1fcc0 24 6d 61 78 50 61 63 6b 61 67 65 4c 65 6e 67 74 68 20 2d 20 24 64 65 74 61 69 6c 73 5b 27 6c 65 $maxPackageLength.-.$details['le
1fce0 6e 67 74 68 27 5d 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 65 74 61 69 6c ngth'];.$output->writeln($detail
1fd00 73 5b 27 6e 61 6d 65 27 5d 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 65 78 74 s['name']...str_repeat('.',.$ext
1fd20 72 61 53 70 61 63 65 73 29 20 2e 27 20 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 raSpaces)..'.<comment>:</comment
1fd40 3e 20 27 2e 20 24 64 65 74 61 69 6c 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d >.'..$details['description']);.}
1fd60 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 6d 61 74 63 .}.........private.function.matc
1fd80 68 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 hPackage(PackageInterface.$packa
1fda0 67 65 2c 20 24 74 6f 6b 65 6e 29 0a 7b 0a 24 73 63 6f 72 65 20 3d 20 30 3b 0a 0a 69 66 20 28 66 ge,.$token).{.$score.=.0;..if.(f
1fdc0 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 alse.!==.stripos($package->getNa
1fde0 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 35 3b 0a 7d 0a me(),.$token)).{.$score.+=.5;.}.
1fe00 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 6a 6f 69 6e 28 27 2c 27 2c .if.(false.!==.stripos(join(',',
1fe20 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 .$package->getKeywords().?:.arra
1fe40 79 28 29 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 33 3b 0a 7d 0a y()),.$token)).{.$score.+=.3;.}.
1fe60 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d .if.(false.!==.stripos($package-
1fe80 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 >getDescription(),.$token)).{.$s
1fea0 63 6f 72 65 20 2b 3d 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 63 6f 72 65 3b 0a 7d 0a 7d core.+=.1;.}..return.$score;.}.}
1fec0 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
1fee0 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 49 6e 73 74 oser\Command;..use.Composer\Inst
1ff00 61 6c 6c 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 aller;.use.Symfony\Component\Con
1ff20 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 53 sole\Input\InputInterface;.use.S
1ff40 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
1ff60 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
1ff80 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
1ffa0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 ;.......class.InstallCommand.ext
1ffc0 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
1ffe0 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(
20000 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 50 61 72 'install').->setDescription('Par
20020 73 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 6e 64 20 64 ses.the.composer.json.file.and.d
20040 6f 77 6e 6c 6f 61 64 73 20 74 68 65 20 6e 65 65 64 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 ownloads.the.needed.dependencies
20060 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
20080 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c nputOption('prefer-source',.null
200a0 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 63 ,.InputOption::VALUE_NONE,.'Forc
200c0 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 73 6f 75 es.installation.from.package.sou
200e0 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 rces.when.possible,.including.VC
20100 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f S.information.'),.new.InputOptio
20120 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a n('dry-run',.null,.InputOption::
20140 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 VALUE_NONE,.'Outputs.the.operati
20160 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e ons.but.will.not.execute.anythin
20180 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 g.(implicitly.enables.--verbose)
201a0 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 20 6e 75 6c 6c .'),.new.InputOption('dev',.null
201c0 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 45 6e 61 62 ,.InputOption::VALUE_NONE,.'Enab
201e0 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 64 65 76 2d 72 65 71 75 69 72 65 20 les.installation.of.dev-require.
20200 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 6f 6e 28 27 6e 6f packages.'),.new.InputOption('no
20220 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 6f 6e 3a 3a 56 41 -scripts',.null,.InputOption::VA
20240 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 74 69 6f 6e 20 6f LUE_NONE,.'Skips.the.execution.o
20260 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 6f 6d 70 6f 73 65 f.all.scripts.defined.in.compose
20280 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c r.json.file.'),.)).->setHelp(<<<
202a0 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 6f 6d EOT.The.<info>install</info>.com
202c0 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c mand.reads.the.composer.json.fil
202e0 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 e.from.the.current.directory,.pr
20300 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 69 6e ocesses.it,.and.downloads.and.in
20320 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 65 70 stalls.all.the.libraries.and.dep
20340 65 6e 64 65 6e 63 69 65 73 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e endencies.outlined.in.that.file.
20360 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 6c ..<info>php.composer.phar.instal
20380 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 66 l</info>..EOT.).;.}..protected.f
203a0 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.$
203c0 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).
203e0 7b 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 {.$composer.=.$this->getComposer
20400 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 ();.$io.=.$this->getIO();.$insta
20420 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 6d ll.=.Installer::create($io,.$com
20440 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 poser);..$install.->setDryRun($i
20460 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 nput->getOption('dry-run')).->se
20480 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 tVerbose($input->getOption('verb
204a0 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d ose')).->setPreferSource($input-
204c0 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 29 0a 2d 3e 73 >getOption('prefer-source')).->s
204e0 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 etDevMode($input->getOption('dev
20500 27 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 ')).->setRunScripts(!$input->get
20520 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 Option('no-scripts')).;..return.
20540 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 7d 0a 7d 0a 3c 3f 70 $install->run().?.0.:.1;.}.}.<?p
20560 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
20580 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 6e 74 \Command;..use.Symfony\Component
205a0 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
205c0 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
205e0 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
20600 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
20620 65 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 erface;.use.Composer\Json\JsonFi
20640 6c 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 56 61 6c 69 64 61 le;.use.Composer\Json\JsonValida
20660 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c tionException;.use.Composer\Util
20680 5c 52 65 6d 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 \RemoteFilesystem;.use.Composer\
206a0 55 74 69 6c 5c 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a Util\SpdxLicenseIdentifier;.....
206c0 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 ...class.ValidateCommand.extends
206e0 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 6e 63 74 69 6f 6e .Command.{....protected.function
20700 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('
20720 76 61 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c validate').->setDescription('Val
20740 69 64 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 idates.a.composer.json').->setDe
20760 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
20780 74 28 27 66 69 6c 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 t('file',.InputArgument::OPTIONA
207a0 4c 2c 20 27 70 61 74 68 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c L,.'path.to.composer.json.file',
207c0 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 .'./composer.json').)).->setHelp
207e0 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c (<<<EOT.The.validate.command.val
20800 69 64 61 74 65 73 20 61 20 67 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f idates.a.given.composer.json..EO
20820 54 0a 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 T.);.}........protected.function
20840 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,.
20860 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 66 69 6c 65 OutputInterface.$output).{.$file
20880 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a .=.$input->getArgument('file');.
208a0 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 .if.(!file_exists($file)).{.$out
208c0 70 75 74 2d 3e 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 put->writeln('<error>'...$file..
208e0 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e .'.not.found.</error>');..return
20900 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 6c 65 29 29 20 7b .1;.}.if.(!is_readable($file)).{
20920 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 27 20 2e 20 24 66 .$output->writeln('<error>'...$f
20940 69 6c 65 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e ile...'.is.not.readable.</error>
20960 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 ');..return.1;.}..$errors.=.arra
20980 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 24 y();.$publishErrors.=.array();.$
209a0 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 64 warnings.=.array();....$laxValid
209c0 20 3d 20 66 61 6c 73 65 3b 0a 24 76 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a .=.false;.$valid.=.false;.try.{.
209e0 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 $json.=.new.JsonFile($file,.new.
20a00 52 65 6d 6f 74 65 46 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 RemoteFilesystem($this->getIO())
20a20 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 );.$manifest.=.$json->read();..$
20a40 6a 73 6f 6e 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 json->validateSchema(JsonFile::L
20a60 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 24 6a AX_SCHEMA);.$laxValid.=.true;.$j
20a80 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 29 3b 0a 24 76 61 6c 69 64 20 3d 20 son->validateSchema();.$valid.=.
20aa0 74 72 75 65 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 true;.}.catch.(JsonValidationExc
20ac0 65 70 74 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 eption.$e).{.foreach.($e->getErr
20ae0 6f 72 73 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 ors().as.$message).{.if.($laxVal
20b00 69 64 29 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 27 3c 65 72 72 6f 72 id).{.$publishErrors[].=.'<error
20b20 3e 50 75 62 6c 69 73 68 20 45 72 72 6f 72 3a 20 27 20 2e 20 24 6d 65 73 73 61 67 65 20 2e 20 27 >Publish.Error:.'...$message...'
20b40 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 </error>';.}.else.{.$errors[].=.
20b60 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 6d 65 73 73 61 67 65 20 2e 20 27 3c 2f 65 72 72 6f 72 3e '<error>'...$message...'</error>
20b80 27 3b 0a 7d 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 ';.}.}.}.catch.(\Exception.$e).{
20ba0 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 27 20 2e 20 24 66 .$output->writeln('<error>'...$f
20bc0 69 6c 65 20 2e 20 27 20 63 6f 6e 74 61 69 6e 73 20 61 20 4a 53 4f 4e 20 53 79 6e 74 61 78 20 45 ile...'.contains.a.JSON.Syntax.E
20be0 72 72 6f 72 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c rror:</error>');.$output->writel
20c00 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e n('<error>'...$e->getMessage()..
20c20 20 27 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 0a 20 69 66 .'</error>');..return.1;.}....if
20c40 20 28 21 65 6d 70 74 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 .(!empty($manifest['license'])).
20c60 7b 0a 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 {.$licenseValidator.=.new.SpdxLi
20c80 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 21 24 6c 69 63 65 6e 73 65 censeIdentifier();.if.(!$license
20ca0 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c Validator->validate($manifest['l
20cc0 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e icense'])).{.$warnings[].=.sprin
20ce0 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 53 tf(.'License.%s.is.not.a.valid.S
20d00 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e 74 69 66 69 65 72 2c 20 73 65 65 20 68 74 74 70 PDX.license.identifier,.see.http
20d20 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 20 69 66 20 79 6f 75 ://www.spdx.org/licenses/.if.you
20d40 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 27 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f .use.an.open.license',.json_enco
20d60 64 65 28 24 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 de($manifest['license']).);.}.}.
20d80 65 6c 73 65 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 else.{.$warnings[].=.'No.license
20da0 20 73 70 65 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 .specified,.it.is.recommended.to
20dc0 20 64 6f 20 73 6f 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 .do.so';.}....if.(!$errors.&&.!$
20de0 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 publishErrors.&&.!$warnings).{.$
20e00 6f 75 74 70 75 74 2d 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 output->writeln('<info>'...$file
20e20 20 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 ...'.is.valid</info>');.}.elseif
20e40 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 72 6f 72 73 29 20 7b .(!$errors.&&.!$publishErrors).{
20e60 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 27 20 2e 20 24 66 69 .$output->writeln('<info>'...$fi
20e80 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 2c 20 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 le...'.is.valid,.but.with.a.few.
20ea0 77 61 72 6e 69 6e 67 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 warnings</info>');.$output->writ
20ec0 65 6c 6e 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 eln('<warning>See.http://getcomp
20ee0 6f 73 65 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 oser.org/doc/04-schema.md.for.de
20f00 74 61 69 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 tails.on.the.schema</warning>');
20f20 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e .}.elseif.(!$errors).{.$output->
20f40 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 20 writeln('<info>'...$file...'.is.
20f60 76 61 6c 69 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 valid.for.simple.usage.with.comp
20f80 6f 73 65 72 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e oser.but.has</info>');.$output->
20fa0 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 writeln('<info>strict.errors.tha
20fc0 74 20 6d 61 6b 65 20 69 74 20 75 6e 61 62 6c 65 20 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 t.make.it.unable.to.be.published
20fe0 20 61 73 20 61 20 70 61 63 6b 61 67 65 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 .as.a.package:</info>');.$output
21000 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 ->writeln('<warning>See.http://g
21020 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 etcomposer.org/doc/04-schema.md.
21040 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 for.details.on.the.schema</warni
21060 6e 67 3e 27 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 ng>');.}.else.{.$output->writeln
21080 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 20 69 6e 76 61 6c 69 ('<error>'...$file...'.is.invali
210a0 64 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 d,.the.following.errors/warnings
210c0 20 77 65 72 65 20 66 6f 75 6e 64 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 .were.found:</error>');.}..$mess
210e0 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d ages.=.array(.'error'.=>.array_m
21100 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 erge($errors,.$publishErrors),.'
21120 77 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 warning'.=>.$warnings,.);..forea
21140 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 ch.($messages.as.$style.=>.$msgs
21160 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f ).{.foreach.($msgs.as.$msg).{.$o
21180 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e utput->writeln('<'...$style...'>
211a0 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b '...$msg...'</'...$style...'>');
211c0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 .}.}..return.$errors.||.$publish
211e0 45 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 0a 0a Errors.?.1.:.0;.}.}.<?php.......
21200 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 3b .....namespace.Composer\Command;
21220 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 75 73 65 20 43 6f 6d ..use.Composer\Composer;.use.Com
21240 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 65 poser\Util\RemoteFilesystem;.use
21260 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
21280 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
212a0 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
212c0 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 rface;.....class.SelfUpdateComma
212e0 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 64 20 66 nd.extends.Command.{.protected.f
21300 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 73 65 unction.configure().{.$this.->se
21320 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 tName('self-update').->setDescri
21340 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 74 6f 20 ption('Updates.composer.phar.to.
21360 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 the.latest.version.').->setHelp(
21380 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e <<<EOT.The.<info>self-update</in
213a0 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f fo>.command.checks.getcomposer.o
213c0 72 67 20 66 6f 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 70 6f 73 65 rg.for.newer.versions.of.compose
213e0 72 20 61 6e 64 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 6c 61 74 r.and.if.found,.installs.the.lat
21400 65 73 74 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 73 65 est...<info>php.composer.phar.se
21420 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f lf-update</info>..EOT.).;.}..pro
21440 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
21460 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.$
21480 6f 75 74 70 75 74 29 0a 7b 0a 24 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 output).{.$rfs.=.new.RemoteFiles
214a0 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 73 74 20 3d ystem($this->getIO());.$latest.=
214c0 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 63 6f 6d 70 .trim($rfs->getContents('getcomp
214e0 6f 73 65 72 2e 6f 72 67 27 2c 20 27 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f oser.org',.'http://getcomposer.o
21500 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 6f 6d 70 6f rg/version',.false));..if.(Compo
21520 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 29 20 7b 0a 24 6f 75 74 ser::VERSION.!==.$latest).{.$out
21540 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 55 70 64 61 74 69 6e 67 20 74 put->writeln(sprintf("Updating.t
21560 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 2e 22 2c 20 24 6c 61 o.version.<info>%s</info>.",.$la
21580 74 65 73 74 29 29 3b 0a 0a 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 20 3d 20 27 68 74 74 70 test));..$remoteFilename.=.'http
215a0 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 ://getcomposer.org/composer.phar
215c0 27 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 ';.$localFilename.=.$_SERVER['ar
215e0 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 62 61 73 65 6e 61 6d gv'][0];.$tempFilename.=.basenam
21600 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
21620 70 2e 70 68 61 72 27 3b 0a 0a 24 72 66 73 2d 3e 63 6f 70 79 28 27 67 65 74 63 6f 6d 70 6f 73 65 p.phar';..$rfs->copy('getcompose
21640 72 2e 6f 72 67 27 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c 20 24 74 65 6d 70 46 69 r.org',.$remoteFilename,.$tempFi
21660 6c 65 6e 61 6d 65 29 3b 0a 0a 74 72 79 20 7b 0a 63 68 6d 6f 64 28 24 74 65 6d 70 46 69 6c 65 6e lename);..try.{.chmod($tempFilen
21680 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 68 61 72 20 3d ame,.0777.&.~umask());...$phar.=
216a0 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 0a 20 75 6e 73 .new.\Phar($tempFilename);...uns
216c0 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 6e 61 6d 65 2c et($phar);.rename($tempFilename,
216e0 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 5c 45 78 63 65 .$localFilename);.}.catch.(\Exce
21700 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c ption.$e).{.if.(!$e.instanceof.\
21720 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 26 26 20 21 24 65 20 UnexpectedValueException.&&.!$e.
21740 69 6e 73 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 instanceof.\PharException).{.thr
21760 6f 77 20 24 65 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a ow.$e;.}.unlink($tempFilename);.
21780 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 68 65 20 64 6f 77 $output->writeln('<error>The.dow
217a0 6e 6c 6f 61 64 20 69 73 20 63 6f 72 72 75 70 74 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 nload.is.corrupt.('.$e->getMessa
217c0 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 ge().').</error>');.$output->wri
217e0 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 75 6e 20 74 68 65 20 73 teln('<error>Please.re-run.the.s
21800 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 79 20 61 67 61 69 6e 2e elf-update.command.to.try.again.
21820 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e </error>');.}.}.else.{.$output->
21840 77 72 69 74 65 6c 6e 28 22 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 writeln("<info>You.are.using.the
21860 20 6c 61 74 65 73 74 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 2e 3c 2f 69 6e 66 6f 3e .latest.composer.version.</info>
21880 22 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 6d 65 73 ");.}.}.}.<?php............names
218a0 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 6f pace.Composer\Installer;..use.Co
218c0 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 61 63 65 3b mposer\Package\PackageInterface;
218e0 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
21900 65 64 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 0a 0a 0a 69 6e edRepositoryInterface;........in
21920 74 65 72 66 61 63 65 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 terface.InstallerInterface.{....
21940 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 73 28 24 70 61 63 ...public.function.supports($pac
21960 6b 61 67 65 54 79 70 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 kageType);..........public.funct
21980 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 74 ion.isInstalled(InstalledReposit
219a0 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 72 oryInterface.$repo,.PackageInter
219c0 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 face.$package);........public.fu
219e0 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 74 6f nction.install(InstalledReposito
21a00 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 72 66 ryInterface.$repo,.PackageInterf
21a20 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ace.$package);...........public.
21a40 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 69 74 function.update(InstalledReposit
21a60 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 72 oryInterface.$repo,.PackageInter
21a80 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 65 20 face.$initial,.PackageInterface.
21aa0 24 74 61 72 67 65 74 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 $target);........public.function
21ac0 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 69 74 6f 72 79 49 6e .uninstall(InstalledRepositoryIn
21ae0 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.
21b00 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package);........public.functio
21b20 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
21b40 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e.$package);.}.<?php............
21b60 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 75 namespace.Composer\Installer;..u
21b80 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 72 se.Composer\Package\PackageInter
21ba0 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 6f face;.use.Composer\Downloader\Do
21bc0 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 6f wnloadManager;.use.Composer\Repo
21be0 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 66 sitory\InstalledRepositoryInterf
21c00 61 63 65 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 ace;........class.ProjectInstall
21c20 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 65 72 66 61 63 65 er.implements.InstallerInterface
21c40 0a 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 .{.private.$installPath;.private
21c60 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$downloadManager;..public.funct
21c80 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 6f ion.__construct($installPath,.Do
21ca0 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 wnloadManager.$dm).{.$this->inst
21cc0 61 6c 6c 50 61 74 68 20 3d 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 64 allPath.=.$installPath;.$this->d
21ce0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ownloadManager.=.$dm;.}........p
21d00 75 62 6c 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 ublic.function.supports($package
21d20 54 79 70 65 29 0a 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 Type).{.return.true;.}.....publi
21d40 63 20 66 75 6e 63 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 c.function.isInstalled(Installed
21d60 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
21d80 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 66 geInterface.$package).{.return.f
21da0 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 6e 73 74 alse;.}.....public.function.inst
21dc0 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
21de0 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
21e00 65 29 0a 7b 0a 24 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 e).{.$installPath.=.$this->insta
21e20 6c 6c 50 61 74 68 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 llPath;.if.(file_exists($install
21e40 50 61 74 68 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 Path)).{.throw.new.\InvalidArgum
21e60 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 20 entException("Project.directory.
21e80 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 29 3b 0a $installPath.already.exists.");.
21ea0 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 69 6e 73 74 }.if.(!file_exists(dirname($inst
21ec0 61 6c 6c 50 61 74 68 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 allPath))).{.throw.new.\InvalidA
21ee0 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 72 6f 6f 74 20 22 rgumentException("Project.root."
21f00 20 2e 20 64 69 72 6e 61 6d 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 2e 20 22 20 64 6f 65 ...dirname($installPath)...".doe
21f20 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b 0a 7d 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c 6c s.not.exist.");.}.mkdir($install
21f40 50 61 74 68 2c 20 30 37 37 37 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 Path,.0777);.$this->downloadMana
21f60 67 65 72 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 ger->download($package,.$install
21f80 50 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 6f 6e 20 75 70 64 Path);.}.....public.function.upd
21fa0 61 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 ate(InstalledRepositoryInterface
21fc0 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 69 6e 69 74 69 61 .$repo,.PackageInterface.$initia
21fe0 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 29 0a 7b 0a 74 l,.PackageInterface.$target).{.t
22000 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 69 hrow.new.\InvalidArgumentExcepti
22020 6f 6e 28 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 on("not.supported");.}.....publi
22040 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 6c 65 64 52 65 c.function.uninstall(InstalledRe
22060 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 67 65 positoryInterface.$repo,.Package
22080 49 6e 74 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 Interface.$package).{.throw.new.
220a0 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 6e 6f 74 20 73 \InvalidArgumentException("not.s
220c0 75 70 70 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 upported");.}........public.func
220e0 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 67 65 49 6e 74 65 72 tion.getInstallPath(PackageInter
22100 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 74 68 69 73 2d 3e 69 face.$package).{.return.$this->i
22120 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a nstallPath;.}.}..<?php..........
22140 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 65 72 3b 0a ..namespace.Composer\Installer;.
22160 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
22180 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 41 6c 69 erface;.use.Composer\Package\Ali
221a0 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
221c0 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 6d 70 ry\RepositoryInterface;.use.Comp
221e0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 oser\Repository\NotifiableReposi
22200 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 52 65 70 6f toryInterface;.use.Composer\Repo
22220 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 66 sitory\InstalledRepositoryInterf
22240 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 79 52 65 73 6f ace;.use.Composer\DependencyReso
22260 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 65 72 66 61 63 lver\Operation\OperationInterfac
22280 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 79 52 65 73 6f 6c 76 e;.use.Composer\DependencyResolv
222a0 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 74 69 6f 6e 3b 0a 75 er\Operation\InstallOperation;.u
222c0 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 4f se.Composer\DependencyResolver\O
222e0 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f peration\UpdateOperation;.use.Co
22300 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
22320 69 6f 6e 5c 55 6e 69 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 ion\UninstallOperation;.use.Comp
22340 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
22360 6e 5c 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 3b 0a 75 n\MarkAliasInstalledOperation;.u
22380 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 4f se.Composer\DependencyResolver\O
223a0 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 70 65 peration\MarkAliasUninstalledOpe
223c0 72 61 74 69 6f 6e 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 ration;.use.Composer\Util\Filesy
223e0 73 74 65 6d 3b 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 stem;........class.InstallationM
22400 61 6e 61 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 anager.{.private.$installers.=.a
22420 72 72 61 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 rray();.private.$cache.=.array()
22440 3b 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 50 61 74 68 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ;.private.$vendorPath;........pu
22460 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 76 65 6e 64 6f blic.function.__construct($vendo
22480 72 44 69 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c rDir.=.'vendor').{.$fs.=.new.Fil
224a0 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 24 66 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 esystem();..if.($fs->isAbsoluteP
224c0 61 74 68 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 67 ath($vendorDir)).{.$basePath.=.g
224e0 65 74 63 77 64 28 29 3b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 66 73 2d 3e 66 69 etcwd();.$relativePath.=.$fs->fi
22500 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 62 61 73 65 50 61 74 68 2e 27 2f 66 69 6c 65 27 ndShortestPath($basePath.'/file'
22520 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 69 66 20 28 24 66 73 2d 3e 69 73 41 62 73 6f 6c 75 ,.$vendorDir);.if.($fs->isAbsolu
22540 74 65 50 61 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e tePath($relativePath)).{.throw.n
22560 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 22 56 65 ew.\InvalidArgumentException("Ve
22580 6e 64 6f 72 20 64 69 72 20 28 24 76 65 6e 64 6f 72 44 69 72 29 20 6d 75 73 74 20 62 65 20 61 63 ndor.dir.($vendorDir).must.be.ac
225a0 63 65 73 73 69 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 28 24 62 61 cessible.from.the.directory.($ba
225c0 73 65 50 61 74 68 29 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 50 61 74 68 20 sePath).");.}.$this->vendorPath.
225e0 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d =.$relativePath;.}.else.{.$this-
22600 3e 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 76 65 6e 64 6f 72 44 69 72 2c 20 >vendorPath.=.rtrim($vendorDir,.
22620 27 2f 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 20 '/');.}.}.......public.function.
22640 61 64 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 addInstaller(InstallerInterface.
22660 24 69 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 $installer).{.array_unshift($thi
22680 73 2d 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 s->installers,.$installer);.$thi
226a0 73 2d 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 0a 0a 0a 0a s->cache.=.array();.}...........
226c0 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 65 72 28 24 74 79 public.function.getInstaller($ty
226e0 70 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 pe).{.$type.=.strtolower($type);
22700 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 29 ..if.(isset($this->cache[$type])
22720 29 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 3b 0a ).{.return.$this->cache[$type];.
22740 7d 0a 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 72 73 20 61 73 }..foreach.($this->installers.as
22760 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 .$installer).{.if.($installer->s
22780 75 70 70 6f 72 74 73 28 24 74 79 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e upports($type)).{.return.$this->
227a0 63 61 63 68 65 5b 24 74 79 70 65 5d 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a 7d 0a 0a cache[$type].=.$installer;.}.}..
227c0 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
227e0 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 69 6e 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 27 2e 24 ion('Unknown.installer.type:.'.$
22800 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 63 74 69 6f type);.}..........public.functio
22820 6e 20 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 n.isPackageInstalled(InstalledRe
22840 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 67 65 positoryInterface.$repo,.Package
22860 49 6e 74 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 Interface.$package).{.if.($packa
22880 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 72 65 ge.instanceof.AliasPackage).{.re
228a0 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 61 63 6b 61 67 65 29 turn.$repo->hasPackage($package)
228c0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 ;.}..return.$this->getInstaller(
228e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 $package->getType())->isInstalle
22900 64 28 24 72 65 70 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 d($repo,.$package);.}........pub
22920 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 lic.function.execute(RepositoryI
22940 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 nterface.$repo,.OperationInterfa
22960 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 ce.$operation).{.$method.=.$oper
22980 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 ation->getJobType();.$this->$met
229a0 68 6f 64 28 24 72 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a hod($repo,.$operation);.}.......
229c0 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 52 65 70 6f 73 69 74 .public.function.install(Reposit
229e0 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 oryInterface.$repo,.InstallOpera
22a00 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f tion.$operation).{.$package.=.$o
22a20 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c peration->getPackage();.$install
22a40 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 er.=.$this->getInstaller($packag
22a60 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 e->getType());.$installer->insta
22a80 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 ll($repo,.$package);.$this->noti
22aa0 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 fyInstall($package);.}........pu
22ac0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 blic.function.update(RepositoryI
22ae0 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 nterface.$repo,.UpdateOperation.
22b00 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 $operation).{.$initial.=.$operat
22b20 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 ion->getInitialPackage();.$targe
22b40 74 20 3d 20 24 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 t.=.$operation->getTargetPackage
22b60 28 29 3b 0a 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 ();..$initialType.=.$initial->ge
22b80 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 74 2d 3e tType();.$targetType.=.$target->
22ba0 67 65 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d getType();..if.($initialType.===
22bc0 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 .$targetType).{.$installer.=.$th
22be0 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 3b 0a is->getInstaller($initialType);.
22c00 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 $installer->update($repo,.$initi
22c20 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 al,.$target);.$this->notifyInsta
22c40 6c 6c 28 24 74 61 72 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 ll($target);.}.else.{.$this->get
22c60 49 6e 73 74 61 6c 6c 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 Installer($initialType)->uninsta
22c80 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 67 65 74 49 ll($repo,.$initial);.$this->getI
22ca0 6e 73 74 61 6c 6c 65 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 nstaller($targetType)->install($
22cc0 72 65 70 6f 2c 20 24 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 repo,.$target);.}.}........publi
22ce0 63 20 66 75 6e 63 74 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 c.function.uninstall(RepositoryI
22d00 6e 74 65 72 66 61 63 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 nterface.$repo,.UninstallOperati
22d20 6f 6e 20 24 6f 70 65 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 on.$operation).{.$package.=.$ope
22d40 72 61 74 69 6f 6e 2d 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 ration->getPackage();.$installer
22d60 20 3d 20 24 74 68 69 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 .=.$this->getInstaller($package-
22d80 3e 67 65 74 54 79 70 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 >getType());.$installer->uninsta
22da0 6c 6c 28 24 72 65 70 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 ll($repo,.$package);.}........pu
22dc0 62 6c 69 63 20 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 blic.function.markAliasInstalled
22de0 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 4d 61 72 6b (RepositoryInterface.$repo,.Mark
22e00 41 6c 69 61 73 49 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 AliasInstalledOperation.$operati
22e20 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 3e 67 65 74 on).{.$package.=.$operation->get
22e40 50 61 63 6b 61 67 65 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 Package();..if.(!$repo->hasPacka
22e60 67 65 28 24 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 ge($package)).{.$repo->addPackag
22e80 65 28 63 6c 6f 6e 65 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 e(clone.$package);.}.}........pu
22ea0 62 6c 69 63 20 66 75 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 blic.function.markAliasUninstall
22ec0 65 64 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 4d 61 ed(RepositoryInterface.$repo,.Ma
22ee0 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 24 6f 70 65 rkAliasUninstalledOperation.$ope
22f00 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-
22f20 3e 67 65 74 50 61 63 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 >getPackage();..$repo->removePac
22f40 6b 61 67 65 28 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 kage($package);.}........public.
22f60 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 67 65 49 function.getInstallPath(PackageI
22f80 6e 74 65 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 65 72 20 nterface.$package).{.$installer.
22fa0 3d 20 24 74 68 69 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 =.$this->getInstaller($package->
22fc0 67 65 74 54 79 70 65 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 getType());..return.$installer->
22fe0 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 7d 0a 0a 0a 0a 0a getInstallPath($package);.}.....
23000 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 6e 64 6f 72 50 61 74 68 ...public.function.getVendorPath
23020 28 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 61 62 73 6f ($absolute.=.false).{.if.(!$abso
23040 6c 75 74 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 50 61 74 68 lute).{.return.$this->vendorPath
23060 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 67 65 74 63 77 64 28 29 2e 44 49 52 45 43 54 4f 52 59 5f 53 ;.}..return.getcwd().DIRECTORY_S
23080 45 50 41 52 41 54 4f 52 2e 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 50 61 74 68 3b 0a 7d 0a 0a 70 EPARATOR.$this->vendorPath;.}..p
230a0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 50 61 rivate.function.notifyInstall(Pa
230c0 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 20 28 24 ckageInterface.$package).{.if.($
230e0 70 61 63 6b 61 67 65 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 package->getRepository().instanc
23100 65 6f 66 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 eof.NotifiableRepositoryInterfac
23120 65 29 20 7b 0a 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 e).{.$package->getRepository()->
23140 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c notifyInstall($package);.}.}.}.<
23160 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
23180 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 49 4f 5c 49 er\Installer;..use.Composer\IO\I
231a0 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 41 75 74 6f 6c 6f 61 OInterface;.use.Composer\Autoloa
231c0 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 d\AutoloadGenerator;.use.Compose
231e0 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 0a 75 73 r\Downloader\DownloadManager;.us
23200 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 64 52 e.Composer\Repository\InstalledR
23220 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 73 65 72 epositoryInterface;.use.Composer
23240 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;......
23260 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 .class.InstallerInstaller.extend
23280 73 20 4c 69 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 s.LibraryInstaller.{.private.$in
232a0 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 73 74 61 74 69 stallationManager;.private.stati
232c0 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 0a 0a 0a 70 75 c.$classCounter.=.0;..........pu
232e0 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 76 65 6e 64 6f blic.function.__construct($vendo
23300 72 44 69 72 2c 20 24 62 69 6e 44 69 72 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 rDir,.$binDir,.DownloadManager.$
23320 64 6d 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f dm,.IOInterface.$io,.Installatio
23340 6e 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 61 72 72 61 79 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 nManager.$im,.array.$localReposi
23360 74 6f 72 69 65 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 76 tories).{.parent::__construct($v
23380 65 6e 64 6f 72 44 69 72 2c 20 24 62 69 6e 44 69 72 2c 20 24 64 6d 2c 20 24 69 6f 2c 20 27 63 6f endorDir,.$binDir,.$dm,.$io,.'co
233a0 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 mposer-installer');.$this->insta
233c0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 llationManager.=.$im;..foreach.(
233e0 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 $localRepositories.as.$repo).{.f
23400 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.
23420 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c $package).{.if.('composer-instal
23440 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a ler'.===.$package->getType()).{.
23460 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 $this->registerInstaller($packag
23480 65 29 3b 0a 7d 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 e);.}.}.}.}.....public.function.
234a0 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 74 65 72 install(InstalledRepositoryInter
234c0 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 24 70 61 face.$repo,.PackageInterface.$pa
234e0 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 65 74 45 ckage).{.$extra.=.$package->getE
23500 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 73 27 xtra();.if.(empty($extra['class'
23520 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 75 65 ])).{.throw.new.\UnexpectedValue
23540 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 69 6e Exception('Error.while.installin
23560 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 27 2c g.'.$package->getPrettyName().',
23580 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 70 61 63 6b 61 67 65 73 20 73 68 6f .composer-installer.packages.sho
235a0 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
235c0 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.');.}..
235e0 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)
23600 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b ;.$this->registerInstaller($pack
23620 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 75 70 64 61 age);.}.....public.function.upda
23640 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.
23660 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
23680 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 24 65 ,.PackageInterface.$target).{.$e
236a0 78 74 72 61 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 xtra.=.$target->getExtra();.if.(
236c0 65 6d 70 74 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 empty($extra['class'])).{.throw.
236e0 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 27 45 new.\UnexpectedValueException('E
23700 72 72 6f 72 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 rror.while.installing.'.$target-
23720 3e 67 65 74 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 69 6e 73 >getPrettyName().',.composer-ins
23740 74 61 6c 6c 65 72 20 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 taller.packages.should.have.a.cl
23760 61 73 73 20 64 65 66 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 ass.defined.in.their.extra.key.t
23780 6f 20 62 65 20 75 73 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 o.be.usable.');.}..parent::updat
237a0 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 0a 24 74 68 e($repo,.$initial,.$target);.$th
237c0 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 29 3b 0a is->registerInstaller($target);.
237e0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 49 6e 73 74 }..private.function.registerInst
23800 61 6c 6c 65 72 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 aller(PackageInterface.$package)
23820 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 3e 67 65 74 49 6e 73 .{.$downloadPath.=.$this->getIns
23840 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 tallPath($package);..$extra.=.$p
23860 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 ackage->getExtra();.$classes.=.i
23880 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 s_array($extra['class']).?.$extr
238a0 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 a['class'].:.array($extra['class
238c0 27 5d 29 3b 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 ']);..$generator.=.new.AutoloadG
238e0 65 6e 65 72 61 74 6f 72 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 enerator;.$map.=.$generator->par
23900 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 seAutoloads(array(array($package
23920 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 ,.$downloadPath)));.$classLoader
23940 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 6d 61 70 .=.$generator->createLoader($map
23960 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 0a 66 6f );.$classLoader->register();..fo
23980 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 69 66 20 reach.($classes.as.$class).{.if.
239a0 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 20 7b 0a (class_exists($class,.false)).{.
239c0 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 61 73 73 $code.=.file_get_contents($class
239e0 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 6f 64 65 Loader->findFile($class));.$code
23a00 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 .=.preg_replace('{^class\s+(\S+)
23a20 7d 6d 69 27 2c 20 27 63 6c 61 73 73 20 24 31 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 }mi',.'class.$1_composer_tmp'.se
23a40 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 lf::$classCounter,.$code);.eval(
23a60 27 3f 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 '?>'.$code);.$class..=.'_compose
23a80 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 3b 0a 73 65 6c 66 r_tmp'.self::$classCounter;.self
23aa0 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 ::$classCounter++;.}..$installer
23ac0 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 .=.new.$class($this->vendorDir,.
23ae0 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 $this->binDir,.$this->downloadMa
23b00 6e 61 67 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c nager,.$this->io);.$this->instal
23b20 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 lationManager->addInstaller($ins
23b40 74 61 6c 6c 65 72 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 taller);.}.}.}.<?php............
23b60 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 75 namespace.Composer\Installer;..u
23b80 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.
23ba0 43 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 4d 61 6e 61 Composer\Downloader\DownloadMana
23bc0 67 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 49 6e 73 ger;.use.Composer\Repository\Ins
23be0 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 0a 75 73 65 20 43 talledRepositoryInterface;.use.C
23c00 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 61 63 65 omposer\Package\PackageInterface
23c20 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;.
23c40 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d .......class.LibraryInstaller.im
23c60 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 7b 0a 70 72 plements.InstallerInterface.{.pr
23c80 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 otected.$vendorDir;.protected.$b
23ca0 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 inDir;.protected.$downloadManage
23cc0 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b r;.protected.$io;.private.$type;
23ce0 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .private.$filesystem;...........
23d00 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 76 65 6e public.function.__construct($ven
23d20 64 6f 72 44 69 72 2c 20 24 62 69 6e 44 69 72 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 dorDir,.$binDir,.DownloadManager
23d40 20 24 64 6d 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 74 79 70 65 20 3d 20 27 .$dm,.IOInterface.$io,.$type.=.'
23d60 6c 69 62 72 61 72 79 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 library').{.$this->downloadManag
23d80 65 72 20 3d 20 24 64 6d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 er.=.$dm;.$this->io.=.$io;.$this
23da0 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 ->type.=.$type;..$this->filesyst
23dc0 65 6d 20 3d 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 em.=.new.Filesystem();.$this->ve
23de0 6e 64 6f 72 44 69 72 20 3d 20 72 74 72 69 6d 28 24 76 65 6e 64 6f 72 44 69 72 2c 20 27 2f 27 29 ndorDir.=.rtrim($vendorDir,.'/')
23e00 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 62 69 6e 44 69 72 2c ;.$this->binDir.=.rtrim($binDir,
23e20 20 27 2f 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 73 75 70 .'/');.}.....public.function.sup
23e40 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 24 70 61 ports($packageType).{.return.$pa
23e60 63 6b 61 67 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 ckageType.===.$this->type.||.nul
23e80 6c 20 3d 3d 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 l.===.$this->type;.}.....public.
23ea0 66 75 6e 63 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 function.isInstalled(InstalledRe
23ec0 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 67 65 positoryInterface.$repo,.Package
23ee0 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 72 65 Interface.$package).{.return.$re
23f00 70 6f 2d 3e 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 po->hasPackage($package).&&.is_r
23f20 65 61 64 61 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 eadable($this->getInstallPath($p
23f40 61 63 6b 61 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 ackage));.}.....public.function.
23f60 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 74 65 72 install(InstalledRepositoryInter
23f80 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 24 70 61 face.$repo,.PackageInterface.$pa
23fa0 63 6b 61 67 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 ckage).{.$this->initializeVendor
23fc0 44 69 72 28 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 Dir();.$downloadPath.=.$this->ge
23fe0 74 49 6e 73 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 tInstallPath($package);....if.(!
24000 69 73 5f 72 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 is_readable($downloadPath).&&.$r
24020 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 0a 24 74 68 epo->hasPackage($package)).{.$th
24040 69 73 2d 3e 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 is->removeBinaries($package);.}.
24060 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 64 6f 77 6e 6c 6f 61 .$this->downloadManager->downloa
24080 64 28 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 24 74 68 69 d($package,.$downloadPath);.$thi
240a0 73 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 s->installBinaries($package);.if
240c0 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 29 20 .(!$repo->hasPackage($package)).
240e0 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 20 24 70 61 63 6b 61 {.$repo->addPackage(clone.$packa
24100 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 69 6f 6e 20 75 70 64 ge);.}.}.....public.function.upd
24120 61 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 ate(InstalledRepositoryInterface
24140 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 69 6e 69 74 69 61 .$repo,.PackageInterface.$initia
24160 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 29 0a 7b 0a 69 l,.PackageInterface.$target).{.i
24180 66 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 f.(!$repo->hasPackage($initial))
241a0 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 63 .{.throw.new.\InvalidArgumentExc
241c0 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 64 eption('Package.is.not.installed
241e0 3a 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 :.'.$initial);.}..$this->initial
24200 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 izeVendorDir();.$downloadPath.=.
24220 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 69 6e 69 74 69 61 6c 29 3b $this->getInstallPath($initial);
24240 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e 69 74 69 61 6c ..$this->removeBinaries($initial
24260 29 3b 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 74 );.$this->downloadManager->updat
24280 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 e($initial,.$target,.$downloadPa
242a0 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 74 61 72 th);.$this->installBinaries($tar
242c0 67 65 74 29 3b 0a 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 get);.$repo->removePackage($init
242e0 69 61 6c 29 3b 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 74 61 ial);.if.(!$repo->hasPackage($ta
24300 72 67 65 74 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 rget)).{.$repo->addPackage(clone
24320 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$target);.}.}.....public.functi
24340 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 69 74 6f 72 79 on.uninstall(InstalledRepository
24360 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 63 Interface.$repo,.PackageInterfac
24380 65 20 24 70 61 63 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 e.$package).{.if.(!$repo->hasPac
243a0 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f kage($package)).{...return;.thro
243c0 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(
243e0 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 20 27 2e 24 70 61 'Package.is.not.installed:.'.$pa
24400 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 ckage);.}..$downloadPath.=.$this
24420 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 0a 24 74 68 ->getInstallPath($package);..$th
24440 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 61 63 is->downloadManager->remove($pac
24460 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d kage,.$downloadPath);.$this->rem
24480 6f 76 65 42 69 6e 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 oveBinaries($package);.$repo->re
244a0 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 73 74 72 70 movePackage($package);..if.(strp
244c0 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a os($package->getName(),.'/')).{.
244e0 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 $packageVendorDir.=.dirname($dow
24500 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 nloadPath);.if.(is_dir($packageV
24520 65 6e 64 6f 72 44 69 72 29 20 26 26 20 21 67 6c 6f 62 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f endorDir).&&.!glob($packageVendo
24540 72 44 69 72 2e 27 2f 2a 27 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e rDir.'/*')).{.@rmdir($packageVen
24560 64 6f 72 44 69 72 29 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 dorDir);.}.}.}.....public.functi
24580 6f 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 on.getInstallPath(PackageInterfa
245a0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 ce.$package).{.$targetDir.=.$pac
245c0 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 kage->getTargetDir();..return.($
245e0 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 6e 64 6f 72 44 this->vendorDir.?.$this->vendorD
24600 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 74 50 72 65 74 ir.'/'.:.'')...$package->getPret
24620 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 tyName()...($targetDir.?.'/'.$ta
24640 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 rgetDir.:.'');.}..protected.func
24660 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 tion.installBinaries(PackageInte
24680 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d rface.$package).{.if.(!$package-
246a0 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 >getBinaries()).{.return;.}.fore
246c0 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 20 61 73 20 ach.($package->getBinaries().as.
246e0 24 62 69 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 $bin).{.$this->initializeBinDir(
24700 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 61 73 );.$link.=.$this->binDir.'/'.bas
24720 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 6c 69 ename($bin);.if.(file_exists($li
24740 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 20 0a nk)).{.if.(is_link($link)).{....
24760 20 0a 20 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 ...chmod($link,.0777.&.~umask())
24780 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 69 6e ;.}.$this->io->write('Skipped.in
247a0 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 72 20 70 61 63 6b 61 stallation.of.'.$bin.'.for.packa
247c0 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 27 2c 20 6e 61 6d 65 ge.'.$package->getName().',.name
247e0 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 6e 67 20 66 69 6c 65 .conflicts.with.an.existing.file
24800 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 ');.continue;.}.$bin.=.$this->ge
24820 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b tInstallPath($package).'/'.$bin;
24840 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 49 ..if.(defined('PHP_WINDOWS_VERSI
24860 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 ON_BUILD')).{...if.('.bat'.!==.s
24880 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 ubstr($bin,.-4)).{.file_put_cont
248a0 65 6e 74 73 28 24 6c 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 ents($link,.$this->generateUnixy
248c0 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 63 68 6d 6f 64 28 24 ProxyCode($bin,.$link));.chmod($
248e0 6c 69 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 link,.0777.&.~umask());.$link..=
24900 20 27 2e 62 61 74 27 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 .'.bat';.}.file_put_contents($li
24920 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 43 nk,.$this->generateWindowsProxyC
24940 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 ode($bin,.$link));.}.else.{.$cwd
24960 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 65 6c 61 74 69 76 65 .=.getcwd();.try.{.....$relative
24980 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 66 69 6e 64 53 68 6f Bin.=.$this->filesystem->findSho
249a0 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 63 68 64 69 72 28 64 69 rtestPath($link,.$bin);.chdir(di
249c0 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 73 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 rname($link));.symlink($relative
249e0 42 69 6e 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 Bin,.$link);.}.catch.(\ErrorExce
24a00 70 74 69 6f 6e 20 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 ption.$e).{.file_put_contents($l
24a20 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
24a40 64 65 28 24 62 69 6e 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 de($bin,.$link));.}.chdir($cwd);
24a60 0a 7d 0a 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 .}.chmod($link,.0777.&.~umask())
24a80 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 72 65 6d 6f 76 65 ;.}.}..protected.function.remove
24aa0 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
24ac0 67 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 ge).{.if.(!$package->getBinaries
24ae0 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 ()).{.return;.}.foreach.($packag
24b00 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e e->getBinaries().as.$bin).{.$lin
24b20 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 k.=.$this->binDir.'/'.basename($
24b40 62 69 6e 29 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b bin);.if.(!file_exists($link)).{
24b60 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 7d 0a .continue;.}.unlink($link);.}.}.
24b80 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 56 65 .protected.function.initializeVe
24ba0 6e 64 6f 72 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 2d 3e 65 ndorDir().{.$this->filesystem->e
24bc0 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 76 65 6e 64 nsureDirectoryExists($this->vend
24be0 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 65 61 6c 70 orDir);.$this->vendorDir.=.realp
24c00 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ath($this->vendorDir);.}..protec
24c20 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a ted.function.initializeBinDir().
24c40 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 65 44 69 72 65 63 {.$this->filesystem->ensureDirec
24c60 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 74 68 69 73 toryExists($this->binDir);.$this
24c80 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 ->binDir.=.realpath($this->binDi
24ca0 72 29 3b 0a 7d 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 r);.}..private.function.generate
24cc0 57 69 6e 64 6f 77 73 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 WindowsProxyCode($bin,.$link).{.
24ce0 24 62 69 6e 50 61 74 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 $binPath.=.$this->filesystem->fi
24d00 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 29 3b 0a 69 66 20 ndShortestPath($link,.$bin);.if.
24d20 28 27 2e 62 61 74 27 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 ('.bat'.===.substr($bin,.-4)).{.
24d40 24 63 61 6c 6c 65 72 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 $caller.=.'call';.}.else.{.$hand
24d60 6c 65 20 3d 20 66 6f 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 le.=.fopen($bin,.'r');.$line.=.f
24d80 67 65 74 73 28 24 68 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 gets($handle);.fclose($handle);.
24da0 69 66 20 28 70 72 65 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 if.(preg_match('{^#!/(?:usr/bin/
24dc0 65 6e 76 20 29 3f 28 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 env.)?(?:[^/]+/)*(.+)$}m',.$line
24de0 2c 20 24 6d 61 74 63 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 ,.$match)).{.$caller.=.trim($mat
24e00 63 68 5b 31 5d 29 3b 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 ch[1]);.}.else.{.$caller.=.'php'
24e20 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 ;.}.}..return."@echo.off\r\n".."
24e40 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 pushd..\r\n".."cd.%~dp0\r\n".."c
24e60 64 20 22 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 62 69 6e 50 d.".escapeshellarg(dirname($binP
24e80 61 74 68 29 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 ath))."\r\n".."set.BIN_TARGET=%C
24ea0 44 25 5c 5c 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 D%\\".basename($binPath)."\r\n".
24ec0 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 24 63 61 6c 6c 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 ."popd\r\n"..$caller.".\"%BIN_TA
24ee0 52 47 45 54 25 5c 22 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 RGET%\".%*\r\n";.}..private.func
24f00 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 64 65 28 24 62 69 6e tion.generateUnixyProxyCode($bin
24f20 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 3e 66 69 6c ,.$link).{.$binPath.=.$this->fil
24f40 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 69 6e 6b 2c esystem->findShortestPath($link,
24f60 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 69 6e 2f 65 6e 76 20 .$bin);..return."#!/usr/bin/env.
24f80 73 68 5c 6e 22 2e 0a 27 53 52 43 5f 44 49 52 3d 60 70 77 64 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 sh\n"..'SRC_DIR=`pwd`'."\n"..'cd
24fa0 20 60 64 69 72 6e 61 6d 65 20 22 24 30 22 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 65 73 63 .`dirname."$0"`'."\n"..'cd.'.esc
24fc0 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 29 2e 22 apeshellarg(dirname($binPath))."
24fe0 5c 6e 22 2e 0a 27 42 49 4e 5f 54 41 52 47 45 54 3d 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d \n"..'BIN_TARGET=`pwd`/'.basenam
25000 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 6e 22 2e 0a 27 63 64 20 24 53 52 43 5f 44 49 52 27 2e e($binPath)."\n"..'cd.$SRC_DIR'.
25020 22 5c 6e 22 2e 0a 27 24 42 49 4e 5f 54 41 52 47 45 54 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d "\n"..'$BIN_TARGET."$@"'."\n";.}
25040 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
25060 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 73 65 72 5c mposer\Installer;..use.Composer\
25080 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 6f 72 79 49 6e Repository\InstalledRepositoryIn
250a0 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 50 61 terface;.use.Composer\Package\Pa
250c0 63 6b 61 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 ckageInterface;.........class.No
250e0 6f 70 49 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 opInstaller.implements.Installer
25100 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 69 6f 6e 20 73 Interface.{....public.function.s
25120 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 74 upports($packageType).{.return.t
25140 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 69 73 49 6e 73 rue;.}.....public.function.isIns
25160 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 79 49 6e 74 65 72 66 talled(InstalledRepositoryInterf
25180 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
251a0 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 50 61 63 6b 61 67 65 kage).{.return.$repo->hasPackage
251c0 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 66 75 6e 63 74 69 6f ($package);.}.....public.functio
251e0 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 74 n.install(InstalledRepositoryInt
25200 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 24 erface.$repo,.PackageInterface.$
25220 70 61 63 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 package).{.if.(!$repo->hasPackag
25240 65 28 24 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 e($package)).{.$repo->addPackage
25260 28 63 6c 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 (clone.$package);.}.}.....public
25280 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 69 .function.update(InstalledReposi
252a0 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
252c0 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 65 rface.$initial,.PackageInterface
252e0 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 61 .$target).{.if.(!$repo->hasPacka
25300 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 6c ge($initial)).{.throw.new.\Inval
25320 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 20 idArgumentException('Package.is.
25340 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 69 not.installed:.'.$initial);.}..i
25360 66 20 28 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 f.(!$repo->hasPackage($target)).
25380 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 20 24 74 61 72 67 65 {.$repo->addPackage(clone.$targe
253a0 74 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 6e 69 6e t);.}.}.....public.function.unin
253c0 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 61 stall(InstalledRepositoryInterfa
253e0 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
25400 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 70 age).{.if.(!$repo->hasPackage($p
25420 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ackage)).{...return;.throw.new.\
25440 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
25460 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b e.is.not.installed:.'.$package);
25480 0a 7d 0a 24 72 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 .}.$repo->removePackage($package
254a0 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 49 6e 73 74 );.}.....public.function.getInst
254c0 61 6c 6c 50 61 74 68 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 allPath(PackageInterface.$packag
254e0 65 29 0a 7b 0a 24 74 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 e).{.$targetDir.=.$package->getT
25500 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 argetDir();..return.$package->ge
25520 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f tPrettyName()...($targetDir.?.'/
25540 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a '.$targetDir.:.'');.}.}.<?php...
25560 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 74 .........namespace.Composer\Inst
25580 61 6c 6c 65 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 aller;..use.Composer\Repository\
255a0 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 0a 75 73 InstalledRepositoryInterface;.us
255c0 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
255e0 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 ace;.......class.MetapackageInst
25600 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 65 72 66 aller.implements.InstallerInterf
25620 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 6f 72 74 ace.{....public.function.support
25640 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
25660 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 eType.===.'metapackage';.}.....p
25680 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 6e 73 74 61 ublic.function.isInstalled(Insta
256a0 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 2c 20 50 lledRepositoryInterface.$repo,.P
256c0 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 75 ackageInterface.$package).{.retu
256e0 72 6e 20 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 3b 0a rn.$repo->hasPackage($package);.
25700 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
25720 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
25740 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).{.$
25760 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 65 29 repo->addPackage(clone.$package)
25780 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
257a0 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
257c0 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
257e0 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 20 28 21 24 ckageInterface.$target).{.if.(!$
25800 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 7b 0a 74 68 repo->hasPackage($initial)).{.th
25820 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
25840 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 20 27 2e 24 n('Package.is.not.installed:.'.$
25860 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 initial);.}..$repo->removePackag
25880 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 e($initial);.$repo->addPackage(c
258a0 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lone.$target);.}.....public.func
258c0 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 69 74 6f tion.uninstall(InstalledReposito
258e0 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 72 66 ryInterface.$repo,.PackageInterf
25900 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 ace.$package).{.if.(!$repo->hasP
25920 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 ackage($package)).{...return;.th
25940 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
25960 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 20 27 2e 24 n('Package.is.not.installed:.'.$
25980 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 package);.}..$repo->removePackag
259a0 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 66 75 6e 63 74 69 e($package);.}.....public.functi
259c0 6f 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 on.getInstallPath(PackageInterfa
259e0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f ce.$package).{.return.'';.}.}.<?
25a00 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
25a20 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 65 r;..use.Composer\Package\Package
25a40 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\
25a60 4c 6f 63 6b 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 Locker;.use.Composer\Repository\
25a80 52 65 70 6f 73 69 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 RepositoryManager;.use.Composer\
25aa0 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 0a 75 Installer\InstallationManager;.u
25ac0 73 65 20 43 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 4d se.Composer\Downloader\DownloadM
25ae0 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f anager;......class.Composer.{.co
25b00 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 31 64 66 39 63 36 32 27 3b 0a 0a 70 72 69 76 61 74 nst.VERSION.=.'1df9c62';..privat
25b20 65 20 24 70 61 63 6b 61 67 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 70 72 e.$package;.private.$locker;..pr
25b40 69 76 61 74 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 ivate.$repositoryManager;.privat
25b60 65 20 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 69 6e 73 e.$downloadManager;.private.$ins
25b80 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tallationManager;..public.functi
25ba0 6f 6e 20 73 65 74 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 on.setPackage(PackageInterface.$
25bc0 70 61 63 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 package).{.$this->package.=.$pac
25be0 6b 61 67 65 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 61 63 6b kage;.}..public.function.getPack
25c00 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;.}
25c20 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 6f 6e 66 ..public.function.setConfig(Conf
25c40 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 20 24 63 ig.$config).{.$this->config.=.$c
25c60 6f 6e 66 69 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 43 6f 6e onfig;.}..public.function.getCon
25c80 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 69 67 3b 0a 7d 0a fig().{.return.$this->config;.}.
25ca0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 65 72 28 4c 6f 63 6b 65 .public.function.setLocker(Locke
25cc0 72 20 24 6c 6f 63 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f r.$locker).{.$this->locker.=.$lo
25ce0 63 6b 65 72 3b 0a 7d 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 cker;.}..public.function.getLock
25d00 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a er().{.return.$this->locker;.}..
25d20 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 4d 61 6e public.function.setRepositoryMan
25d40 61 67 65 72 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 ager(RepositoryManager.$manager)
25d60 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d .{.$this->repositoryManager.=.$m
25d80 61 6e 61 67 65 72 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 anager;.}..public.function.getRe
25da0 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 positoryManager().{.return.$this
25dc0 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ->repositoryManager;.}..public.f
25de0 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e 6c unction.setDownloadManager(Downl
25e00 6f 61 64 4d 61 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 64 6f oadManager.$manager).{.$this->do
25e20 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 70 75 62 wnloadManager.=.$manager;.}..pub
25e40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 lic.function.getDownloadManager(
25e60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 ).{.return.$this->downloadManage
25e80 72 3b 0a 7d 0a 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 r;.}..public.function.setInstall
25ea0 61 74 69 6f 6e 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 ationManager(InstallationManager
25ec0 20 24 6d 61 6e 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 .$manager).{.$this->installation
25ee0 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 Manager.=.$manager;.}..public.fu
25f00 6e 63 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 nction.getInstallationManager().
25f20 7b 0a 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 {.return.$this->installationMana
25f40 67 65 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 ger;.}.}.<?php............namesp
25f60 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 ace.Composer\IO;.......interface
25f80 20 49 4f 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 .IOInterface.{......public.funct
25fa0 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 0a 70 75 62 6c 69 ion.isInteractive();.......publi
25fc0 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 c.function.isVerbose();.......pu
25fe0 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 3b 0a 0a 0a 0a blic.function.isDecorated();....
26000 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 24 6d 65 73 73 61 ....public.function.write($messa
26020 67 65 73 2c 20 24 6e 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 ges,.$newline.=.true);.........p
26040 75 62 6c 69 63 20 66 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 ublic.function.overwrite($messag
26060 65 73 2c 20 24 6e 65 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 es,.$newline.=.true,.$size.=.80)
26080 3b 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 6b ;............public.function.ask
260a0 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 6c 6c 29 3b 0a 0a 0a ($question,.$default.=.null);...
260c0 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 6b 43 6f 6e 66 .........public.function.askConf
260e0 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
26100 72 75 65 29 3b 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 rue);..................public.fu
26120 6e 63 74 69 6f 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 nction.askAndValidate($question,
26140 20 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 .$validator,.$attempts.=.false,.
26160 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 70 75 62 6c 69 63 $default.=.null);.........public
26180 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 24 71 75 65 73 .function.askAndHideAnswer($ques
261a0 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 67 65 74 tion);.......public.function.get
261c0 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Authorizations();.........public
261e0 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f .function.hasAuthorization($repo
26200 73 69 74 6f 72 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 sitoryName);.........public.func
26220 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 tion.getAuthorization($repositor
26240 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.
26260 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 setAuthorization($repositoryName
26280 2c 20 24 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 ,.$username,.$password.=.null);.
262a0 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
262c0 70 6f 73 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 69 6d 70 poser\IO;.......class.NullIO.imp
262e0 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 lements.IOInterface.{....public.
26300 66 75 6e 63 74 69 6f 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 function.isInteractive().{.retur
26320 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 69 n.false;.}.....public.function.i
26340 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a sVerbose().{.return.false;.}....
26360 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 64 28 29 0a 7b .public.function.isDecorated().{
26380 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 63 .return.false;.}.....public.func
263a0 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 65 20 3d tion.write($messages,.$newline.=
263c0 20 74 72 75 65 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 .true).{.}.....public.function.o
263e0 76 65 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 verwrite($messages,.$newline.=.t
26400 72 75 65 2c 20 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 rue,.$size.=.80).{.}.....public.
26420 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 64 65 66 61 75 6c 74 function.ask($question,.$default
26440 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 0a 0a 0a .=.null).{.return.$default;.}...
26460 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
26480 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 0a 7b 0a n($question,.$default.=.true).{.
264a0 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 6c 69 63 20 66 75 return.$default;.}.....public.fu
264c0 6e 63 74 69 6f 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 nction.askAndValidate($question,
264e0 20 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 .$validator,.$attempts.=.false,.
26500 24 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 64 65 66 61 75 $default.=.null).{.return.$defau
26520 6c 74 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 lt;.}.....public.function.askAnd
26540 48 69 64 65 41 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 HideAnswer($question).{.return.n
26560 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 41 75 ull;.}.....public.function.getAu
26580 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b thorizations().{.return.array();
265a0 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 41 75 74 68 6f 72 .}.....public.function.hasAuthor
265c0 69 7a 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 72 65 74 75 72 ization($repositoryName).{.retur
265e0 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 67 n.false;.}.....public.function.g
26600 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 etAuthorization($repositoryName)
26620 0a 7b 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 20 6e 75 .{.return.array('username'.=>.nu
26640 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 0a 0a 70 ll,.'password'.=>.null);.}.....p
26660 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 ublic.function.setAuthorization(
26680 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 24 70 61 73 $repositoryName,.$username,.$pas
266a0 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a sword.=.null).{.}.}.<?php.......
266c0 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 73 65 .....namespace.Composer\IO;..use
266e0 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
26700 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
26720 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
26740 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
26760 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 63 6c sole\Helper\HelperSet;........cl
26780 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 ass.ConsoleIO.implements.IOInter
267a0 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 face.{.protected.$input;.protect
267c0 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 ed.$output;.protected.$helperSet
267e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 20 3d 20 61 72 ;.protected.$authorizations.=.ar
26800 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 0a ray();.protected.$lastMessage;..
26820 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
26840 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 75 74 ct(InputInterface.$input,.Output
26860 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 68 65 Interface.$output,.HelperSet.$he
26880 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 75 74 lperSet).{.$this->input.=.$input
268a0 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 69 73 ;.$this->output.=.$output;.$this
268c0 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 0a 0a ->helperSet.=.$helperSet;.}.....
268e0 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 76 65 28 29 0a public.function.isInteractive().
26900 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 {.return.$this->input->isInterac
26920 74 69 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 69 73 tive();.}.....public.function.is
26940 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 6f 75 74 70 Decorated().{.return.$this->outp
26960 75 74 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 69 63 20 ut->isDecorated();.}.....public.
26980 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 42 function.isVerbose().{.return.(B
269a0 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 oolean).$this->input->getOption(
269c0 27 76 65 72 62 6f 73 65 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 'verbose');.}.....public.functio
269e0 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 65 20 3d 20 74 72 n.write($messages,.$newline.=.tr
26a00 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 ue).{.$this->output->write($mess
26a20 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 ages,.$newline);.$this->lastMess
26a40 61 67 65 20 3d 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 age.=.join($newline.?."\n".:.'',
26a60 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .(array).$messages);.}.....publi
26a80 63 20 66 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 c.function.overwrite($messages,.
26aa0 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b $newline.=.true,.$size.=.null).{
26ac0 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 ...$messages.=.join($newline.?."
26ae0 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a \n".:.'',.(array).$messages);...
26b00 20 69 66 20 28 21 69 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 .if.(!isset($size)).{...$size.=.
26b20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 strlen(strip_tags($this->lastMes
26b40 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 sage));.}...$this->write(str_rep
26b60 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 eat("\x08",.$size),.false);....$
26b80 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 29 3b 0a 0a this->write($messages,.false);..
26ba0 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 $fill.=.$size.-.strlen(strip_tag
26bc0 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a s($messages));.if.($fill.>.0).{.
26be0 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 27 20 27 2c 20 24 ..$this->write(str_repeat('.',.$
26c00 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 fill),.false);...$this->write(st
26c20 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b r_repeat("\x08",.$fill),.false);
26c40 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 .}..if.($newline).{.$this->write
26c60 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 ('');.}.$this->lastMessage.=.$me
26c80 73 73 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 61 73 ssages;.}.....public.function.as
26ca0 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 6c 6c 29 0a 7b 0a k($question,.$default.=.null).{.
26cc0 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 65 74 28 27 64 69 return.$this->helperSet->get('di
26ce0 61 6c 6f 67 27 29 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 alog')->ask($this->output,.$ques
26d00 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tion,.$default);.}.....public.fu
26d20 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 65 73 74 69 6f 6e nction.askConfirmation($question
26d40 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 6e 20 24 74 68 69 ,.$default.=.true).{.return.$thi
26d60 73 2d 3e 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 s->helperSet->get('dialog')->ask
26d80 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 Confirmation($this->output,.$que
26da0 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 stion,.$default);.}.....public.f
26dc0 75 6e 63 74 69 6f 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 unction.askAndValidate($question
26de0 2c 20 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 ,.$validator,.$attempts.=.false,
26e00 20 24 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 .$default.=.null).{.return.$this
26e20 2d 3e 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 41 ->helperSet->get('dialog')->askA
26e40 6e 64 56 61 6c 69 64 61 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 ndValidate($this->output,.$quest
26e60 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 73 2c 20 24 64 65 66 ion,.$validator,.$attempts,.$def
26e80 61 75 6c 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 ault);.}.....public.function.ask
26ea0 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 69 66 20 AndHideAnswer($question).{...if.
26ec0 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 42 55 (defined('PHP_WINDOWS_VERSION_BU
26ee0 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 ILD')).{.$exe.=.__DIR__.'\\hidde
26f00 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 3d 3d 3d 20 ninput.exe';....if.('phar:'.===.
26f20 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 6d 70 45 78 substr(__FILE__,.0,.5)).{.$tmpEx
26f40 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 64 65 6e 69 e.=.sys_get_temp_dir().'/hiddeni
26f60 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 65 29 3b 0a nput.exe';.copy($exe,.$tmpExe);.
26f80 24 65 78 65 20 3d 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 $exe.=.$tmpExe;.}..$this->write(
26fa0 24 71 75 65 73 74 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 $question,.false);.$value.=.rtri
26fc0 6d 28 73 68 65 6c 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 m(shell_exec($exe));.$this->writ
26fe0 65 28 27 27 29 3b 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 e('');....if.(isset($tmpExe)).{.
27000 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 75 unlink($tmpExe);.}..return.$valu
27020 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c e;.}....if.('OK'.===.rtrim(shell
27040 5f 65 78 65 63 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 62 61 73 68 20 2d 63 20 27 65 63 68 _exec("/usr/bin/env.bash.-c.'ech
27060 6f 20 4f 4b 27 22 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 o.OK'"))).{.$this->write($questi
27080 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 22 2f 75 73 72 2f 62 69 6e on,.false);.$command.=."/usr/bin
270a0 2f 65 6e 76 20 62 61 73 68 20 2d 63 20 27 72 65 61 64 20 2d 73 20 6d 79 70 61 73 73 77 6f 72 64 /env.bash.-c.'read.-s.mypassword
270c0 20 26 26 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 3b 0a 24 76 61 6c 75 65 20 .&&.echo.\$mypassword'";.$value.
270e0 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 =.rtrim(shell_exec($command));.$
27100 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b this->write('');..return.$value;
27120 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f .}....return.$this->ask($questio
27140 6e 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 41 75 74 n);.}.....public.function.getAut
27160 68 6f 72 69 7a 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 75 horizations().{.return.$this->au
27180 74 68 6f 72 69 7a 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 thorizations;.}.....public.funct
271a0 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 ion.hasAuthorization($repository
271c0 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 6f Name).{.$auths.=.$this->getAutho
271e0 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 75 74 68 rizations();..return.isset($auth
27200 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s[$repositoryName]);.}.....publi
27220 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 c.function.getAuthorization($rep
27240 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 ositoryName).{.$auths.=.$this->g
27260 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 etAuthorizations();..return.isse
27280 74 28 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 20 3f 20 24 61 75 t($auths[$repositoryName]).?.$au
272a0 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 20 3a 20 61 72 72 61 79 28 27 75 73 ths[$repositoryName].:.array('us
272c0 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e ername'.=>.null,.'password'.=>.n
272e0 75 6c 6c 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 41 ull);.}.....public.function.setA
27300 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 uthorization($repositoryName,.$u
27320 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 0a 7b 0a 24 74 68 sername,.$password.=.null).{.$th
27340 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 is->authorizations[$repositoryNa
27360 6d 65 5d 20 3d 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e me].=.array('username'.=>.$usern
27380 61 6d 65 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d ame,.'password'.=>.$password);.}
273a0 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
273c0 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 mposer\Script;........class.Scri
273e0 70 74 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 ptEvents.{........const.PRE_INST
27400 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a ALL_CMD.=.'pre-install-cmd';....
27420 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 .....const.POST_INSTALL_CMD.=.'p
27440 6f 73 74 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 20 ost-install-cmd';.........const.
27460 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 PRE_UPDATE_CMD.=.'pre-update-cmd
27480 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 ';.........const.POST_UPDATE_CMD
274a0 20 3d 20 27 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f .=.'post-update-cmd';.........co
274c0 6e 73 74 20 50 52 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 nst.PRE_PACKAGE_INSTALL.=.'pre-p
274e0 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 63 6f 6e 73 74 20 50 ackage-install';.........const.P
27500 4f 53 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 70 61 63 6b OST_PACKAGE_INSTALL.=.'post-pack
27520 61 67 65 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 52 45 5f age-install';.........const.PRE_
27540 50 41 43 4b 41 47 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 PACKAGE_UPDATE.=.'pre-package-up
27560 64 61 74 65 27 3b 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 date';.........const.POST_PACKAG
27580 45 5f 55 50 44 41 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 E_UPDATE.=.'post-package-update'
275a0 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 45 5f 55 4e 49 4e ;.........const.PRE_PACKAGE_UNIN
275c0 53 54 41 4c 4c 20 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 STALL.=.'pre-package-uninstall';
275e0 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 4e 49 4e .........const.POST_PACKAGE_UNIN
27600 53 54 41 4c 4c 20 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 STALL.=.'post-package-uninstall'
27620 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 43 ;.}.<?php............namespace.C
27640 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 65 72 5c 41 75 omposer\Script;..use.Composer\Au
27660 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 75 73 65 20 43 6f toload\AutoloadGenerator;.use.Co
27680 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
276a0 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 44 65 70 65 6e ser\Composer;.use.Composer\Depen
276c0 64 65 6e 63 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 dencyResolver\Operation\Operatio
276e0 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 63 6c 61 73 73 20 45 nInterface;..............class.E
27700 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 ventDispatcher.{.protected.$comp
27720 6f 73 65 72 3b 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 oser;.protected.$io;.protected.$
27740 6c 6f 61 64 65 72 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 loader;........public.function._
27760 5f 63 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 _construct(Composer.$composer,.I
27780 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 63 6f 6d 70 6f 73 65 OInterface.$io).{.$this->compose
277a0 72 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 r.=.$composer;.$this->io.=.$io;.
277c0 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 63 }........public.function.dispatc
277e0 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 4f 70 65 72 61 74 hPackageEvent($eventName,.Operat
27800 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 68 69 73 ionInterface.$operation).{.$this
27820 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 28 24 65 ->doDispatch(new.PackageEvent($e
27840 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 68 69 73 ventName,.$this->composer,.$this
27860 2d 3e 69 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ->io,.$operation));.}.......publ
27880 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 ic.function.dispatchCommandEvent
278a0 28 24 65 76 65 6e 74 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 ($eventName).{.$this->doDispatch
278c0 28 6e 65 77 20 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 74 (new.CommandEvent($eventName,.$t
278e0 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 7d 0a 0a 0a his->composer,.$this->io));.}...
27900 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 70 61 74 63 ....protected.function.doDispatc
27920 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 20 3d 20 24 h(Event.$event).{.$listeners.=.$
27940 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 0a 66 6f 72 this->getListeners($event);..for
27960 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 65 29 20 7b each.($listeners.as.$callable).{
27980 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 .$className.=.substr($callable,.
279a0 30 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 29 3b 0a 24 6d 65 0,.strpos($callable,.'::'));.$me
279c0 74 68 6f 64 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 thodName.=.substr($callable,.str
279e0 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 pos($callable,.'::').+.2);..if.(
27a00 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 74 68 72 !class_exists($className)).{.thr
27a20 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 6f 6e ow.new.\UnexpectedValueException
27a40 28 27 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 ('Class.'.$className.'.is.not.au
27a60 74 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 toloadable,.can.not.call.'.$even
27a80 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 27 29 3b 0a 7d 0a 69 66 20 28 21 t->getName().'.script');.}.if.(!
27aa0 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 74 68 72 6f 77 20 is_callable($callable)).{.throw.
27ac0 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 27 4d new.\UnexpectedValueException('M
27ae0 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 61 6c 6c 61 ethod.'.$callable.'.is.not.calla
27b00 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 2d 3e 67 65 74 4e ble,.can.not.call.'.$event->getN
27b20 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 27 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 6c 61 73 ame().'.script');.}..try.{.$clas
27b40 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 20 63 61 sName::$methodName($event);.}.ca
27b60 74 63 68 20 28 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 tch.(\Exception.$e).{.$message.=
27b80 20 22 53 63 72 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 ."Script.%s.handling.the.%s.even
27ba0 74 20 74 65 72 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 t.terminated.with.an.exception";
27bc0 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 27 2e 73 70 72 69 .$this->io->write('<error>'.spri
27be0 6e 74 66 28 24 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 ntf($message,.$callable,.$event-
27c00 3e 67 65 74 4e 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 >getName()).'</error>');.throw.$
27c20 65 3b 0a 7d 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 6f 6e e;.}.}.}......protected.function
27c40 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 .getListeners(Event.$event).{.$p
27c60 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 ackage.=.$this->composer->getPac
27c80 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 kage();.$scripts.=.$package->get
27ca0 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 Scripts();..if.(empty($scripts[$
27cc0 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 event->getName()])).{.return.arr
27ce0 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 ay();.}..if.($this->loader).{.$t
27d00 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 his->loader->unregister();.}..$g
27d20 65 6e 65 72 61 74 6f 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 enerator.=.new.AutoloadGenerator
27d40 3b 0a 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 ;.$packages.=.$this->composer->g
27d60 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 52 etRepositoryManager()->getLocalR
27d80 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 29 3b 0a 24 70 61 63 epository()->getPackages();.$pac
27da0 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 6c 64 50 61 63 6b 61 kageMap.=.$generator->buildPacka
27dc0 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 74 49 6e 73 74 61 6c geMap($this->composer->getInstal
27de0 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 2c 20 24 70 61 63 6b lationManager(),.$package,.$pack
27e00 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 3e 70 61 72 73 65 41 ages);.$map.=.$generator->parseA
27e20 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f utoloads($packageMap);.$this->lo
27e40 61 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 ader.=.$generator->createLoader(
27e60 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 $map);.$this->loader->register()
27e80 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 ;..return.$scripts[$event->getNa
27ea0 6d 65 28 29 5d 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 me()];.}.}.<?php............name
27ec0 73 70 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 space.Composer\Script;..use.Comp
27ee0 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
27f00 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 65 OInterface;.use.Composer\Depende
27f20 6e 63 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 ncyResolver\Operation\OperationI
27f40 6e 74 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 nterface;.......class.PackageEve
27f60 6e 74 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 nt.extends.Event.{....private.$o
27f80 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 peration;..........public.functi
27fa0 6f 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 on.__construct($name,.Composer.$
27fc0 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 20 4f 70 65 72 61 composer,.IOInterface.$io,.Opera
27fe0 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 70 61 72 65 tionInterface.$operation).{.pare
28000 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 nt::__construct($name,.$composer
28020 2c 20 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 20 3d 20 24 6f 70 65 72 ,.$io);.$this->operation.=.$oper
28040 61 74 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 67 ation;.}.......public.function.g
28060 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 etOperation().{.return.$this->op
28080 65 72 61 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 0a 0a 6e 61 eration;.}.}.<?php............na
280a0 6d 65 73 70 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 mespace.Composer\Script;..use.Co
280c0 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 49 4f mposer\Composer;.use.Composer\IO
280e0 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a \IOInterface;.......class.Event.
28100 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 {....private.$name;.....private.
28120 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;.....
28140 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(
28160 24 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 $name,.Composer.$composer,.IOInt
28180 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d erface.$io).{.$this->name.=.$nam
281a0 65 3b 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 e;.$this->composer.=.$composer;.
281c0 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->io.=.$io;.}.......public.
281e0 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 24 74 68 69 function.getName().{.return.$thi
28200 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 74 69 6f 6e s->name;.}.......public.function
28220 20 67 65 74 43 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 .getComposer().{.return.$this->c
28240 6f 6d 70 6f 73 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 omposer;.}.......public.function
28260 20 67 65 74 49 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 7d .getIO().{.return.$this->io;.}.}
28280 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
282a0 6f 73 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 oser\Script;..use.Composer\Compo
282c0 73 65 72 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 ser;.......class.CommandEvent.ex
282e0 74 65 6e 64 73 20 45 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 tends.Event.{.}.<?php...........
28300 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
28320 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 49 er\Json\JsonFile;.use.Composer\I
28340 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 52 65 70 6f O\IOInterface;.use.Composer\Repo
28360 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 20 43 6f sitory\RepositoryManager;.use.Co
28380 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 0a 75 73 65 mposer\Util\ProcessExecutor;.use
283a0 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 74 65 6d 3b .Composer\Util\RemoteFilesystem;
283c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 70 75 62 6c .........class.Factory.{....publ
283e0 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 43 6f 6e 66 69 67 28 ic.static.function.createConfig(
28400 29 0a 7b 0a 0a 20 69 66 20 28 21 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f ).{...if.(!$home.=.getenv('COMPO
28420 53 45 52 5f 48 4f 4d 45 27 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 SER_HOME')).{.if.(defined('PHP_W
28440 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 24 68 6f 6d 65 20 INDOWS_VERSION_MAJOR')).{.$home.
28460 3d 20 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 =.getenv('APPDATA')...'/Composer
28480 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 ';.}.else.{.$home.=.getenv('HOME
284a0 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 66 ')...'/.composer';.}.}....if.(!f
284c0 69 6c 65 5f 65 78 69 73 74 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 29 ile_exists($home...'/.htaccess')
284e0 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 68 6f 6d 65 29 29 20 7b 0a 40 6d 6b 64 69 72 ).{.if.(!is_dir($home)).{.@mkdir
28500 28 24 68 6f 6d 65 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 40 66 69 6c 65 5f 70 75 74 ($home,.0777,.true);.}.@file_put
28520 5f 63 6f 6e 74 65 6e 74 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 2c 20 _contents($home...'/.htaccess',.
28540 27 44 65 6e 79 20 66 72 6f 6d 20 61 6c 6c 27 29 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 6e 'Deny.from.all');.}..$config.=.n
28560 65 77 20 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 ew.Config();..$file.=.new.JsonFi
28580 6c 65 28 24 68 6f 6d 65 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 24 66 le($home.'/config.json');.if.($f
285a0 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 ile->exists()).{.$config->merge(
285c0 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 $file->read());.}....$config->me
285e0 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d rge(array('config'.=>.array('hom
28600 65 27 20 3d 3e 20 24 68 6f 6d 65 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 3b e'.=>.$home)));..return.$config;
28620 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 6d 70 6f 73 65 72 46 .}..public.function.getComposerF
28640 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 ile().{.return.getenv('COMPOSER'
28660 29 20 3f 3a 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ).?:.'composer.json';.}.........
28680 70 75 62 6c 69 63 20 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 public.function.createComposer(I
286a0 4f 49 6e 74 65 72 66 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 OInterface.$io,.$localConfig.=.n
286c0 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 ull).{...if.(null.===.$localConf
286e0 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 ig).{.$localConfig.=.$this->getC
28700 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 omposerFile();.}..if.(is_string(
28720 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d $localConfig)).{.$composerFile.=
28740 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 .$localConfig;.$file.=.new.JsonF
28760 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 ile($localConfig,.new.RemoteFile
28780 73 79 73 74 65 6d 28 24 69 6f 29 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 65 78 69 73 74 system($io));..if.(!$file->exist
287a0 73 28 29 29 20 7b 0a 69 66 20 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 63 6f 6d s()).{.if.($localConfig.===.'com
287c0 70 6f 73 65 72 2e 6a 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 poser.json').{.$message.=.'Compo
287e0 73 65 72 20 63 6f 75 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 ser.could.not.find.a.composer.js
28800 6f 6e 20 66 69 6c 65 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 on.file.in.'.getcwd();.}.else.{.
28820 24 6d 65 73 73 61 67 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 $message.=.'Composer.could.not.f
28840 69 6e 64 20 74 68 65 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 ind.the.config.file:.'.$localCon
28860 66 69 67 3b 0a 7d 0a 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 fig;.}.$instructions.=.'To.initi
28880 61 6c 69 7a 65 20 61 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 alize.a.project,.please.create.a
288a0 20 63 6f 6d 70 6f 73 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 .composer.json.file.as.described
288c0 20 69 6e 20 74 68 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 20 .in.the.http://getcomposer.org/.
288e0 22 47 65 74 74 69 6e 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 "Getting.Started".section';.thro
28900 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(
28920 24 6d 65 73 73 61 67 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 $message.PHP_EOL.$instructions);
28940 0a 7d 0a 0a 24 66 69 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 .}..$file->validateSchema(JsonFi
28960 6c 65 3a 3a 4c 41 58 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 le::LAX_SCHEMA);.$localConfig.=.
28980 24 66 69 6c 65 2d 3e 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 $file->read();.}....$config.=.st
289a0 61 74 69 63 3a 3a 63 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 atic::createConfig();.$config->m
289c0 65 72 67 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 erge($localConfig);..$vendorDir.
289e0 3d 20 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 29 3b 0a 24 62 =.$config->get('vendor-dir');.$b
28a00 69 6e 44 69 72 20 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 inDir.=.$config->get('bin-dir');
28a20 0a 0a 0a 20 50 72 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 ....ProcessExecutor::setTimeout(
28a40 28 69 6e 74 29 20 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 (int).$config->get('process-time
28a60 6f 75 74 27 29 29 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 out'));....$rm.=.$this->createRe
28a80 70 6f 73 69 74 6f 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 positoryManager($io,.$config);..
28aa0 0a 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 ..$localConfig.=.$this->addPacka
28ac0 67 69 73 74 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 0a gistRepository($localConfig);...
28ae0 20 24 74 68 69 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 .$this->addLocalRepository($rm,.
28b00 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 0a 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 50 61 $vendorDir);....$loader.=.new.Pa
28b20 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 28 24 ckage\Loader\RootPackageLoader($
28b40 72 6d 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 64 28 24 6c rm);.$package.=.$loader->load($l
28b60 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 ocalConfig);....$dm.=.$this->cre
28b80 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 0a 0a 20 24 69 6d 20 ateDownloadManager($io);....$im.
28ba0 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 =.$this->createInstallationManag
28bc0 65 72 28 24 72 6d 2c 20 24 64 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 2c 20 24 62 69 6e 44 69 72 er($rm,.$dm,.$vendorDir,.$binDir
28be0 2c 20 24 69 6f 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 ,.$io);....$this->purgePackages(
28c00 24 72 6d 2c 20 24 69 6d 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f $rm,.$im);....$composer.=.new.Co
28c20 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 mposer();.$composer->setConfig($
28c40 63 6f 6e 66 69 67 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 65 28 24 config);.$composer->setPackage($
28c60 70 61 63 6b 61 67 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f package);.$composer->setReposito
28c80 72 79 4d 61 6e 61 67 65 72 28 24 72 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f ryManager($rm);.$composer->setDo
28ca0 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 wnloadManager($dm);.$composer->s
28cc0 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 69 6d 29 3b 0a 0a 0a 20 69 etInstallationManager($im);....i
28ce0 66 20 28 69 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 f.(isset($composerFile)).{.$lock
28d00 46 69 6c 65 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 File.=."json".===.pathinfo($comp
28d20 6f 73 65 72 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 oserFile,.PATHINFO_EXTENSION).?.
28d40 73 75 62 73 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 substr($composerFile,.0,.-4).'lo
28d60 63 6b 27 0a 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 ck'.:.$composerFile...'.lock';.$
28d80 6c 6f 63 6b 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 6e 65 77 20 locker.=.new.Package\Locker(new.
28da0 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 69 JsonFile($lockFile,.new.RemoteFi
28dc0 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 2c 20 24 72 6d 2c 20 6d 64 35 5f 66 69 6c 65 28 24 63 lesystem($io)),.$rm,.md5_file($c
28de0 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 73 65 74 4c 6f 63 omposerFile));.$composer->setLoc
28e00 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 6f 6d 70 6f 73 65 ker($locker);.}..return.$compose
28e20 72 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 61 74 65 52 r;.}..protected.function.createR
28e40 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f epositoryManager(IOInterface.$io
28e60 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 72 6d 20 3d 20 6e 65 77 20 52 65 ,.Config.$config).{.$rm.=.new.Re
28e80 70 6f 73 69 74 6f 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 24 positoryManager($io,.$config);.$
28ea0 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f 73 65 72 rm->setRepositoryClass('composer
28ec0 27 2c 20 27 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 65 72 ',.'Composer\Repository\Composer
28ee0 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 74 6f 72 79 Repository');.$rm->setRepository
28f00 43 6c 61 73 73 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 Class('vcs',.'Composer\Repositor
28f20 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 65 70 6f 73 y\VcsRepository');.$rm->setRepos
28f40 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c itoryClass('package',.'Composer\
28f60 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a Repository\PackageRepository');.
28f80 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 70 65 61 72 27 2c 20 $rm->setRepositoryClass('pear',.
28fa0 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f 73 69 74 'Composer\Repository\PearReposit
28fc0 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 73 73 28 27 ory');.$rm->setRepositoryClass('
28fe0 67 69 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 56 63 73 52 65 git',.'Composer\Repository\VcsRe
29000 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 74 6f 72 79 43 6c pository');.$rm->setRepositoryCl
29020 61 73 73 28 27 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c ass('svn',.'Composer\Repository\
29040 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 65 70 6f 73 69 74 VcsRepository');.$rm->setReposit
29060 6f 72 79 43 6c 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 oryClass('hg',.'Composer\Reposit
29080 6f 72 79 5c 56 63 73 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 ory\VcsRepository');..return.$rm
290a0 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 4c 6f 63 61 6c ;.}..protected.function.addLocal
290c0 52 65 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 Repository(RepositoryManager.$rm
290e0 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 0a 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 ,.$vendorDir).{...if.(file_exist
29100 73 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c s($vendorDir.'/.composer/install
29120 65 64 2e 6a 73 6f 6e 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 ed.json')).{.if.(!is_dir($vendor
29140 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 27 29 29 20 7b 20 6d 6b 64 69 72 28 24 76 65 6e 64 6f Dir.'/composer')).{.mkdir($vendo
29160 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 20 rDir.'/composer/',.0777,.true);.
29180 7d 0a 72 65 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f }.rename($vendorDir.'/.composer/
291a0 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 2c 20 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f installed.json',.$vendorDir.'/co
291c0 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 69 66 20 28 66 mposer/installed.json');.}.if.(f
291e0 69 6c 65 5f 65 78 69 73 74 73 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 2e 63 6f 6d 70 6f 73 65 ile_exists($vendorDir.'/.compose
29200 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 20 7b 0a 69 66 20 28 21 69 r/installed_dev.json')).{.if.(!i
29220 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 27 29 29 20 7b s_dir($vendorDir.'/composer')).{
29240 20 6d 6b 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 2c 20 .mkdir($vendorDir.'/composer/',.
29260 30 37 37 37 2c 20 74 72 75 65 29 3b 20 7d 0a 72 65 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 0777,.true);.}.rename($vendorDir
29280 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 .'/.composer/installed_dev.json'
292a0 2c 20 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 ,.$vendorDir.'/composer/installe
292c0 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 d_dev.json');.}.if.(file_exists(
292e0 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 20 7b $vendorDir.'/installed.json')).{
29300 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 .if.(!is_dir($vendorDir.'/compos
29320 65 72 27 29 29 20 7b 20 6d 6b 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f er')).{.mkdir($vendorDir.'/compo
29340 73 65 72 2f 27 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 20 7d 0a 72 65 6e 61 6d 65 28 24 76 65 ser/',.0777,.true);.}.rename($ve
29360 6e 64 6f 72 44 69 72 2e 27 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 2c 20 24 76 65 6e 64 ndorDir.'/installed.json',.$vend
29380 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 6a 73 6f 6e 27 orDir.'/composer/installed.json'
293a0 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 76 65 6e 64 6f 72 44 69 72 2e );.}.if.(file_exists($vendorDir.
293c0 27 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 20 7b 0a 69 66 20 28 21 69 '/installed_dev.json')).{.if.(!i
293e0 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 27 29 29 20 7b s_dir($vendorDir.'/composer')).{
29400 20 6d 6b 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 2c 20 .mkdir($vendorDir.'/composer/',.
29420 30 37 37 37 2c 20 74 72 75 65 29 3b 20 7d 0a 72 65 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 0777,.true);.}.rename($vendorDir
29440 2e 27 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 2c 20 24 76 65 6e 64 6f 72 44 .'/installed_dev.json',.$vendorD
29460 69 72 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 73 6f 6e ir.'/composer/installed_dev.json
29480 27 29 3b 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 6e 65 ');.}.$rm->setLocalRepository(ne
294a0 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 65 73 79 73 74 65 6d w.Repository\InstalledFilesystem
294c0 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 76 65 6e 64 6f 72 44 Repository(new.JsonFile($vendorD
294e0 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 29 ir.'/composer/installed.json')))
29500 3b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 ;.$rm->setLocalDevRepository(new
29520 20 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 74 65 6d 52 .Repository\InstalledFilesystemR
29540 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 epository(new.JsonFile($vendorDi
29560 72 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 73 6f 6e 27 r.'/composer/installed_dev.json'
29580 29 29 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 50 61 )));.}..protected.function.addPa
295a0 63 6b 61 67 69 73 74 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 20 24 6c 6f 63 61 6c 43 6f ckagistRepository(array.$localCo
295c0 6e 66 69 67 29 0a 7b 0a 24 6c 6f 61 64 50 61 63 6b 61 67 69 73 74 20 3d 20 74 72 75 65 3b 0a 24 nfig).{.$loadPackagist.=.true;.$
295e0 70 61 63 6b 61 67 69 73 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 packagistConfig.=.array(.'type'.
29600 3d 3e 20 27 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f =>.'composer',.'url'.=>.'http://
29620 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 0a 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f packagist.org'.);..if.(isset($lo
29640 63 61 6c 43 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 66 6f calConfig['repositories'])).{.fo
29660 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 reach.($localConfig['repositorie
29680 73 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 69 73 73 65 s'].as.$key.=>.$repo).{.if.(isse
296a0 74 28 24 72 65 70 6f 5b 27 70 61 63 6b 61 67 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 74 72 75 t($repo['packagist'])).{.if.(tru
296c0 65 20 3d 3d 3d 20 24 72 65 70 6f 5b 27 70 61 63 6b 61 67 69 73 74 27 5d 29 20 7b 0a 24 6c 6f 63 e.===.$repo['packagist']).{.$loc
296e0 61 6c 43 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6b 65 79 5d 20 3d alConfig['repositories'][$key].=
29700 20 24 70 61 63 6b 61 67 69 73 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 24 6c 6f 61 64 50 61 63 6b 61 .$packagistConfig;.}..$loadPacka
29720 67 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 gist.=.false;.break;.}.}.}.else.
29740 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 20 3d {.$localConfig['repositories'].=
29760 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 6f 61 64 50 61 63 6b 61 67 69 73 74 29 .array();.}..if.($loadPackagist)
29780 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b .{.$localConfig['repositories'][
297a0 5d 20 3d 20 24 70 61 63 6b 61 67 69 73 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ].=.$packagistConfig;.}..return.
297c0 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $localConfig;.}..public.function
297e0 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
29800 63 65 20 24 69 6f 29 0a 7b 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 ce.$io).{.$dm.=.new.Downloader\D
29820 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f ownloadManager();.$dm->setDownlo
29840 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 69 74 44 6f ader('git',.new.Downloader\GitDo
29860 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 wnloader($io));.$dm->setDownload
29880 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e er('svn',.new.Downloader\SvnDown
298a0 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 loader($io));.$dm->setDownloader
298c0 28 27 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 ('hg',.new.Downloader\HgDownload
298e0 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 65 er($io));.$dm->setDownloader('pe
29900 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 65 61 72 44 6f 77 6e 6c 6f 61 64 ar',.new.Downloader\PearDownload
29920 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 er($io));.$dm->setDownloader('zi
29940 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 6e 6c 6f 61 64 65 72 p',.new.Downloader\ZipDownloader
29960 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 27 ($io));.$dm->setDownloader('tar'
29980 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 ,.new.Downloader\TarDownloader($
299a0 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 68 61 72 27 2c io));.$dm->setDownloader('phar',
299c0 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 .new.Downloader\PharDownloader($
299e0 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 27 2c io));.$dm->setDownloader('file',
29a00 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 .new.Downloader\FileDownloader($
29a20 69 6f 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 io));..return.$dm;.}..protected.
29a40 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
29a60 65 72 28 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 20 er(Repository\RepositoryManager.
29a80 24 72 6d 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 $rm,.Downloader\DownloadManager.
29aa0 24 64 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 2c 20 24 62 69 6e 44 69 72 2c 20 49 4f 49 6e 74 65 $dm,.$vendorDir,.$binDir,.IOInte
29ac0 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 20 3d 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 rface.$io).{.$im.=.new.Installer
29ae0 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 76 65 6e 64 6f 72 44 69 72 29 \InstallationManager($vendorDir)
29b00 3b 0a 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 ;.$im->addInstaller(new.Installe
29b20 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 76 65 6e 64 6f 72 44 69 72 2c 20 24 r\LibraryInstaller($vendorDir,.$
29b40 62 69 6e 44 69 72 2c 20 24 64 6d 2c 20 24 69 6f 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 binDir,.$dm,.$io,.null));.$im->a
29b60 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 49 6e 73 74 61 6c ddInstaller(new.Installer\Instal
29b80 6c 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 76 65 6e 64 6f 72 44 69 72 2c 20 24 62 69 6e 44 69 72 lerInstaller($vendorDir,.$binDir
29ba0 2c 20 24 64 6d 2c 20 24 69 6f 2c 20 24 69 6d 2c 20 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 ,.$dm,.$io,.$im,.$rm->getLocalRe
29bc0 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 positories()));.$im->addInstalle
29be0 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 74 61 r(new.Installer\MetapackageInsta
29c00 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6d 3b 0a 7d 0a 0a 70 72 6f 74 ller($io));..return.$im;.}..prot
29c20 65 63 74 65 64 20 66 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 ected.function.purgePackages(Rep
29c40 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 20 24 72 6d 2c 20 49 ository\RepositoryManager.$rm,.I
29c60 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 20 24 69 6d nstaller\InstallationManager.$im
29c80 29 0a 7b 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 69 ).{.foreach.($rm->getLocalReposi
29ca0 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 tories().as.$repo).{.foreach.($r
29cc0 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 61 67 65 29 20 epo->getPackages().as.$package).
29ce0 7b 0a 69 66 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 {.if.(!$im->isPackageInstalled($
29d00 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 repo,.$package)).{.$repo->remove
29d20 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a Package($package);.}.}.}.}......
29d40 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 74 65 28 49 .public.static.function.create(I
29d60 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 29 0a OInterface.$io,.$config.=.null).
29d80 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 72 65 74 75 {.$factory.=.new.static();..retu
29da0 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 24 69 6f 2c rn.$factory->createComposer($io,
29dc0 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$config);.}.}.<?php............
29de0 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 64 65 namespace.Composer\Package\Loade
29e00 72 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 r;..use.Composer\Json\JsonFile;.
29e20 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 ....class.JsonLoader.extends.Arr
29e40 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 ayLoader.{.public.function.load(
29e60 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 4a 73 $json).{.if.($json.instanceof.Js
29e80 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 onFile).{.$config.=.$json->read(
29ea0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6a 73 6f 6e 29 29 );.}.elseif.(file_exists($json))
29ec0 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e .{.$config.=.JsonFile::parseJson
29ee0 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 29 3b 0a 7d 20 65 6c (file_get_contents($json));.}.el
29f00 73 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 seif.(is_string($json)).{.$confi
29f20 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a g.=.JsonFile::parseJson($json);.
29f40 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b }..return.parent::load($config);
29f60 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.
29f80 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 6f Composer\Package\Loader;..use.Co
29fa0 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 20 mposer\Package\BasePackage;.use.
29fc0 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 6f 6e Composer\Package\Version\Version
29fe0 50 61 72 73 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 Parser;.use.Composer\Repository\
2a000 52 65 70 6f 73 69 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 RepositoryManager;.use.Composer\
2a020 55 74 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 63 6c Util\ProcessExecutor;.........cl
2a040 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 ass.RootPackageLoader.extends.Ar
2a060 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 70 72 rayLoader.{.private.$manager;.pr
2a080 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
2a0a0 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.$
2a0c0 6d 61 6e 61 67 65 72 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 manager,.VersionParser.$parser.=
2a0e0 20 6e 75 6c 6c 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 .null,.ProcessExecutor.$process.
2a100 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 =.null).{.$this->manager.=.$mana
2a120 67 65 72 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 73 20 3f ger;.$this->process.=.$process.?
2a140 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 70 61 72 65 6e 74 3a :.new.ProcessExecutor();.parent:
2a160 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 :__construct($parser);.}..public
2a180 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 .function.load($config).{.if.(!i
2a1a0 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 sset($config['name'])).{.$config
2a1c0 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 ['name'].=.'__root__';.}.if.(!is
2a1e0 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 set($config['version'])).{...if.
2a200 28 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 53 49 4f 4e 27 29 (getenv('COMPOSER_ROOT_VERSION')
2a220 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f ).{.$version.=.getenv('COMPOSER_
2a240 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f ROOT_VERSION');.}.else.{.$versio
2a260 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 n.=.$this->guessVersion($config)
2a280 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d ;.}..if.(!$version).{.$version.=
2a2a0 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 .'1.0.0';.}..$config['version'].
2a2c0 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 =.$version;.}.else.{.$version.=.
2a2e0 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 $config['version'];.}..$package.
2a300 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 24 61 6c 69 61 73 =.parent::load($config);..$alias
2a320 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 es.=.array();.$stabilityFlags.=.
2a340 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a array();.$references.=.array();.
2a360 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 foreach.(array('require',.'requi
2a380 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 69 73 73 re-dev').as.$linkType).{.if.(iss
2a3a0 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 24 61 6c 69 61 73 et($config[$linkType])).{.$alias
2a3c0 65 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 63 6f 6e 66 es.=.$this->extractAliases($conf
2a3e0 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 24 73 74 61 62 69 ig[$linkType],.$aliases);.$stabi
2a400 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 53 74 61 62 69 6c lityFlags.=.$this->extractStabil
2a420 69 74 79 46 6c 61 67 73 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 2c 20 24 73 74 ityFlags($config[$linkType],.$st
2a440 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 abilityFlags);.$references.=.$th
2a460 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 63 6f 6e 66 69 67 5b 24 6c is->extractReferences($config[$l
2a480 69 6e 6b 54 79 70 65 5d 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 inkType],.$references);.}.}..$pa
2a4a0 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 0a 24 70 61 ckage->setAliases($aliases);.$pa
2a4c0 63 6b 61 67 65 2d 3e 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c ckage->setStabilityFlags($stabil
2a4e0 69 74 79 46 6c 61 67 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 66 65 72 65 6e 63 ityFlags);.$package->setReferenc
2a500 65 73 28 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e es($references);..if.(isset($con
2a520 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 7b 0a 24 70 61 fig['minimum-stability'])).{.$pa
2a540 63 6b 61 67 65 2d 3e 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 ckage->setMinimumStability(Versi
2a560 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f onParser::normalizeStability($co
2a580 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 3b 0a 7d 0a 0a nfig['minimum-stability']));.}..
2a5a0 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 if.(isset($config['repositories'
2a5c0 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f ])).{.foreach.($config['reposito
2a5e0 72 69 65 73 27 5d 20 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 ries'].as.$index.=>.$repo).{.if.
2a600 28 69 73 73 65 74 28 24 72 65 70 6f 5b 27 70 61 63 6b 61 67 69 73 74 27 5d 29 20 26 26 20 24 72 (isset($repo['packagist']).&&.$r
2a620 65 70 6f 5b 27 70 61 63 6b 61 67 69 73 74 27 5d 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 63 6f epo['packagist'].===.false).{.co
2a640 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 29 29 20 ntinue;.}.if.(!is_array($repo)).
2a660 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
2a680 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 6e 64 65 78 2e 27 20 73 68 6f ption('Repository.'.$index.'.sho
2a6a0 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 24 72 65 70 6f uld.be.an.array,.'.gettype($repo
2a6c0 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 72 65 70 6f 5b ).'.given');.}.if.(!isset($repo[
2a6e0 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 70 65 63 74 65 'type'])).{.throw.new.\Unexpecte
2a700 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 24 69 dValueException('Repository.'.$i
2a720 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 29 20 ndex.'.('.json_encode($repo).').
2a740 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 0a 7d 0a 24 72 must.have.a.type.defined');.}.$r
2a760 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 63 72 65 61 epository.=.$this->manager->crea
2a780 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 2c 20 24 72 65 70 teRepository($repo['type'],.$rep
2a7a0 6f 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 o);.$this->manager->addRepositor
2a7c0 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 y($repository);.}.$package->setR
2a7e0 65 70 6f 73 69 74 6f 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 epositories($config['repositorie
2a800 73 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 s']);.}..return.$package;.}..pri
2a820 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 72 vate.function.extractAliases(arr
2a840 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a ay.$requires,.array.$aliases).{.
2a860 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 6d 65 20 3d foreach.($requires.as.$reqName.=
2a880 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 >.$reqVersion).{.if.(preg_match(
2a8a0 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 '{^([^,\s]+).+as.+([^,\s]+)$}',.
2a8c0 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 73 65 73 $reqVersion,.$match)).{.$aliases
2a8e0 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 6f 6c 6f [].=.array(.'package'.=>.strtolo
2a900 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 74 68 69 wer($reqName),.'version'.=>.$thi
2a920 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 6d 61 74 s->versionParser->normalize($mat
2a940 63 68 5b 31 5d 29 2c 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 ch[1]),.'alias'.=>.$match[2],.'a
2a960 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 lias_normalized'.=>.$this->versi
2a980 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 32 5d 29 2c 0a onParser->normalize($match[2]),.
2a9a0 29 3b 0a 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 );.}.}..return.$aliases;.}..priv
2a9c0 61 74 65 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 ate.function.extractStabilityFla
2a9e0 67 73 28 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 gs(array.$requires,.array.$stabi
2aa00 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 lityFlags).{.$stabilities.=.Base
2aa20 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 Package::$stabilities;.foreach.(
2aa40 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
2aa60 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 5e 5b 5e 2c 5c sion).{...if.(preg_match('{^[^,\
2aa80 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 6b 65 79 73 28 s]*?@('.implode('|',.array_keys(
2aaa0 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 56 65 72 73 69 $stabilities)).')$}i',.$reqVersi
2aac0 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 6f 6c 6f 77 65 on,.$match)).{.$name.=.strtolowe
2aae0 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
2ab00 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 6c 69 7a 65 53 lities[VersionParser::normalizeS
2ab20 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 69 73 73 65 74 tability($match[1])];..if.(isset
2ab40 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 74 61 ($stabilityFlags[$name]).&&.$sta
2ab60 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 79 29 bilityFlags[$name].>.$stability)
2ab80 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 61 67 73 5b 24 .{.continue;.}.$stabilityFlags[$
2aba0 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 75 65 3b 0a 7d name].=.$stability;..continue;.}
2abc0 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d ....if.(preg_match('{^[^,\s@]+$}
2abe0 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 ',.$reqVersion).&&.'stable'.!==.
2ac00 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a ($stabilityName.=.VersionParser:
2ac20 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b :parseStability($reqVersion))).{
2ac40 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 .$name.=.strtolower($reqName);.$
2ac60 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c stability.=.$stabilities[$stabil
2ac80 69 74 79 4e 61 6d 65 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c ityName];.if.(isset($stabilityFl
2aca0 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 ags[$name]).&&.$stabilityFlags[$
2acc0 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a name].>.$stability).{.continue;.
2ace0 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 }.$stabilityFlags[$name].=.$stab
2ad00 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 ility;.}.}..return.$stabilityFla
2ad20 67 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 gs;.}..private.function.extractR
2ad40 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 eferences(array.$requires,.array
2ad60 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 .$references).{.foreach.($requir
2ad80 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 73 69 6f 6e 29 20 7b es.as.$reqName.=>.$reqVersion).{
2ada0 0a 69 66 20 28 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 .if.(preg_match('{^[^,\s@]+?#([a
2adc0 2d 66 30 2d 39 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 -f0-9]+)$}',.$reqVersion,.$match
2ade0 29 20 26 26 20 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 ).&&.'dev'.===.($stabilityName.=
2ae00 20 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 .VersionParser::parseStability($
2ae20 72 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 reqVersion))).{.$name.=.strtolow
2ae40 65 72 28 24 72 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 er($reqName);.$references[$name]
2ae60 20 3d 20 24 6d 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 .=.$match[1];.}.}..return.$refer
2ae80 65 6e 63 65 73 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 ences;.}..private.function.guess
2aea0 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 66 Version(array.$config).{...if.(f
2aec0 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 20 26 26 20 30 unction_exists('proc_open').&&.0
2aee0 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 69 .===.$this->process->execute('gi
2af00 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 t.branch.--no-color.--no-abbrev.
2af20 2d 76 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 -v',.$output)).{.$branches.=.arr
2af40 61 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a ay();.$isFeatureBranch.=.false;.
2af60 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 $version.=.null;..foreach.($this
2af80 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 20 61 ->process->splitLines($output).a
2afa0 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 70 72 65 67 s.$branch).{.if.($branch.&&.preg
2afc0 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f _match('{^(?:\*.).*(?:[^/.]+?/)?
2afe0 28 5c 53 2b 7c 5c 28 6e 6f 20 62 72 61 6e 63 68 5c 29 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 (\S+|\(no.branch\)).*([a-f0-9]+)
2b000 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 28 ..*$}',.$branch,.$match)).{.if.(
2b020 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 29 20 7b 0a 24 $match[1].===.'(no.branch)').{.$
2b040 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 version.=.'dev-'.$match[2];.$isF
2b060 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 eatureBranch.=.true;.}.else.{.$v
2b080 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 6e ersion.=.$this->versionParser->n
2b0a0 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 ormalizeBranch($match[1]);.$isFe
2b0c0 61 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 atureBranch.=.0.===.strpos($vers
2b0e0 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 ion,.'dev-');.if.('9999999-dev'.
2b100 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-
2b120 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 '.$match[1];.}.}.}..if.($branch.
2b140 26 26 20 21 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 &&.!preg_match('{^.*[^/]+/HEAD.}
2b160 27 2c 20 24 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 ',.$branch)).{.if.(preg_match('{
2b180 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 29 20 2a 28 ^(?:\*.)?.*(?:[^/.]+?/)?(\S+).*(
2b1a0 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 63 [a-f0-9]+)..*$}',.$branch,.$matc
2b1c0 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 7d h)).{.$branches[].=.$match[1];.}
2b1e0 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 72 .}.}..if.(!$isFeatureBranch).{.r
2b200 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 eturn.$version;.}......if.((isse
2b220 74 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 t($config['extra']['branch-alias
2b240 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 ']).&&.!isset($config['extra']['
2b260 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 branch-alias'][$version])).||.st
2b280 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c rpos(json_encode($config),.'"sel
2b2a0 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f f.version"').).{.$branch.=.preg_
2b2c0 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 replace('{^dev-}',.'',.$version)
2b2e0 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 66 6f 72 65 61 63 68 ;.$length.=.PHP_INT_MAX;.foreach
2b300 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 .($branches.as.$candidate).{...i
2b320 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 f.($candidate.===.$branch.||.!pr
2b340 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c eg_match('{^(master|trunk|defaul
2b360 74 7c 64 65 76 65 6c 6f 70 7c 5c 64 2b 5c 2e 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 t|develop|\d+\..+)$}',.$candidat
2b380 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 e)).{.continue;.}.if.(0.!==.$thi
2b3a0 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 72 65 76 2d 6c 69 73 s->process->execute('git.rev-lis
2b3c0 74 20 27 2e 24 63 61 6e 64 69 64 61 74 65 2e 27 2e 2e 27 2e 24 62 72 61 6e 63 68 2c 20 24 6f 75 t.'.$candidate.'..'.$branch,.$ou
2b3e0 74 70 75 74 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 73 74 72 6c 65 6e 28 tput)).{.continue;.}.if.(strlen(
2b400 24 6f 75 74 70 75 74 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 $output).<.$length).{.$length.=.
2b420 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 strlen($output);.$version.=.$thi
2b440 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 42 72 61 6e 63 s->versionParser->normalizeBranc
2b460 68 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 h($candidate);.if.('9999999-dev'
2b480 20 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 .===.$version).{.$version.=.'dev
2b4a0 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 -'.$match[1];.}.}.}.}..return.$v
2b4c0 65 72 73 69 6f 6e 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 ersion;.}.}.}.<?php............n
2b4e0 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 64 65 72 amespace.Composer\Package\Loader
2b500 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 43 6f 6d ;..use.Composer\Package;.use.Com
2b520 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
2b540 73 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 72 ser;......class.ArrayLoader.{.pr
2b560 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 75 62 6c 69 63 20 otected.$versionParser;..public.
2b580 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 function.__construct(VersionPars
2b5a0 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 er.$parser.=.null).{.if.(!$parse
2b5c0 72 29 20 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 72 r).{.$parser.=.new.VersionParser
2b5e0 3b 0a 7d 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 ;.}.$this->versionParser.=.$pars
2b600 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 63 6f 6e er;.}..public.function.load($con
2b620 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 fig).{.if.(!isset($config['name'
2b640 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 75 65 ])).{.throw.new.\UnexpectedValue
2b660 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 20 68 61 73 20 6e Exception('Unknown.package.has.n
2b680 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 6f 64 65 28 24 63 o.name.defined.('.json_encode($c
2b6a0 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 28 24 63 6f 6e 66 onfig).').');.}.if.(!isset($conf
2b6c0 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 77 20 5c 55 6e 65 ig['version'])).{.throw.new.\Une
2b6e0 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 6b 61 67 65 20 27 xpectedValueException('Package.'
2b700 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 76 65 72 73 69 6f .$config['name'].'.has.no.versio
2b720 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 65 74 28 24 63 6f n.defined.');.}....if.(isset($co
2b740 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 29 29 20 7b 0a 24 nfig['version_normalized'])).{.$
2b760 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 5f 6e 6f 72 6d 61 version.=.$config['version_norma
2b780 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 20 3d 20 24 74 68 lized'];.}.else.{.$version.=.$th
2b7a0 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 63 6f is->versionParser->normalize($co
2b7c0 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 67 65 20 3d 20 6e nfig['version']);.}.$package.=.n
2b7e0 65 77 20 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 24 63 6f 6e 66 69 67 ew.Package\MemoryPackage($config
2b800 5b 27 6e 61 6d 65 27 5d 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 ['name'],.$version,.$config['ver
2b820 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 65 74 sion']);.$package->setType(isset
2b840 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 ($config['type']).?.strtolower($
2b860 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a 0a 69 config['type']).:.'library');..i
2b880 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 f.(isset($config['target-dir']))
2b8a0 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e 66 69 .{.$package->setTargetDir($confi
2b8c0 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 g['target-dir']);.}..if.(isset($
2b8e0 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f config['extra']).&&.is_array($co
2b900 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 45 nfig['extra'])).{.$package->setE
2b920 78 74 72 61 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 xtra($config['extra']);.}..if.(i
2b940 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f sset($config['bin'])).{.if.(!is_
2b960 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e array($config['bin'])).{.throw.n
2b980 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 27 50 61 ew.\UnexpectedValueException('Pa
2b9a0 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 69 6e ckage.'.$config['name'].'\'s.bin
2b9c0 20 6b 65 79 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 .key.should.be.an.array,.'.getty
2b9e0 70 65 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b 0a 7d pe($config['bin']).'.given.');.}
2ba00 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b 65 79 .foreach.($config['bin'].as.$key
2ba20 20 3d 3e 20 24 62 69 6e 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d .=>.$bin).{.$config['bin'][$key]
2ba40 3d 20 6c 74 72 69 6d 28 24 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e =.ltrim($bin,.'/');.}.$package->
2ba60 73 65 74 42 69 6e 61 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d 0a 0a setBinaries($config['bin']);.}..
2ba80 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 if.(isset($config['scripts']).&&
2baa0 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b .is_array($config['scripts'])).{
2bac0 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 .foreach.($config['scripts'].as.
2bae0 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b $event.=>.$listeners).{.$config[
2bb00 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 3d 20 28 61 72 72 61 79 29 20 24 6c 69 73 'scripts'][$event]=.(array).$lis
2bb20 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 teners;.}.$package->setScripts($
2bb40 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 config['scripts']);.}..if.(!empt
2bb60 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f y($config['description']).&&.is_
2bb80 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 string($config['description'])).
2bba0 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 {.$package->setDescription($conf
2bbc0 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 ig['description']);.}..if.(!empt
2bbe0 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 y($config['homepage']).&&.is_str
2bc00 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 ing($config['homepage'])).{.$pac
2bc20 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 kage->setHomepage($config['homep
2bc40 61 67 65 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 5b 27 6b age']);.}..if.(!empty($config['k
2bc60 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 6f eywords'])).{.$package->setKeywo
2bc80 72 64 73 28 69 73 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 rds(is_array($config['keywords']
2bca0 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 20 3a 20 61 72 72 61 79 28 ).?.$config['keywords'].:.array(
2bcc0 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 $config['keywords']));.}..if.(!e
2bce0 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 mpty($config['license'])).{.$pac
2bd00 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 kage->setLicense(is_array($confi
2bd20 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 g['license']).?.$config['license
2bd40 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b '].:.array($config['license']));
2bd60 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 .}..if.(!empty($config['time']))
2bd80 20 7b 0a 74 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 .{.try.{.$date.=.new.\DateTime($
2bda0 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 24 64 61 74 65 2d 3e 73 65 74 54 69 6d 65 7a config['time']);.$date->setTimez
2bdc0 6f 6e 65 28 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 one(new.\DateTimeZone('UTC'));.$
2bde0 70 61 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 package->setReleaseDate($date);.
2be00 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 7d 0a 7d 0a 0a 69 }.catch.(\Exception.$e).{.}.}..i
2be20 66 20 28 21 65 6d 70 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 f.(!empty($config['authors']).&&
2be40 20 69 73 5f 61 72 72 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 .is_array($config['authors'])).{
2be60 0a 24 70 61 63 6b 61 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 .$package->setAuthors($config['a
2be80 75 74 68 6f 72 73 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 uthors']);.}..if.(isset($config[
2bea0 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 'installation-source'])).{.$pack
2bec0 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 24 63 6f 6e 66 age->setInstallationSource($conf
2bee0 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 3b 0a 7d 0a 0a 69 ig['installation-source']);.}..i
2bf00 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 69 f.(isset($config['source'])).{.i
2bf20 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 f.(!isset($config['source']['typ
2bf40 65 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d e']).||.!isset($config['source']
2bf60 5b 27 75 72 6c 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 ['url'])).{.throw.new.\Unexpecte
2bf80 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 70 61 63 6b 61 67 dValueException(sprintf(."packag
2bfa0 65 20 73 6f 75 72 63 65 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 e.source.should.be.specified.as.
2bfc0 7b 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 7d 2c 5c 6e {\"type\":....,.\"url\":....},\n
2bfe0 25 73 20 67 69 76 65 6e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 %s.given",.json_encode($config['
2c000 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 6f 75 source']).));.}.$package->setSou
2c020 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 65 27 rceType($config['source']['type'
2c040 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 6e 66 ]);.$package->setSourceUrl($conf
2c060 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 2d 3e ig['source']['url']);.$package->
2c080 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 75 72 setSourceReference($config['sour
2c0a0 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 65 74 ce']['reference']);.}..if.(isset
2c0c0 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 74 28 ($config['dist'])).{.if.(!isset(
2c0e0 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 73 73 $config['dist']['type']).||.!iss
2c100 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 74 68 et($config['dist']['url'])).{.th
2c120 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 6f row.new.\UnexpectedValueExceptio
2c140 6e 28 73 70 72 69 6e 74 66 28 0a 22 70 61 63 6b 61 67 65 20 64 69 73 74 20 73 68 6f 75 6c 64 20 n(sprintf(."package.dist.should.
2c160 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 22 2e 0a 22 7b 5c 22 74 79 70 65 5c 22 3a 20 2e be.specified.as.".."{\"type\":..
2c180 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 65 66 65 72 65 6e 63 65 5c 22 3a ..,.\"url\":....,.\"reference\":
2c1a0 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 ....,.\"shasum\":....},\n%s.give
2c1c0 6e 22 2c 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 n",.json_encode($config['dist'])
2c1e0 0a 29 29 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 .));.}.$package->setDistType($co
2c200 6e 66 69 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 nfig['dist']['type']);.$package-
2c220 3e 73 65 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 >setDistUrl($config['dist']['url
2c240 27 5d 29 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 ']);.$package->setDistReference(
2c260 69 73 73 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 isset($config['dist']['reference
2c280 27 5d 29 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 ']).?.$config['dist']['reference
2c2a0 27 5d 20 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 '].:.null);.$package->setDistSha
2c2c0 31 43 68 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 1Checksum(isset($config['dist'][
2c2e0 27 73 68 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 'shasum']).?.$config['dist']['sh
2c300 61 73 75 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 64 65 76 2d 27 20 asum'].:.null);.}....if.('dev-'.
2c320 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 ===.substr($package->getPrettyVe
2c340 72 73 69 6f 6e 28 29 2c 20 30 2c 20 34 29 20 26 26 20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b rsion(),.0,.4).&&.isset($config[
2c360 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 20 69 73 5f 'extra']['branch-alias']).&&.is_
2c380 61 72 72 61 79 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 array($config['extra']['branch-a
2c3a0 6c 69 61 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 lias'])).{.foreach.($config['ext
2c3c0 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 65 42 ra']['branch-alias'].as.$sourceB
2c3e0 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 20 28 ranch.=>.$targetBranch).{...if.(
2c400 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 68 2c '-dev'.!==.substr($targetBranch,
2c420 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 .-4)).{.continue;.}...$validated
2c440 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 TargetBranch.=.$this->versionPar
2c460 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 ser->normalizeBranch(substr($tar
2c480 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 getBranch,.0,.-4));.if.('-dev'.!
2c4a0 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 ==.substr($validatedTargetBranch
2c4c0 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 72 74 ,.-4)).{.continue;.}....if.(strt
2c4e0 6f 6c 6f 77 65 72 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 olower($package->getPrettyVersio
2c500 6e 28 29 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 n()).!==.strtolower($sourceBranc
2c520 68 29 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 2d 3e 73 65 74 h)).{.continue;.}..$package->set
2c540 41 6c 69 61 73 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 29 3b 0a 24 Alias($validatedTargetBranch);.$
2c560 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 70 72 65 67 5f 72 65 70 package->setPrettyAlias(preg_rep
2c580 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 76 61 6c 69 64 lace('{(\.9{7})+}',.'.x',.$valid
2c5a0 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a atedTargetBranch));.break;.}.}..
2c5c0 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 foreach.(Package\BasePackage::$s
2c5e0 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 6f upportedLinkTypes.as.$type.=>.$o
2c600 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 pts).{.if.(isset($config[$type])
2c620 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 ).{.$method.=.'set'.ucfirst($opt
2c640 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 7b 24 6d 65 74 68 6f 64 s['method']);.$package->{$method
2c660 7d 28 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f 6d 43 6f 6e 66 69 67 28 24 70 }(.$this->loadLinksFromConfig($p
2c680 61 63 6b 61 67 65 2c 20 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 20 24 63 ackage,.$opts['description'],.$c
2c6a0 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 onfig[$type]).);.}.}..if.(isset(
2c6c0 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 28 $config['suggest']).&&.is_array(
2c6e0 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 28 $config['suggest'])).{.foreach.(
2c700 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 3e $config['suggest'].as.$target.=>
2c720 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 3d .$reason).{.if.('self.version'.=
2c740 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 67 ==.trim($reason)).{.$config['sug
2c760 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 50 gest'][$target].=.$package->getP
2c780 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 65 rettyVersion();.}.}.$package->se
2c7a0 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 7d tSuggests($config['suggest']);.}
2c7c0 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 29 ..if.(isset($config['autoload'])
2c7e0 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 69 ).{.$package->setAutoload($confi
2c800 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 6f g['autoload']);.}..if.(isset($co
2c820 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 67 nfig['include-path'])).{.$packag
2c840 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 6c e->setIncludePaths($config['incl
2c860 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 ude-path']);.}..if.(isset($confi
2c880 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 g['support'])).{.$package->setSu
2c8a0 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 0a 72 65 pport($config['support']);.}..re
2c8c0 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 74 69 turn.$package;.}..private.functi
2c8e0 6f 6e 20 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f 6d 43 6f 6e 66 69 67 28 24 70 61 63 6b 61 67 65 2c on.loadLinksFromConfig($package,
2c900 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6c 69 6e 6b 73 53 70 65 63 73 .$description,.array.$linksSpecs
2c920 29 0a 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ).{.$links.=.array();.foreach.($
2c940 6c 69 6e 6b 73 53 70 65 63 73 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 63 linksSpecs.as.$packageName.=>.$c
2c960 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 onstraint).{.if.('self.version'.
2c980 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 ===.$constraint).{.$parsedConstr
2c9a0 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 3e 70 61 72 aint.=.$this->versionParser->par
2c9c0 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 seConstraints($package->getPrett
2c9e0 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e yVersion());.}.else.{.$parsedCon
2ca00 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 3e straint.=.$this->versionParser->
2ca20 70 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 parseConstraints($constraint);.}
2ca40 0a 24 6c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 28 24 70 61 .$links[].=.new.Package\Link($pa
2ca60 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 4e 61 6d 65 2c 20 ckage->getName(),.$packageName,.
2ca80 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c $parsedConstraint,.$description,
2caa0 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 6b 73 3b .$constraint);.}..return.$links;
2cac0 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.
2cae0 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 72 5c Composer\Package;..use.Composer\
2cb00 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 Package\LinkConstraint\LinkConst
2cb20 72 61 69 6e 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 50 61 63 raintInterface;.use.Composer\Pac
2cb40 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 6e 73 74 kage\LinkConstraint\VersionConst
2cb60 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 79 5c 52 raint;.use.Composer\Repository\R
2cb80 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 73 65 72 epositoryInterface;.use.Composer
2cba0 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 74 6f 72 79 3b 0a \Repository\PlatformRepository;.
2cbc0 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 61 63 6b 61 67 65 ......abstract.class.BasePackage
2cbe0 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 63 65 0a 7b 0a 70 .implements.PackageInterface.{.p
2cc00 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 6b 54 79 70 65 73 ublic.static.$supportedLinkTypes
2cc20 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 61 79 28 27 64 65 .=.array(.'require'.=>.array('de
2cc40 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 27 6d 65 74 68 6f scription'.=>.'requires',.'metho
2cc60 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 63 74 27 20 3d 3e d'.=>.'requires'),.'conflict'.=>
2cc80 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 6f 6e 66 6c 69 63 .array('description'.=>.'conflic
2cca0 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 73 27 29 2c 0a 27 ts',.'method'.=>.'conflicts'),.'
2ccc0 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 74 69 6f 6e 27 20 provide'.=>.array('description'.
2cce0 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 20 27 70 72 6f 76 =>.'provides',.'method'.=>.'prov
2cd00 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 28 27 64 65 73 63 ides'),.'replace'.=>.array('desc
2cd20 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 65 74 68 6f 64 27 ription'.=>.'replaces',.'method'
2cd40 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 64 65 76 27 20 3d .=>.'replaces'),.'require-dev'.=
2cd60 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 72 65 71 75 69 72 >.array('description'.=>.'requir
2cd80 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 74 68 6f 64 27 20 es.(for.development)',.'method'.
2cda0 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 73 74 20 53 54 41 =>.'devRequires'),.);..const.STA
2cdc0 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 54 41 42 49 4c 49 BILITY_STABLE.=.0;.const.STABILI
2cde0 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 5f 42 45 54 41 20 TY_RC.=.5;.const.STABILITY_BETA.
2ce00 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 41 20 3d 20 31 35 =.10;.const.STABILITY_ALPHA.=.15
2ce20 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 3b 0a 0a 70 75 62 ;.const.STABILITY_DEV.=.20;..pub
2ce40 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 61 72 72 61 79 28 lic.static.$stabilities.=.array(
2ce60 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 54 59 5f 53 54 41 .'stable'.=>.self::STABILITY_STA
2ce80 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 54 59 5f 52 43 2c BLE,.'RC'.=>.self::STABILITY_RC,
2cea0 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 5f 42 45 54 41 2c .'beta'.=>.self::STABILITY_BETA,
2cec0 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 59 5f 41 4c 50 48 .'alpha'.=>.self::STABILITY_ALPH
2cee0 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 59 5f 44 45 56 2c A,.'dev'.=>.self::STABILITY_DEV,
2cf00 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 65 63 74 65 64 20 .);..protected.$name;.protected.
2cf20 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 65 70 6f 73 69 74 $prettyName;..protected.$reposit
2cf40 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 70 75 62 6c 69 63 ory;.protected.$id;.......public
2cf60 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 24 .function.__construct($name).{.$
2cf80 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 24 74 68 69 73 2d this->prettyName.=.$name;.$this-
2cfa0 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 0a 24 74 68 69 73 >name.=.strtolower($name);.$this
2cfc0 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 6e 63 74 69 6f 6e ->id.=.-1;.}.....public.function
2cfe0 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 3e 6e 61 6d 65 3b .getName().{.return.$this->name;
2d000 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 72 65 74 74 79 .}.....public.function.getPretty
2d020 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 74 74 79 4e 61 6d Name().{.return.$this->prettyNam
2d040 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 4e 61 6d 65 e;.}.....public.function.getName
2d060 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 73 2d 3e 67 65 74 s().{.$names.=.array(.$this->get
2d080 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 68 20 28 24 74 68 Name().=>.true,.);..foreach.($th
2d0a0 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 29 20 7b 0a 24 6e is->getProvides().as.$link).{.$n
2d0c0 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 20 74 72 75 65 3b ames[$link->getTarget()].=.true;
2d0e0 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 6c 61 63 65 73 28 .}..foreach.($this->getReplaces(
2d100 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 2d 3e 67 65 74 54 ).as.$link).{.$names[$link->getT
2d120 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 20 61 72 72 61 79 arget()].=.true;.}..return.array
2d140 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 63 20 66 75 6e 63 _keys($names);.}.....public.func
2d160 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 64 20 3d 20 24 69 tion.setId($id).{.$this->id.=.$i
2d180 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 49 64 28 29 d;.}.....public.function.getId()
2d1a0 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 0a 0a 0a 0a 0a 0a .{.return.$this->id;.}..........
2d1c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 4c public.function.matches($name,.L
2d1e0 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 69 inkConstraintInterface.$constrai
2d200 6e 74 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 nt).{.if.($this->name.===.$name)
2d220 20 7b 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 68 65 73 28 6e .{.return.$constraint->matches(n
2d240 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 73 ew.VersionConstraint('==',.$this
2d260 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 ->getVersion()));.}..foreach.($t
2d280 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 29 20 7b 0a 69 his->getProvides().as.$link).{.i
2d2a0 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 20 24 6e 61 6d 65 20 f.($link->getTarget().===.$name.
2d2c0 26 26 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 6b 2d 3e 67 &&.$constraint->matches($link->g
2d2e0 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a etConstraint())).{.return.true;.
2d300 7d 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 6c 61 63 65 73 }.}..foreach.($this->getReplaces
2d320 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
2d340 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e get().===.$name.&&.$constraint->
2d360 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 6e 74 28 29 29 29 matches($link->getConstraint()))
2d380 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
2d3a0 65 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 70 6f 73 69 74 e;.}..public.function.getReposit
2d3c0 6f 72 79 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 ory().{.return.$this->repository
2d3e0 3b 0a 7d 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
2d400 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
2d420 72 79 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 74 ry).{.if.($this->repository).{.t
2d440 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 6b hrow.new.\LogicException('A.pack
2d460 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 70 age.can.only.be.added.to.one.rep
2d480 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 3d ository');.}.$this->repository.=
2d4a0 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 63 20 66 75 6e .$repository;.}.......public.fun
2d4c0 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 74 68 69 ction.isPlatform().{.return.$thi
2d4e0 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 20 50 6c s->getRepository().instanceof.Pl
2d500 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 6c 69 63 atformRepository;.}.......public
2d520 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 65 74 75 .function.getUniqueName().{.retu
2d540 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 2d 3e 67 rn.$this->getName().'-'.$this->g
2d560 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 6f 6e 20 etVersion();.}..public.function.
2d580 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 61 67 65 equals(PackageInterface.$package
2d5a0 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 69 6e 73 ).{.$self.=.$this;.if.($this.ins
2d5c0 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 20 3d 20 tanceof.AliasPackage).{.$self.=.
2d5e0 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 61 63 6b $this->getAliasOf();.}.if.($pack
2d600 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).{.$
2d620 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()
2d640 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 66 3b 0a ;.}..return.$package.===.$self;.
2d660 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 74 72 69 }.......public.function.__toStri
2d680 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 65 4e 61 ng().{.return.$this->getUniqueNa
2d6a0 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 5f 5f 63 6c 6f 6e 65 me();.}..public.function.__clone
2d6c0 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 6e 75 6c 6c 3b 0a 7d ().{.$this->repository.=.null;.}
2d6e0 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
2d700 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d mposer\Package\Version;..use.Com
2d720 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 20 43 poser\Package\BasePackage;.use.C
2d740 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 61 63 65 omposer\Package\PackageInterface
2d760 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 73 74 ;.use.Composer\Package\LinkConst
2d780 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 65 20 43 6f 6d 70 6f raint\MultiConstraint;.use.Compo
2d7a0 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 69 ser\Package\LinkConstraint\Versi
2d7c0 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 20 56 65 72 73 69 6f onConstraint;.......class.Versio
2d7e0 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 24 6d 6f 64 69 66 69 nParser.{.private.static.$modifi
2d800 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 2d 5d 3f 28 3f 3a 28 62 65 74 61 7c 52 43 7c 61 6c 70 68 erRegex.=.'[.-]?(?:(beta|RC|alph
2d820 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b 2e 2d 5d 3f 28 5c 64 2b 29 29 3f 29 3f 28 5b a|patch|pl|p)(?:[.-]?(\d+))?)?([
2d840 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 .-]?dev)?';........public.static
2d860 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f .function.parseStability($versio
2d880 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 23 n).{.$version.=.preg_replace('{#
2d8a0 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 [a-f0-9]+$}i',.'',.$version);..i
2d8c0 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 f.('dev-'.===.substr($version,.0
2d8e0 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 ,.4).||.'-dev'.===.substr($versi
2d900 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 72 65 67 on,.-4)).{.return.'dev';.}..preg
2d920 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e _match('{'.self::$modifierRegex.
2d940 27 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d '$}',.$version,.$match);.if.(!em
2d960 70 74 79 28 24 6d 61 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 pty($match[3])).{.return.'dev';.
2d980 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 28 24 6d 61 }..if.(!empty($match[1]).&&.($ma
2d9a0 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 62 65 74 61 27 20 7c 7c 20 24 6d 61 74 63 68 5b 31 5d 20 3d tch[1].===.'beta'.||.$match[1].=
2d9c0 3d 3d 20 27 61 6c 70 68 61 27 20 7c 7c 20 24 6d 61 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 52 43 27 ==.'alpha'.||.$match[1].===.'RC'
2d9e0 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e )).{.return.$match[1];.}..return
2da00 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 .'stable';.}..public.static.func
2da20 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 tion.normalizeStability($stabili
2da40 74 79 29 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 ty).{.$stability.=.strtolower($s
2da60 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3d tability);..return.$stability.==
2da80 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 70 =.'rc'.?.'RC'.:.$stability;.}..p
2daa0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 ublic.static.function.formatVers
2dac0 69 6f 6e 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 ion(PackageInterface.$package,.$
2dae0 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 truncate.=.true).{.if.(!$package
2db00 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d ->isDev().||.!in_array($package-
2db20 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 68 67 27 2c 20 27 67 >getSourceType(),.array('hg',.'g
2db40 69 74 27 29 29 29 20 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 it'))).{.return.$package->getPre
2db60 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 ttyVersion();.}..return.$package
2db80 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 28 24 74 ->getPrettyVersion()...'.'...($t
2dba0 72 75 6e 63 61 74 65 20 3f 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f runcate.?.substr($package->getSo
2dbc0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 36 29 20 3a 20 24 70 61 63 6b 61 67 urceReference(),.0,.6).:.$packag
2dbe0 65 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 7d 0a 0a 0a 0a 0a e->getSourceReference());.}.....
2dc00 0a 0a 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 28 24 76 65 ...public.function.normalize($ve
2dc20 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 76 65 72 73 69 6f rsion).{.$version.=.trim($versio
2dc40 6e 29 3b 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 n);....if.(preg_match('{^([^,\s]
2dc60 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,.
2dc80 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];
2dca0 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-)
2dcc0 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',.$
2dce0 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'
2dd00 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
2dd20 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
2dd40 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 .strtolower($version);.}....if.(
2dd60 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 5c 2e 5c 64 2b 29 preg_match('{^v?(\d{1,3})(\.\d+)
2dd80 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 6d 6f 64 69 66 69 ?(\.\d+)?(\.\d+)?'.self::$modifi
2dda0 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 6d 61 74 63 68 65 erRegex.'$}i',.$version,.$matche
2ddc0 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 2e 28 21 s)).{.$version.=.$matches[1]..(!
2dde0 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 5b 32 5d empty($matches[2]).?.$matches[2]
2de00 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 29 20 3f .:.'.0')..(!empty($matches[3]).?
2de20 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 28 24 6d .$matches[3].:.'.0')..(!empty($m
2de40 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 30 27 29 atches[4]).?.$matches[4].:.'.0')
2de60 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 65 67 5f 6d 61 74 ;.$index.=.5;.}.elseif.(preg_mat
2de80 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 32 7d 29 7b 31 2c ch('{^v?(\d{4}(?:[.:-]?\d{2}){1,
2dea0 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 66 3a 3a 24 6d 6f 6}(?:[.:-]?\d{1,3})?)'.self::$mo
2dec0 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 6d 61 difierRegex.'$}i',.$version,.$ma
2dee0 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 67 5f 72 65 70 6c tches)).{...$version.=.preg_repl
2df00 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 31 5d 29 3b 0a 24 ace('{\D}',.'-',.$matches[1]);.$
2df20 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 24 69 6e 64 65 78 index.=.2;.}....if.(isset($index
2df40 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 69 6e 64 65 78 5d )).{.if.(!empty($matches[$index]
2df60 29 29 20 7b 0a 24 6d 6f 64 20 3d 20 61 72 72 61 79 28 27 7b 5e 70 6c 3f 24 7d 69 27 2c 20 27 7b )).{.$mod.=.array('{^pl?$}i',.'{
2df80 5e 72 63 24 7d 69 27 29 3b 0a 24 6d 6f 64 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 61 72 72 61 79 ^rc$}i');.$modNormalized.=.array
2dfa0 28 27 70 61 74 63 68 27 2c 20 27 52 43 27 29 3b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 ('patch',.'RC');.$version..=.'-'
2dfc0 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6d 6f 64 2c 20 24 6d 6f 64 4e 6f 72 6d 61 6c 69 7a .preg_replace($mod,.$modNormaliz
2dfe0 65 64 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 ed,.strtolower($matches[$index])
2e000 29 0a 2e 20 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 )...(!empty($matches[$index+1]).
2e020 3f 20 24 6d 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 ?.$matches[$index+1].:.'');.}..i
2e040 66 20 28 21 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 f.(!empty($matches[$index+2])).{
2e060 0a 24 76 65 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 .$version..=.'-dev';.}..return.$
2e080 76 65 72 73 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 version;.}....if.(preg_match('{(
2e0a0 2e 2a 3f 29 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 .*?)[.-]?dev$}i',.$version,.$mat
2e0c0 63 68 29 29 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 ch)).{.try.{.return.$this->norma
2e0e0 6c 69 7a 65 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 lizeBranch($match[1]);.}.catch.(
2e100 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c \Exception.$e).{}.}..throw.new.\
2e120 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 49 6e 76 61 6c 69 UnexpectedValueException('Invali
2e140 64 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 27 2e 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a d.version.string.'.$version);.}.
2e160 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 72 6d 61 6c 69 7a 65 .......public.function.normalize
2e180 42 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 Branch($name).{.$name.=.trim($na
2e1a0 6d 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 me);..if.(in_array($name,.array(
2e1c0 27 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b 27 2c 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 'master',.'trunk',.'default'))).
2e1e0 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 28 24 6e 61 6d 65 29 {.return.$this->normalize($name)
2e200 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c ;.}..if.(preg_match('#^v?(\d+)(\
2e220 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 3f .(?:\d+|[x*]))?(\.(?:\d+|[x*]))?
2e240 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 24 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d (\.(?:\d+|[x*]))?$#i',.$name,.$m
2e260 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 atches)).{.$version.=.'';.for.($
2e280 69 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 i.=.1;.$i.<.5;.$i++).{.$version.
2e2a0 2e 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 .=.isset($matches[$i]).?.str_rep
2e2c0 6c 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 lace('*',.'x',.$matches[$i]).:.'
2e2e0 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 78 27 2c 20 .x';.}..return.str_replace('x',.
2e300 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f 6e 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a '9999999',.$version).'-dev';.}..
2e320 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 return.'dev-'.$name;.}........pu
2e340 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 24 blic.function.parseConstraints($
2e360 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b constraints).{.if.(preg_match('{
2e380 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 61 72 72 61 ^([^,\s]*?)@('.implode('|',.arra
2e3a0 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 69 65 73 y_keys(BasePackage::$stabilities
2e3c0 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 74 63 68 29 )).')$}i',.$constraints,.$match)
2e3e0 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 74 63 68 5b ).{.$constraints.=.empty($match[
2e400 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 20 28 70 72 1]).?.'*'.:.$match[1];.}..if.(pr
2e420 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 5e 2c 5c 73 eg_match('{^(dev-[^,\s@]+?|[^,\s
2e440 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 24 63 6f 6e @]+?\.x-dev)#[a-f0-9]+$}i',.$con
2e460 73 74 72 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 straints,.$match)).{.$constraint
2e480 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d s.=.$match[1];.}..$constraints.=
2e4a0 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 .preg_split('{\s*,\s*}',.trim($c
2e4c0 6f 6e 73 74 72 61 69 6e 74 73 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 onstraints));..if.(count($constr
2e4e0 61 69 6e 74 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 aints).>.1).{.$constraintObjects
2e500 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 .=.array();.foreach.($constraint
2e520 73 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 s.as.$constraint).{.$constraintO
2e540 62 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 bjects.=.array_merge($constraint
2e560 4f 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 Objects,.$this->parseConstraint(
2e580 24 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 $constraint));.}.}.else.{.$const
2e5a0 72 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 raintObjects.=.$this->parseConst
2e5c0 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 raint($constraints[0]);.}..if.(1
2e5e0 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 29 20 .===.count($constraintObjects)).
2e600 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 5b 30 5d 3b 0a {.return.$constraintObjects[0];.
2e620 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 }..return.new.MultiConstraint($c
2e640 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 onstraintObjects);.}..private.fu
2e660 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 nction.parseConstraint($constrai
2e680 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 78 2a 5d 28 5c 2e 5b nt).{.if.(preg_match('{^[x*](\.[
2e6a0 78 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 x*])*$}i',.$constraint)).{.retur
2e6c0 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 n.array();.}....if.(preg_match('
2e6e0 7b 5e 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 29 29 3f 5c {^(\d+)(?:\.(\d+))?(?:\.(\d+))?\
2e700 2e 5b 78 2a 5d 24 7d 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 .[x*]$}',.$constraint,.$matches)
2e720 29 20 7b 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 24 68 ).{.if.(isset($matches[3])).{.$h
2e740 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e ighVersion.=.$matches[1]...'.'..
2e760 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d .$matches[2]...'.'...$matches[3]
2e780 20 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 3d ...'.9999999';.if.($matches[3].=
2e7a0 3d 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 ==.'0').{.$lowVersion.=.$matches
2e7c0 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 20 2e 20 [1]...'.'...($matches[2].-.1)...
2e7e0 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 6f '.9999999.9999999';.}.else.{.$lo
2e800 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 wVersion.=.$matches[1]...'.'...$
2e820 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 matches[2]...'.'...($matches[3].
2e840 2d 20 31 29 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 -.1)..'.9999999';.}.}.elseif.(is
2e860 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e set($matches[2])).{.$highVersion
2e880 20 3d 20 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 .=.$matches[1]...'.'...$matches[
2e8a0 32 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 2]...'.9999999.9999999';.if.($ma
2e8c0 74 63 68 65 73 5b 32 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 tches[2].===.'0').{.$lowVersion.
2e8e0 3d 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e =.($matches[1].-.1)...'.9999999.
2e900 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 6f 77 56 9999999.9999999';.}.else.{.$lowV
2e920 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d ersion.=.$matches[1]...'.'...($m
2e940 61 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 atches[2].-.1)...'.9999999.99999
2e960 39 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 99';.}.}.else.{.$highVersion.=.$
2e980 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 2e 39 matches[1]...'.9999999.9999999.9
2e9a0 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 30 27 999999';.if.($matches[1].===.'0'
2e9c0 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 ).{.return.array(new.VersionCons
2e9e0 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 65 6c traint('<',.$highVersion));.}.el
2ea00 73 65 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 se.{.$lowVersion.=.($matches[1].
2ea20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 -.1)...'.9999999.9999999.9999999
2ea40 27 3b 0a 7d 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 ';.}.}..return.array(.new.Versio
2ea60 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c 0a 6e nConstraint('>',.$lowVersion),.n
2ea80 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 56 ew.VersionConstraint('<',.$highV
2eaa0 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 28 ersion),.);.}....if.(preg_match(
2eac0 27 7b 5e 28 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a 29 7d 27 2c 20 24 63 6f 6e '{^(>=?|<=?|==?)?\s*(.*)}',.$con
2eae0 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 20 7b 0a 24 76 65 72 straint,.$matches)).{.try.{.$ver
2eb00 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 6d 61 74 63 68 65 73 sion.=.$this->normalize($matches
2eb20 5b 32 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 [2]);..return.array(new.VersionC
2eb40 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c 20 24 76 onstraint($matches[1].?:.'=',.$v
2eb60 65 72 73 69 6f 6e 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 ersion));.}.catch.(\Exception.$e
2eb80 29 20 7b 7d 0a 7d 0a 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 ).{}.}..throw.new.\UnexpectedVal
2eba0 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 ueException('Could.not.parse.ver
2ebc0 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a sion.constraint.'.$constraint);.
2ebe0 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
2ec00 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 50 omposer\Package;..use.Composer\P
2ec20 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 ackage\LinkConstraint\LinkConstr
2ec40 61 69 6e 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 52 65 70 6f aintInterface;.use.Composer\Repo
2ec60 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;.....
2ec80 69 6e 74 65 72 66 61 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 interface.PackageInterface.{....
2eca0 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 3b 0a 0a 0a 0a ..public.function.getName();....
2ecc0 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 4e 61 6d 65 ...public.function.getPrettyName
2ece0 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 67 65 74 ();..........public.function.get
2ed00 4e 61 6d 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 73 Names();.......public.function.s
2ed20 65 74 49 64 28 24 69 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 etId($id);.......public.function
2ed40 20 67 65 74 49 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 .getId();..........public.functi
2ed60 6f 6e 20 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 on.matches($name,.LinkConstraint
2ed80 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 Interface.$constraint);.......pu
2eda0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 blic.function.isDev();.......pub
2edc0 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 0a 0a 0a 70 75 lic.function.getType();.......pu
2ede0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 0a blic.function.getTargetDir();...
2ee00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a ....public.function.getExtra();.
2ee20 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 73 74 61 6c 6c ......public.function.setInstall
2ee40 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ationSource($type);.......public
2ee60 20 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 .function.getInstallationSource(
2ee80 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 53 6f 75 72 );.......public.function.getSour
2eea0 63 65 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 6e 20 ceType();.......public.function.
2eec0 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e getSourceUrl();.......public.fun
2eee0 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a ction.getSourceReference();.....
2ef00 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 54 79 70 65 28 29 3b ..public.function.getDistType();
2ef20 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 73 74 55 72 .......public.function.getDistUr
2ef40 6c 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 44 69 l();.......public.function.getDi
2ef60 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 stReference();.......public.func
2ef80 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 3b 0a 0a 0a 0a 0a tion.getDistSha1Checksum();.....
2efa0 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 0a ..public.function.getScripts();.
2efc0 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 56 65 72 73 69 6f 6e ......public.function.getVersion
2efe0 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 50 72 65 ();.......public.function.getPre
2f000 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 63 20 66 75 6e 63 74 ttyVersion();.......public.funct
2f020 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.getStability();.......public
2f040 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 .function.getLicense();........p
2f060 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 29 3b 0a 0a 0a ublic.function.getRequires();...
2f080 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 6e 66 6c 69 63 74 .....public.function.getConflict
2f0a0 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 50 s();........public.function.getP
2f0c0 72 6f 76 69 64 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 rovides();........public.functio
2f0e0 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 n.getReplaces();........public.f
2f100 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a unction.getDevRequires();.......
2f120 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a .public.function.getSuggests();.
2f140 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 41 75 ...........public.function.getAu
2f160 74 6f 6c 6f 61 64 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 toload();........public.function
2f180 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .getIncludePaths();.........publ
2f1a0 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 3b 0a 0a ic.function.getRepositories();..
2f1c0 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
2f1e0 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
2f200 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
2f220 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
2f240 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.getReleaseDate();.......public
2f260 20 66 75 6e 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 .function.getKeywords();.......p
2f280 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 28 29 3b ublic.function.getDescription();
2f2a0 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 69 6e 61 72 69 .......public.function.getBinari
2f2c0 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 48 es();.......public.function.getH
2f2e0 6f 6d 65 70 61 67 65 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 omepage();.........public.functi
2f300 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 on.getAuthors();.......public.fu
2f320 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 nction.getAlias();.......public.
2f340 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a function.getPrettyAlias();......
2f360 0a 70 75 62 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 .public.function.getUniqueName()
2f380 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 72 69 ;.......public.function.__toStri
2f3a0 6e 67 28 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 ng();.}.<?php............namespa
2f3c0 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 61 69 ce.Composer\Package\LinkConstrai
2f3e0 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 nt;.........class.VersionConstra
2f400 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 0a 7b int.extends.SpecificConstraint.{
2f420 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 .private.$operator;.private.$ver
2f440 73 69 6f 6e 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 sion;........public.function.__c
2f460 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a onstruct($operator,.$version).{.
2f480 69 66 20 28 27 3d 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 if.('='.===.$operator).{.$operat
2f4a0 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 or.=.'==';.}..$this->operator.=.
2f4c0 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 76 65 72 $operator;.$this->version.=.$ver
2f4e0 73 69 6f 6e 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 6d 61 74 sion;.}......public.function.mat
2f500 63 68 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 chSpecific(VersionConstraint.$pr
2f520 6f 76 69 64 65 72 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 ovider).{.$noEqualOp.=.str_repla
2f540 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 24 70 ce('=',.'',.$this->operator);.$p
2f560 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 28 27 roviderNoEqualOp.=.str_replace('
2f580 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 0a 0a =',.'',.$provider->operator);...
2f5a0 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 20 26 ...if.($this->operator.!=.'=='.&
2f5c0 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c &.$noEqualOp.==.$providerNoEqual
2f5e0 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 76 65 72 73 69 6f Op).{.return.true;.}..if.(versio
2f600 6e 5f 63 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 n_compare($provider->version,.$t
2f620 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 29 20 his->version,.$this->operator)).
2f640 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 {.....if.($provider->version.==.
2f660 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 $this->version.&&.$provider->ope
2f680 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 rator.==.$providerNoEqualOp.&&.$
2f6a0 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a this->operator.!=.$noEqualOp).{.
2f6c0 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 3b 0a 7d 0a return.false;.}..return.true;.}.
2f6e0 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 74 69 6f .return.false;.}..public.functio
2f700 6e 20 5f 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 6f n.__toString().{.return.$this->o
2f720 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a perator.'.'.$this->version;.}.}.
2f740 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
2f760 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 3b 0a 0a 0a 0a 0a ser\Package\LinkConstraint;.....
2f780 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e ..class.MultiConstraint.implemen
2f7a0 74 73 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 0a 70 72 6f ts.LinkConstraintInterface.{.pro
2f7c0 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tected.$constraints;.......publi
2f7e0 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 63 6f c.function.__construct(array.$co
2f800 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 nstraints).{.$this->constraints.
2f820 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$constraints;.}..public.functi
2f840 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
2f860 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e ce.$provider).{.foreach.($this->
2f880 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 69 66 constraints.as.$constraint).{.if
2f8a0 20 28 21 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 69 64 65 .(!$constraint->matches($provide
2f8c0 72 29 29 20 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 r)).{.return.false;.}.}..return.
2f8e0 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 5f 5f 74 6f 53 74 72 true;.}..public.function.__toStr
2f900 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ing().{.$constraints.=.array();.
2f920 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 foreach.($this->constraints.as.$
2f940 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 73 5b 5d 20 3d 20 24 constraint).{.$constraints[].=.$
2f960 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 constraint->__toString();.}..ret
2f980 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e urn.'['.implode(',.',.$constrain
2f9a0 74 73 29 2e 27 5d 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 ts).']';.}.}.<?php............na
2f9c0 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 69 6e 6b 43 6f 6e mespace.Composer\Package\LinkCon
2f9e0 73 74 72 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 straint;.......abstract.class.Sp
2fa00 65 63 69 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 ecificConstraint.implements.Link
2fa20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e ConstraintInterface.{.public.fun
2fa40 63 74 69 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 ction.matches(LinkConstraintInte
2fa60 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 rface.$provider).{.if.($provider
2fa80 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a .instanceof.MultiConstraint).{..
2faa0 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 .return.$provider->matches($this
2fac0 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f );.}.elseif.($provider.instanceo
2fae0 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 f.$this).{.return.$this->matchSp
2fb00 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 ecific($provider);.}..return.tru
2fb20 65 3b 0a 7d 0a 0a 0a 20 0a 20 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 e;.}.......}.<?php............na
2fb40 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 69 6e 6b 43 6f 6e mespace.Composer\Package\LinkCon
2fb60 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e straint;.......interface.LinkCon
2fb80 73 74 72 61 69 6e 74 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 straintInterface.{.public.functi
2fba0 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
2fbc0 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ce.$provider);.public.function._
2fbe0 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 0a _toString();.}.<?php............
2fc00 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 3b 0a 0a 75 73 65 namespace.Composer\Package;..use
2fc20 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
2fc40 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 6d 70 6f 73 65 72 \VersionConstraint;.use.Composer
2fc60 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 0a \Package\Version\VersionParser;.
2fc80 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 65 6e 64 73 20 42 ....class.AliasPackage.extends.B
2fca0 61 73 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b asePackage.{.protected.$version;
2fcc0 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 .protected.$prettyVersion;.prote
2fce0 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 cted.$dev;.protected.$aliasOf;.p
2fd00 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c rotected.$rootPackageAlias.=.fal
2fd20 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 se;.protected.$stability;..prote
2fd40 63 74 65 64 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c cted.$requires;.protected.$confl
2fd60 69 63 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 icts;.protected.$provides;.prote
2fd80 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d cted.$replaces;.protected.$recom
2fda0 6d 65 6e 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a mends;.protected.$suggests;.....
2fdc0 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(
2fde0 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 2c 20 24 76 65 72 73 PackageInterface.$aliasOf,.$vers
2fe00 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f ion,.$prettyVersion).{.parent::_
2fe20 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b _construct($aliasOf->getName());
2fe40 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 6e 3b 0a 24 74 68 ..$this->version.=.$version;.$th
2fe60 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 79 56 65 72 73 69 is->prettyVersion.=.$prettyVersi
2fe80 6f 6e 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 on;.$this->aliasOf.=.$aliasOf;.$
2fea0 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a this->stability.=.VersionParser:
2fec0 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 :parseStability($version);.$this
2fee0 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 ->dev.=.$this->stability.===.'de
2ff00 76 27 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 v';....foreach.(array('requires'
2ff20 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 ,.'devRequires').as.$type).{.$li
2ff40 6e 6b 73 20 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 nks.=.$aliasOf->{'get'.ucfirst($
2ff60 74 79 70 65 29 7d 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e type)}();.foreach.($links.as.$in
2ff80 64 65 78 20 3d 3e 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 dex.=>.$link).{...if.('self.vers
2ffa0 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 43 6f 6e 73 74 72 61 ion'.===.$link->getPrettyConstra
2ffc0 69 6e 74 28 29 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 int()).{.$links[$index].=.new.Li
2ffe0 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 2d 3e 67 65 nk($link->getSource(),.$link->ge
30000 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 61 69 6e 74 tTarget(),.new.VersionConstraint
30020 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 2c 20 24 74 ('=',.$this->version),.$type,.$t
30040 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 his->version);.}.}.$this->$type.
30060 3d 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 =.$links;.}....foreach.(array('c
30080 6f 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 onflicts',.'provides',.'replaces
300a0 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 ').as.$type).{.$links.=.$aliasOf
300c0 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 24 6e 65 77 ->{'get'.ucfirst($type)}();.$new
300e0 4c 69 6e 6b 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 6e 6b 73 Links.=.array();.foreach.($links
30100 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e .as.$link).{...if.('self.version
30120 27 20 3d 3d 3d 20 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 '.===.$link->getPrettyConstraint
30140 28 29 29 20 7b 0a 24 6e 65 77 4c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 ()).{.$newLinks[].=.new.Link($li
30160 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 nk->getSource(),.$link->getTarge
30180 74 28 29 2c 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 t(),.new.VersionConstraint('=',.
301a0 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 76 $this->version),.$type,.$this->v
301c0 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 ersion);.}.}.$this->$type.=.arra
301e0 79 5f 6d 65 72 67 65 28 24 6c 69 6e 6b 73 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a y_merge($links,.$newLinks);.}.}.
30200 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 4f 66 28 29 0a 7b 0a .public.function.getAliasOf().{.
30220 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 return.$this->aliasOf;.}.....pub
30240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 lic.function.getVersion().{.retu
30260 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$this->version;.}.....public.
30280 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e function.getStability().{.return
302a0 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->stability;.}.....public.
302c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 function.getPrettyVersion().{.re
302e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a turn.$this->prettyVersion;.}....
30300 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 .public.function.isDev().{.retur
30320 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 n.$this->dev;.}.....public.funct
30340 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.getRequires().{.return.$this
30360 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ->requires;.}.....public.functio
30380 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getConflicts().{.return.$this-
303a0 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >conflicts;.}.....public.functio
303c0 6e 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 n.getProvides().{.return.$this->
303e0 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 20 provides;.}.....public.function.
30400 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 getReplaces().{.return.$this->re
30420 70 6c 61 63 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 places;.}.....public.function.ge
30440 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 tDevRequires().{.return.$this->d
30460 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e evRequires;.}.........public.fun
30480 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 ction.setRootPackageAlias($value
304a0 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 41 6c 69 ).{.return.$this->rootPackageAli
304c0 61 73 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 as.=.$value;.}......public.funct
304e0 69 6f 6e 20 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 ion.isRootPackageAlias().{.retur
30500 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a n.$this->rootPackageAlias;.}....
30520 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 28 29 0a 7b 0a 72 65 .public.function.getAlias().{.re
30540 74 75 72 6e 20 27 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 turn.'';.}.....public.function.g
30560 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a etPrettyAlias().{.return.'';.}..
30580 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 0a ....public.function.getType().{.
305a0 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 54 79 70 65 28 29 return.$this->aliasOf->getType()
305c0 3b 0a 7d 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 44 69 72 ;.}.public.function.getTargetDir
305e0 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 54 ().{.return.$this->aliasOf->getT
30600 61 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 argetDir();.}.public.function.ge
30620 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 61 6c 69 61 73 4f 66 tExtra().{.return.$this->aliasOf
30640 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ->getExtra();.}.public.function.
30660 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 0a 7b 0a 24 setInstallationSource($type).{.$
30680 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f this->aliasOf->setInstallationSo
306a0 75 72 63 65 28 24 74 79 70 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 urce($type);.}.public.function.g
306c0 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.
306e0 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 $this->aliasOf->getInstallationS
30700 6f 75 72 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 53 6f ource();.}.public.function.getSo
30720 75 72 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 61 6c 69 61 73 urceType().{.return.$this->alias
30740 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 Of->getSourceType();.}.public.fu
30760 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 nction.getSourceUrl().{.return.$
30780 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d this->aliasOf->getSourceUrl();.}
307a0 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
307c0 6e 63 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 nce().{.return.$this->aliasOf->g
307e0 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 etSourceReference();.}.public.fu
30800 6e 63 74 69 6f 6e 20 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 nction.setSourceReference($refer
30820 65 6e 63 65 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 73 ence).{.return.$this->aliasOf->s
30840 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 3b 0a 7d etSourceReference($reference);.}
30860 0a 70 75 62 6c 69 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 .public.function.getDistType().{
30880 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 44 69 73 74 54 .return.$this->aliasOf->getDistT
308a0 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 74 44 69 73 74 ype();.}.public.function.getDist
308c0 55 72 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 Url().{.return.$this->aliasOf->g
308e0 65 74 44 69 73 74 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 etDistUrl();.}.public.function.g
30900 65 74 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 etDistReference().{.return.$this
30920 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d ->aliasOf->getDistReference();.}
30940 0a 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 .public.function.getDistSha1Chec
30960 6b 73 75 6d 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 ksum().{.return.$this->aliasOf->
30980 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 getDistSha1Checksum();.}.public.
309a0 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 75 72 6e 20 24 function.getScripts().{.return.$
309c0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 this->aliasOf->getScripts();.}.p
309e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 ublic.function.setAliases(array.
30a00 24 61 6c 69 61 73 65 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f $aliases).{.return.$this->aliasO
30a20 66 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 70 75 62 6c 69 f->setAliases($aliases);.}.publi
30a40 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 75 72 6e c.function.getAliases().{.return
30a60 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 3b 0a 7d .$this->aliasOf->getAliases();.}
30a80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a .public.function.getLicense().{.
30aa0 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 4c 69 63 65 6e 73 return.$this->aliasOf->getLicens
30ac0 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 41 75 74 6f 6c 6f e();.}.public.function.getAutolo
30ae0 61 64 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 ad().{.return.$this->aliasOf->ge
30b00 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 tAutoload();.}.public.function.g
30b20 65 74 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 etIncludePaths().{.return.$this-
30b40 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a 70 >aliasOf->getIncludePaths();.}.p
30b60 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()
30b80 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 52 65 70 .{.return.$this->aliasOf->getRep
30ba0 6f 73 69 74 6f 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 ositories();.}.public.function.g
30bc0 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->
30be0 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 70 75 62 aliasOf->getReleaseDate();.}.pub
30c00 6c 69 63 20 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 lic.function.getBinaries().{.ret
30c20 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 urn.$this->aliasOf->getBinaries(
30c40 29 3b 0a 7d 0a 70 75 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 );.}.public.function.getKeywords
30c60 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 4b ().{.return.$this->aliasOf->getK
30c80 65 79 77 6f 72 64 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 eywords();.}.public.function.get
30ca0 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 61 6c Description().{.return.$this->al
30cc0 69 61 73 4f 66 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d 0a 70 75 62 6c 69 iasOf->getDescription();.}.publi
30ce0 63 20 66 75 6e 63 74 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 c.function.getHomepage().{.retur
30d00 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b n.$this->aliasOf->getHomepage();
30d20 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 .}.public.function.getSuggests()
30d40 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 53 75 67 .{.return.$this->aliasOf->getSug
30d60 67 65 73 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 41 75 gests();.}.public.function.getAu
30d80 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 6c 69 61 73 4f 66 2d thors().{.return.$this->aliasOf-
30da0 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >getAuthors();.}.public.function
30dc0 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c .getSupport().{.return.$this->al
30de0 69 61 73 4f 66 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 iasOf->getSupport();.}.public.fu
30e00 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 6e 20 70 61 72 nction.__toString().{.return.par
30e20 65 6e 74 3a 3a 5f 5f 74 6f 53 74 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e ent::__toString().'.(alias.of.'.
30e40 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 $this->aliasOf->getVersion().')'
30e60 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
30e80 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 72 .Composer\Package;..use.Composer
30ea0 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 \Package\LinkConstraint\LinkCons
30ec0 74 72 61 69 6e 74 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 traintInterface;.......class.Lin
30ee0 6b 0a 7b 0a 70 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 k.{.protected.$source;.protected
30f00 20 24 74 61 72 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 .$target;.protected.$constraint;
30f20 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 0a 0a 0a 0a 0a 0a 0a .protected.$description;........
30f40 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
30f60 6f 75 72 63 65 2c 20 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 ource,.$target,.LinkConstraintIn
30f80 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 2c 20 24 64 65 73 terface.$constraint.=.null,.$des
30fa0 63 72 69 70 74 69 6f 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 cription.=.'relates.to',.$pretty
30fc0 43 6f 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 73 6f 75 72 Constraint.=.null).{.$this->sour
30fe0 63 65 20 3d 20 73 74 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 ce.=.strtolower($source);.$this-
31000 3e 74 61 72 67 65 74 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 >target.=.strtolower($target);.$
31020 74 68 69 73 2d 3e 63 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 this->constraint.=.$constraint;.
31040 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 6f $this->description.=.$descriptio
31060 6e 3b 0a 24 74 68 69 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 n;.$this->prettyConstraint.=.$pr
31080 65 74 74 79 43 6f 6e 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 ettyConstraint;.}..public.functi
310a0 6f 6e 20 67 65 74 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 73 on.getSource().{.return.$this->s
310c0 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 74 54 61 72 ource;.}..public.function.getTar
310e0 67 65 74 28 29 0a 7b 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 get().{.return.$this->target;.}.
31100 0a 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 .public.function.getConstraint()
31120 0a 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 .{.return.$this->constraint;.}..
31140 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 43 6f 6e 73 74 72 61 public.function.getPrettyConstra
31160 69 6e 74 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 70 72 65 74 int().{.if.(null.===.$this->pret
31180 74 79 43 6f 6e 73 74 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 tyConstraint).{.throw.new.\Unexp
311a0 65 63 74 65 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 4c 69 6e ectedValueException(sprintf('Lin
311c0 6b 20 25 73 20 68 61 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 k.%s.has.been.misconfigured.and.
311e0 68 61 64 20 6e 6f 20 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 had.no.prettyConstraint.given.',
31200 20 24 74 68 69 73 29 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 .$this));.}..return.$this->prett
31220 79 43 6f 6e 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 yConstraint;.}..public.function.
31240 5f 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 73 6f 75 __toString().{.return.$this->sou
31260 72 63 65 2e 27 20 27 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 rce.'.'.$this->description.'.'.$
31280 74 68 69 73 2d 3e 74 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 this->target.'.('.$this->constra
312a0 69 6e 74 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 int.')';.}.}.<?php............na
312c0 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 44 75 6d 70 65 72 3b mespace.Composer\Package\Dumper;
312e0 0a 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 ..use.Composer\Package\BasePacka
31300 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
31320 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 Interface;......class.ArrayDumpe
31340 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 6b 61 67 65 r.{.public.function.dump(Package
31360 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 3d 20 61 72 Interface.$package).{.$keys.=.ar
31380 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 73 63 72 69 70 ray(.'binaries'.=>.'bin',.'scrip
313a0 74 73 27 2c 0a 27 74 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 ts',.'type',.'extra',.'installat
313c0 69 6f 6e 53 6f 75 72 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 ionSource'.=>.'installation-sour
313e0 63 65 27 2c 0a 27 6c 69 63 65 6e 73 65 27 2c 0a 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 ce',.'license',.'authors',.'desc
31400 72 69 70 74 69 6f 6e 27 2c 0a 27 68 6f 6d 65 70 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 ription',.'homepage',.'keywords'
31420 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 69 ,.'autoload',.'repositories',.'i
31440 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a ncludePaths'.=>.'include-path',.
31460 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 'support',.);..$data.=.array();.
31480 24 64 61 74 61 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 $data['name'].=.$package->getPre
314a0 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 ttyName();.$data['version'].=.$p
314c0 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 24 64 61 74 ackage->getPrettyVersion();.$dat
314e0 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 70 61 63 6b 61 a['version_normalized'].=.$packa
31500 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d ge->getVersion();..if.($package-
31520 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 67 65 74 >getTargetDir()).{.$data['target
31540 2d 64 69 72 27 5d 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 -dir'].=.$package->getTargetDir(
31560 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 );.}..if.($package->getReleaseDa
31580 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 70 61 63 6b 61 67 65 te()).{.$data['time'].=.$package
315a0 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 74 28 27 59 2d 6d 2d ->getReleaseDate()->format('Y-m-
315c0 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 d.H:i:s');.}..if.($package->getS
315e0 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 5b 27 ourceType()).{.$data['source']['
31600 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 70 65 type'].=.$package->getSourceType
31620 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 70 61 ();.$data['source']['url'].=.$pa
31640 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 73 6f ckage->getSourceUrl();.$data['so
31660 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 2d 3e urce']['reference'].=.$package->
31680 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 70 61 getSourceReference();.}..if.($pa
316a0 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 27 64 ckage->getDistType()).{.$data['d
316c0 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 69 73 ist']['type'].=.$package->getDis
316e0 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 3d 20 tType();.$data['dist']['url'].=.
31700 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 27 64 $package->getDistUrl();.$data['d
31720 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 3e 67 ist']['reference'].=.$package->g
31740 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 27 5d etDistReference();.$data['dist']
31760 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 53 68 ['shasum'].=.$package->getDistSh
31780 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 a1Checksum();.}..foreach.(BasePa
317a0 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 73 20 61 73 20 24 74 ckage::$supportedLinkTypes.as.$t
317c0 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 ype.=>.$opts).{.if.($links.=.$pa
317e0 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 ckage->{'get'.ucfirst($opts['met
31800 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 hod'])}()).{.foreach.($links.as.
31820 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 65 74 $link).{.$data[$type][$link->get
31840 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 74 74 79 43 6f 6e 73 Target()].=.$link->getPrettyCons
31860 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d traint();.}.}.}..if.($packages.=
31880 20 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 64 61 74 .$package->getSuggests()).{.$dat
318a0 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 66 6f 72 a['suggest'].=.$packages;.}..for
318c0 65 61 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 each.($keys.as.$method.=>.$key).
318e0 7b 0a 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 {.if.(is_numeric($method)).{.$me
31900 74 68 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 thod.=.$key;.}..$getter.=.'get'.
31920 75 63 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 ucfirst($method);.$value.=.$pack
31940 61 67 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 age->$getter();..if.(null.!==.$v
31960 61 6c 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 alue.&&.!(is_array($value).&&.0.
31980 3d 3d 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 ===.count($value))).{.$data[$key
319a0 5d 20 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 ].=.$value;.}.}..return.$data;.}
319c0 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
319e0 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 50 61 mposer\Package;..use.Composer\Pa
31a00 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;....
31a20 0a 0a 0a 63 6c 61 73 73 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 ...class.MemoryPackage.extends.B
31a40 61 73 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 asePackage.{.protected.$type;.pr
31a60 6f 74 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 otected.$targetDir;.protected.$i
31a80 6e 73 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 nstallationSource;.protected.$so
31aa0 75 72 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 urceType;.protected.$sourceUrl;.
31ac0 70 72 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 protected.$sourceReference;.prot
31ae0 65 63 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 ected.$distType;.protected.$dist
31b00 55 72 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 Url;.protected.$distReference;.p
31b20 72 6f 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 rotected.$distSha1Checksum;.prot
31b40 65 63 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 ected.$version;.protected.$prett
31b60 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 yVersion;.protected.$repositorie
31b80 73 3b 0a 70 72 6f 74 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 s;.protected.$license.=.array();
31ba0 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 70 72 6f 74 65 63 74 .protected.$releaseDate;.protect
31bc0 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 73 ed.$keywords;.protected.$authors
31be0 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 63 ;.protected.$description;.protec
31c00 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 65 78 74 72 61 20 ted.$homepage;.protected.$extra.
31c20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d =.array();.protected.$binaries.=
31c40 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 .array();.protected.$scripts.=.a
31c60 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 rray();.protected.$aliases.=.arr
31c80 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 3b 0a 70 72 6f 74 65 63 74 65 ay();.protected.$alias;.protecte
31ca0 64 20 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a d.$prettyAlias;.protected.$dev;.
31cc0 0a 0a 20 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 ...protected.$minimumStability.=
31ce0 20 27 64 65 76 27 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 .'dev';.protected.$stabilityFlag
31d00 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 6e 63 s.=.array();.protected.$referenc
31d20 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 es.=.array();..protected.$requir
31d40 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 63 6f 6e 66 6c 69 63 es.=.array();.protected.$conflic
31d60 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 70 72 6f 76 69 64 65 ts.=.array();.protected.$provide
31d80 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 70 6c 61 63 65 73 s.=.array();.protected.$replaces
31da0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 52 65 71 75 69 72 .=.array();.protected.$devRequir
31dc0 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 73 75 67 67 65 73 74 es.=.array();.protected.$suggest
31de0 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 75 74 6f 6c 6f 61 64 s.=.array();.protected.$autoload
31e00 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 63 6c 75 64 65 50 61 .=.array();.protected.$includePa
31e20 74 68 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 ths.=.array();.protected.$suppor
31e40 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 t.=.array();.........public.func
31e60 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 76 65 72 73 69 6f 6e tion.__construct($name,.$version
31e80 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ,.$prettyVersion).{.parent::__co
31ea0 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 nstruct($name);..$this->version.
31ec0 3d 20 24 76 65 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 =.$version;.$this->prettyVersion
31ee0 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 .=.$prettyVersion;..$this->stabi
31f00 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 62 69 lity.=.VersionParser::parseStabi
31f20 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 lity($version);.$this->dev.=.$th
31f40 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 0a 0a 0a 70 is->stability.===.'dev';.}.....p
31f60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ublic.function.isDev().{.return.
31f80 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $this->dev;.}.....public.functio
31fa0 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d n.setType($type).{.$this->type.=
31fc0 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 65 .$type;.}.....public.function.ge
31fe0 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 20 3f 3a 20 tType().{.return.$this->type.?:.
32000 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 'library';.}.....public.function
32020 20 67 65 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 .getStability().{.return.$this->
32040 73 74 61 62 69 6c 69 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 stability;.}.....public.function
32060 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 74 68 69 .setTargetDir($targetDir).{.$thi
32080 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 3b 0a 7d 0a 0a 0a 0a s->targetDir.=.$targetDir;.}....
320a0 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 44 69 72 28 29 0a .public.function.getTargetDir().
320c0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 3b 0a 7d 0a 0a 0a 0a {.return.$this->targetDir;.}....
320e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 28 61 72 72 61 79 20 .public.function.setExtra(array.
32100 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 65 78 74 72 61 3b $extra).{.$this->extra.=.$extra;
32120 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 78 74 72 61 28 .}.....public.function.getExtra(
32140 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 ).{.return.$this->extra;.}.....p
32160 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 65 73 28 61 72 72 61 79 ublic.function.setBinaries(array
32180 20 24 62 69 6e 61 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 20 3d 20 .$binaries).{.$this->binaries.=.
321a0 24 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 6e 63 74 69 6f 6e $binaries;.}.....public.function
321c0 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 .getBinaries().{.return.$this->b
321e0 69 6e 61 72 69 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 inaries;.}.....public.function.s
32200 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 69 etScripts(array.$scripts).{.$thi
32220 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 62 s->scripts.=.$scripts;.}.....pub
32240 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 75 lic.function.getScripts().{.retu
32260 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 70 75 62 6c 69 63 20 rn.$this->scripts;.}.....public.
32280 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 function.setAliases(array.$alias
322a0 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b es).{.$this->aliases.=.$aliases;
322c0 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 6c 69 61 73 65 .}.....public.function.getAliase
322e0 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;.}..
32300 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 28 24 61 6c 69 ...public.function.setAlias($ali
32320 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 0a as).{.$this->alias.=.$alias;.}..
32340 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 28 29 0a 7b 0a ...public.function.getAlias().{.
32360 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 return.$this->alias;.}.....publi
32380 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 24 70 72 65 74 74 c.function.setPrettyAlias($prett
323a0 79 41 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 61 73 20 3d 20 24 yAlias).{.$this->prettyAlias.=.$
323c0 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 prettyAlias;.}.....public.functi
323e0 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 on.getPrettyAlias().{.return.$th
32400 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 is->prettyAlias;.}.....public.fu
32420 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
32440 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.
32460 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
32480 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.
324a0 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;.}....
324c0 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($
324e0 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
32500 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
32520 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
32540 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
32560 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
32580 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
325a0 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
325c0 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
325e0 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).{.
32600 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
32620 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
32640 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->
32660 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
32680 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
326a0 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
326c0 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
326e0 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.
32700 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
32720 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.
32740 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.$
32760 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
32780 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
327a0 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
327c0 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
327e0 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->
32800 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
32820 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
32840 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
32860 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.
32880 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().{
328a0 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;
328c0 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 70 6f .}.......public.function.setRepo
328e0 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d sitories($repositories).{.$this-
32900 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d >repositories.=.$repositories;.}
32920 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 73 69 74 6f .....public.function.getReposito
32940 72 69 65 73 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 ries().{.return.$this->repositor
32960 69 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 56 65 ies;.}.....public.function.getVe
32980 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 72 73 69 6f 6e 3b rsion().{.return.$this->version;
329a0 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 72 65 74 74 79 .}.....public.function.getPretty
329c0 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 70 72 65 74 74 79 Version().{.return.$this->pretty
329e0 56 65 72 73 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 Version;.}.......public.function
32a00 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 .setLicense(array.$license).{.$t
32a20 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 7d 0a 0a 0a 0a 0a 70 his->license.=.$license;.}.....p
32a40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 ublic.function.getLicense().{.re
32a60 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this->license;.}.......pub
32a80 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 79 20 24 lic.function.setRequires(array.$
32aa0 72 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 requires).{.$this->requires.=.$r
32ac0 65 71 75 69 72 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 equires;.}.....public.function.g
32ae0 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 etRequires().{.return.$this->req
32b00 75 69 72 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 20 73 uires;.}.......public.function.s
32b20 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 63 74 73 29 0a 7b 0a etConflicts(array.$conflicts).{.
32b40 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d $this->conflicts.=.$conflicts;.}
32b60 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 6e 66 6c 69 63 74 .....public.function.getConflict
32b80 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d s().{.return.$this->conflicts;.}
32ba0 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 6f 76 69 64 .......public.function.setProvid
32bc0 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f es(array.$provides).{.$this->pro
32be0 76 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 vides.=.$provides;.}.....public.
32c00 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 72 6e 20 function.getProvides().{.return.
32c20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->provides;.}.......public.
32c40 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 79 20 24 72 65 70 6c function.setReplaces(array.$repl
32c60 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d 20 24 72 65 70 6c 61 aces).{.$this->replaces.=.$repla
32c80 63 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 52 65 ces;.}.....public.function.getRe
32ca0 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 places().{.return.$this->replace
32cc0 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 44 65 s;.}.......public.function.setDe
32ce0 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 0a 7b 0a vRequires(array.$devRequires).{.
32d00 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 52 65 71 75 69 72 65 $this->devRequires.=.$devRequire
32d20 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 44 65 76 52 s;.}.....public.function.getDevR
32d40 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 equires().{.return.$this->devReq
32d60 75 69 72 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 20 73 uires;.}.......public.function.s
32d80 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 73 29 0a 7b 0a 24 74 etSuggests(array.$suggests).{.$t
32da0 68 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a his->suggests.=.$suggests;.}....
32dc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b .public.function.getSuggests().{
32de0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->suggests;.}......
32e00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 .public.function.setReleaseDate(
32e20 5c 44 61 74 65 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d \DateTime.$releaseDate).{.$this-
32e40 3e 72 65 6c 65 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a >releaseDate.=.$releaseDate;.}..
32e60 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 65 44 61 74 ...public.function.getReleaseDat
32e80 65 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 44 61 74 65 3b e().{.return.$this->releaseDate;
32ea0 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 65 79 77 .}.......public.function.setKeyw
32ec0 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 2d 3e 6b ords(array.$keywords).{.$this->k
32ee0 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 62 6c 69 eywords.=.$keywords;.}.....publi
32f00 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 74 75 72 c.function.getKeywords().{.retur
32f20 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 62 6c 69 n.$this->keywords;.}.......publi
32f40 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 61 75 74 c.function.setAuthors(array.$aut
32f60 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 68 6f 72 hors).{.$this->authors.=.$author
32f80 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 75 74 68 s;.}.....public.function.getAuth
32fa0 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 3b 0a 7d ors().{.return.$this->authors;.}
32fc0 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 63 72 69 .......public.function.setDescri
32fe0 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 64 65 73 ption($description).{.$this->des
33000 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 0a 0a 70 cription.=.$description;.}.....p
33020 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 28 29 0a ublic.function.getDescription().
33040 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 7d 0a 0a {.return.$this->description;.}..
33060 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 61 67 65 .....public.function.setHomepage
33080 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 20 3d 20 ($homepage).{.$this->homepage.=.
330a0 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 69 6f 6e $homepage;.}.....public.function
330c0 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 2d 3e 68 .getHomepage().{.return.$this->h
330e0 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 69 6f 6e omepage;.}.......public.function
33100 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 53 74 61 .setMinimumStability($minimumSta
33120 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 6c 69 74 bility).{.$this->minimumStabilit
33140 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 70 75 62 y.=.$minimumStability;.}.....pub
33160 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 69 74 79 lic.function.getMinimumStability
33180 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 62 69 6c ().{.return.$this->minimumStabil
331a0 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 73 65 74 ity;.}.......public.function.set
331c0 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 74 79 46 StabilityFlags(array.$stabilityF
331e0 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 20 3d 20 lags).{.$this->stabilityFlags.=.
33200 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 20 66 75 $stabilityFlags;.}.....public.fu
33220 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 72 65 74 nction.getStabilityFlags().{.ret
33240 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 0a 0a 0a urn.$this->stabilityFlags;.}....
33260 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 65 72 65 6e 63 65 73 ...public.function.setReferences
33280 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 69 73 2d 3e 72 65 66 (array.$references).{.$this->ref
332a0 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 0a 0a 0a 0a 70 75 62 erences.=.$references;.}.....pub
332c0 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 73 28 29 0a 7b 0a 72 lic.function.getReferences().{.r
332e0 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 7d 0a 0a 0a 0a 0a 0a eturn.$this->references;.}......
33300 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 .public.function.setAutoload(arr
33320 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 20 ay.$autoload).{.$this->autoload.
33340 3d 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$autoload;.}.....public.functi
33360 6f 6e 20 67 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 on.getAutoload().{.return.$this-
33380 3e 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 >autoload;.}.......public.functi
333a0 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 24 69 6e 63 6c 75 64 on.setIncludePaths(array.$includ
333c0 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 ePaths).{.$this->includePaths.=.
333e0 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $includePaths;.}.....public.func
33400 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 6e 20 tion.getIncludePaths().{.return.
33420 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 $this->includePaths;.}.......pub
33440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 73 lic.function.setSupport(array.$s
33460 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 70 upport).{.$this->support.=.$supp
33480 6f 72 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 ort;.}.......public.function.get
334a0 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 Support().{.return.$this->suppor
334c0 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 65 73 70 61 63 t;.}.}.<?php............namespac
334e0 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
33500 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 52 65 r\Json\JsonFile;.use.Composer\Re
33520 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 20 pository\RepositoryManager;.use.
33540 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 0a Composer\Package\AliasPackage;..
33560 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 63 6b 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 .....class.Locker.{.private.$loc
33580 6b 46 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 kFile;.private.$repositoryManage
335a0 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 r;.private.$hash;.private.$lockD
335c0 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ataCache;.........public.functio
335e0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 n.__construct(JsonFile.$lockFile
33600 2c 20 52 65 70 6f 73 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 ,.RepositoryManager.$repositoryM
33620 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 6c 65 anager,.$hash).{.$this->lockFile
33640 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 79 4d .=.$lockFile;.$this->repositoryM
33660 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 74 68 anager.=.$repositoryManager;.$th
33680 69 73 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 is->hash.=.$hash;.}........publi
336a0 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 20 3d 20 66 61 6c 73 65 c.function.isLocked($dev.=.false
336c0 29 0a 7b 0a 69 66 20 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 ).{.if.(!$this->lockFile->exists
336e0 28 29 29 20 7b 0a 72 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 ()).{.return.false;.}..$data.=.$
33700 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 69 66 20 28 24 64 65 76 29 20 7b this->getLockData();.if.($dev).{
33720 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 .return.isset($data['packages-de
33740 76 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 v']);.}..return.isset($data['pac
33760 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 75 6e 63 74 69 6f kages']);.}.......public.functio
33780 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 73 2d 3e 6c 6f 63 n.isFresh().{.$lock.=.$this->loc
337a0 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 69 73 2d 3e 68 61 kFile->read();..return.$this->ha
337c0 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 0a 0a 0a 0a 0a 70 sh.===.$lock['hash'];.}........p
337e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 ublic.function.getLockedPackages
33800 28 24 64 65 76 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 ($dev.=.false).{.$lockData.=.$th
33820 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 is->getLockData();.$packages.=.a
33840 72 72 61 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 64 65 76 20 rray();..$lockedPackages.=.$dev.
33860 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3a 20 24 6c ?.$lockData['packages-dev'].:.$l
33880 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 24 72 65 70 6f 20 3d 20 24 64 65 ockData['packages'];.$repo.=.$de
338a0 76 20 3f 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 v.?.$this->repositoryManager->ge
338c0 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3a 20 24 74 68 69 73 2d 3e 72 tLocalDevRepository().:.$this->r
338e0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 epositoryManager->getLocalReposi
33900 74 6f 72 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 tory();..foreach.($lockedPackage
33920 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 66 6f 5b s.as.$info).{...if.(isset($info[
33940 27 61 6c 69 61 73 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 77 61 72 6e 65 64 29 29 20 7b 0a 24 'alias']).&&.empty($warned)).{.$
33960 77 61 72 6e 65 64 20 3d 20 74 72 75 65 3b 0a 65 63 68 6f 20 27 42 43 20 77 61 72 6e 69 6e 67 3a warned.=.true;.echo.'BC.warning:
33980 20 79 6f 75 72 20 6c 6f 63 6b 20 66 69 6c 65 20 61 70 70 65 61 72 73 20 74 6f 20 62 65 20 6f 66 .your.lock.file.appears.to.be.of
339a0 20 61 6e 20 6f 6c 64 65 72 20 66 6f 72 6d 61 74 20 74 68 61 6e 20 74 68 69 73 20 63 6f 6d 70 6f .an.older.format.than.this.compo
339c0 73 65 72 20 76 65 72 73 69 6f 6e 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 ser.version,.it.is.recommended.t
339e0 6f 20 72 75 6e 20 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 27 2e 50 48 50 5f 45 4f 4c 3b 0a o.run.composer.update'.PHP_EOL;.
33a00 7d 0a 0a 24 72 65 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 69 6e }..$resolvedVersion.=.!empty($in
33a20 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 69 6e 66 6f 5b 27 61 6c fo['alias-version']).?.$info['al
33a40 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 20 3a 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d ias-version'].:.$info['version']
33a60 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 ;....$package.=.$repo->findPacka
33a80 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 72 65 73 6f 6c 76 65 64 56 65 ge($info['package'],.$resolvedVe
33aa0 72 73 69 6f 6e 29 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 rsion);....if.(!$package).{.$pac
33ac0 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d kage.=.$this->repositoryManager-
33ae0 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 >findPackage($info['package'],.$
33b00 72 65 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 resolvedVersion);.}....if.(!$pac
33b20 6b 61 67 65 20 26 26 20 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 kage.&&.!empty($info['alias-vers
33b40 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f ion'])).{.$package.=.$this->repo
33b60 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 66 6f sitoryManager->findPackage($info
33b80 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a ['package'],.$info['version']);.
33ba0 69 66 20 28 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 65 77 20 41 6c 69 if.($package).{.$alias.=.new.Ali
33bc0 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 asPackage($package,.$info['alias
33be0 2d 76 65 72 73 69 6f 6e 27 5d 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 70 72 65 74 74 79 2d -version'],.$info['alias-pretty-
33c00 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 version']);.$package->getReposit
33c20 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 29 3b 0a 24 70 61 63 6b ory()->addPackage($alias);.$pack
33c40 61 67 65 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 age.=.$alias;.}.}..if.(!$package
33c60 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 73 70 ).{.throw.new.\LogicException(sp
33c80 72 69 6e 74 66 28 0a 27 43 61 6e 20 6e 6f 74 20 66 69 6e 64 20 22 25 73 2d 25 73 22 20 70 61 63 rintf(.'Can.not.find."%s-%s".pac
33ca0 6b 61 67 65 20 69 6e 20 72 65 67 69 73 74 65 72 65 64 20 72 65 70 6f 73 69 74 6f 72 69 65 73 27 kage.in.registered.repositories'
33cc0 2c 0a 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 ,.$info['package'],.$info['versi
33ce0 6f 6e 27 5d 0a 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 on'].));.}..$packages[].=.$packa
33d00 67 65 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 70 75 62 6c ge;.}..return.$packages;.}..publ
33d20 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 69 74 79 28 ic.function.getMinimumStability(
33d40 29 0a 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 ).{.$lockData.=.$this->getLockDa
33d60 74 61 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b ta();....return.isset($lockData[
33d80 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 6c 6f 63 6b 44 61 74 'minimum-stability']).?.$lockDat
33da0 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 27 64 65 76 27 3b 0a a['minimum-stability'].:.'dev';.
33dc0 7d 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 46 }..public.function.getStabilityF
33de0 6c 61 67 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 67 65 74 4c lags().{.$lockData.=.$this->getL
33e00 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 63 6b 44 61 ockData();..return.isset($lockDa
33e20 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 ta['stability-flags']).?.$lockDa
33e40 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b ta['stability-flags'].:.array();
33e60 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 69 61 73 65 73 28 29 .}..public.function.getAliases()
33e80 0a 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 .{.$lockData.=.$this->getLockDat
33ea0 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c a();..return.isset($lockData['al
33ec0 69 61 73 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 20 iases']).?.$lockData['aliases'].
33ee0 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
33f00 74 4c 6f 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 tLockData().{.if.(null.!==.$this
33f20 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ->lockDataCache).{.return.$this-
33f40 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c >lockDataCache;.}..if.(!$this->l
33f60 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ockFile->exists()).{.throw.new.\
33f80 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 66 6f 75 6e LogicException('No.lockfile.foun
33fa0 64 2e 20 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 6b 61 67 65 d..Unable.to.read.locked.package
33fc0 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 s');.}..return.$this->lockDataCa
33fe0 63 68 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d che.=.$this->lockFile->read();.}
34000 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 4c 6f ...........public.function.setLo
34020 63 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 64 65 76 50 61 63 6b ckData(array.$packages,.$devPack
34040 61 67 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 ages,.array.$aliases,.$minimumSt
34060 61 62 69 6c 69 74 79 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a ability,.array.$stabilityFlags).
34080 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 {.$lock.=.array(.'hash'.=>.$this
340a0 2d 3e 68 61 73 68 2c 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 ->hash,.'packages'.=>.null,.'pac
340c0 6b 61 67 65 73 2d 64 65 76 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e kages-dev'.=>.null,.'aliases'.=>
340e0 20 24 61 6c 69 61 73 65 73 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d .$aliases,.'minimum-stability'.=
34100 3e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d >.$minimumStability,.'stability-
34120 66 6c 61 67 73 27 20 3d 3e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 29 3b 0a 0a 24 flags'.=>.$stabilityFlags,.);..$
34140 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 lock['packages'].=.$this->lockPa
34160 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 ckages($packages);.if.(null.!==.
34180 24 64 65 76 50 61 63 6b 61 67 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d $devPackages).{.$lock['packages-
341a0 64 65 76 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 dev'].=.$this->lockPackages($dev
341c0 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b Packages);.}..if.(!$this->isLock
341e0 65 64 28 29 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b ed().||.$lock.!==.$this->getLock
34200 44 61 74 61 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 Data()).{.$this->lockFile->write
34220 28 24 6c 6f 63 6b 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 ($lock);.$this->lockDataCache.=.
34240 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 null;..return.true;.}..return.fa
34260 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 6c 6f 63 6b 50 61 63 lse;.}..private.function.lockPac
34280 6b 61 67 65 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 kages(array.$packages).{.$locked
342a0 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 73 20 .=.array();..foreach.($packages.
342c0 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 as.$package).{.$alias.=.null;..i
342e0 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
34300 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 70 61 63 6b 61 age).{.$alias.=.$package;.$packa
34320 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 3b 0a 7d 0a 0a ge.=.$package->getAliasOf();.}..
34340 24 6e 61 6d 65 20 3d 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 $name.=.$package->getPrettyName(
34360 29 3b 0a 24 76 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 );.$version.=.$package->getPrett
34380 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 yVersion();..if.(!$name.||.!$ver
343a0 73 69 6f 6e 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 sion).{.throw.new.\LogicExceptio
343c0 6e 28 73 70 72 69 6e 74 66 28 0a 27 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 n(sprintf(.'Package."%s".has.no.
343e0 76 65 72 73 69 6f 6e 20 6f 72 20 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c version.or.name.and.can.not.be.l
34400 6f 63 6b 65 64 27 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 ocked',.$package.));.}..$spec.=.
34420 61 72 72 61 79 28 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 array('package'.=>.$name,.'versi
34440 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d on'.=>.$version);..if.($package-
34460 3e 69 73 44 65 76 28 29 20 26 26 20 21 24 61 6c 69 61 73 29 20 7b 0a 24 73 70 65 63 5b 27 73 6f >isDev().&&.!$alias).{.$spec['so
34480 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 urce-reference'].=.$package->get
344a0 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 61 6c 69 61 73 SourceReference();.}..if.($alias
344c0 29 20 7b 0a 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 70 72 65 74 74 79 2d 76 65 72 73 69 6f 6e 27 ).{.$spec['alias-pretty-version'
344e0 5d 20 3d 20 24 61 6c 69 61 73 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a ].=.$alias->getPrettyVersion();.
34500 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 61 6c 69 61 73 2d $spec['alias-version'].=.$alias-
34520 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 24 6c 6f 63 6b 65 64 5b 5d 20 3d 20 24 73 >getVersion();.}..$locked[].=.$s
34540 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 pec;.}..usort($locked,.function.
34560 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 5b 27 70 61 63 ($a,.$b).{.return.strcmp($a['pac
34580 6b 61 67 65 27 5d 2c 20 24 62 5b 27 70 61 63 6b 61 67 65 27 5d 29 3b 0a 7d 29 3b 0a 0a 72 65 74 kage'],.$b['package']);.});..ret
345a0 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$locked;.}.}.<?php..........
345c0 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
345e0 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ser\IO\IOInterface;.......class.
34600 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 72 6f Cache.{.private.$io;.private.$ro
34620 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 0a 70 75 ot;.private.$enabled.=.true;..pu
34640 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 49 4f 49 6e 74 65 blic.function.__construct(IOInte
34660 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 rface.$io,.$cacheDir).{.$this->i
34680 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 6d 28 24 63 61 o.=.$io;.$this->root.=.rtrim($ca
346a0 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 21 69 73 5f 64 cheDir,.'/\\')...'/';..if.(!is_d
346c0 69 72 28 24 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 ir($this->root)).{.if.(!@mkdir($
346e0 74 68 69 73 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 this->root,.0777,.true)).{.$this
34700 2d 3e 65 6e 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 ->enabled.=.false;.}.}.}..public
34720 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 .function.getRoot().{.return.$th
34740 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 is->root;.}..public.function.rea
34760 64 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 d($file).{.if.($this->enabled.&&
34780 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 .file_exists($this->root...$file
347a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 )).{.return.file_get_contents($t
347c0 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 his->root...$file);.}.}..public.
347e0 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 73 29 function.write($file,.$contents)
34800 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 66 69 6c 65 5f 70 75 .{.if.($this->enabled).{.file_pu
34820 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 66 69 6c 65 2c 20 t_contents($this->root...$file,.
34840 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $contents);.}.}..public.function
34860 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 .sha1($file).{.if.($this->enable
34880 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 6f 74 20 2e 20 24 d.&&.file_exists($this->root...$
348a0 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d file)).{.return.sha1_file($this-
348c0 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a >root...$file);.}.}.}.<?php.....
348e0 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 3b 0a 0a 0a 0a 0a 63 .......namespace.Composer;.....c
34900 6c 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a lass.Config.{.private.$config;..
34920 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 0a public.function.__construct().{.
34940 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 ..$this->config.=.array(.'proces
34960 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 30 30 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 s-timeout'.=>.300,.'vendor-dir'.
34980 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 7b 24 76 65 6e =>.'vendor',.'bin-dir'.=>.'{$ven
349a0 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c dor-dir}/bin',.'notify-on-instal
349c0 6c 27 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 l'.=>.true,.);.}.......public.fu
349e0 6e 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 nction.merge(array.$config).{...
34a00 69 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 if.(!empty($config['config']).&&
34a20 20 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 .is_array($config['config'])).{.
34a40 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 $this->config.=.array_replace_re
34a60 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6f 6e 66 69 67 5b 27 cursive($this->config,.$config['
34a80 63 6f 6e 66 69 67 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e config']);.}.}........public.fun
34aa0 63 74 69 6f 6e 20 67 65 74 28 24 6b 65 79 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 ction.get($key).{.switch.($key).
34ac0 7b 0a 63 61 73 65 20 27 76 65 6e 64 6f 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 {.case.'vendor-dir':.case.'bin-d
34ae0 69 72 27 3a 0a 63 61 73 65 20 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 0a 20 24 ir':.case.'process-timeout':...$
34b00 65 6e 76 20 3d 20 27 43 4f 4d 50 4f 53 45 52 5f 27 20 2e 20 73 74 72 74 6f 75 70 70 65 72 28 73 env.=.'COMPOSER_'...strtoupper(s
34b20 74 72 74 72 28 24 6b 65 79 2c 20 27 2d 27 2c 20 27 5f 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 trtr($key,.'-',.'_'));..return.$
34b40 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 67 65 74 65 6e 76 28 24 65 6e 76 29 20 3f 3a 20 24 74 this->process(getenv($env).?:.$t
34b60 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 3b 0a 0a 63 61 73 65 20 27 68 6f 6d 65 27 his->config[$key]);..case.'home'
34b80 3a 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 24 74 :.return.rtrim($this->process($t
34ba0 68 69 73 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 64 65 66 his->config[$key]),.'/\\');..def
34bc0 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 24 74 68 69 ault:.return.$this->process($thi
34be0 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 s->config[$key]);.}.}........pub
34c00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.has($key).{.return.
34c20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f array_key_exists($key,.$this->co
34c40 6e 66 69 67 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 nfig);.}........private.function
34c60 20 70 72 6f 63 65 73 73 28 24 76 61 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 .process($value).{.$config.=.$th
34c80 69 73 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 6c 6c 62 61 63 is;..return.preg_replace_callbac
34ca0 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 61 74 k('#\{\$(.+)\}#',.function.($mat
34cc0 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 6e 66 ch).use.($config).{.return.$conf
34ce0 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 3b 0a ig->get($match[1]);.},.$value);.
34d00 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
34d20 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a omposer\Json;..use.Exception;...
34d40 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 ..class.JsonValidationException.
34d60 65 78 74 65 6e 64 73 20 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 extends.Exception.{.protected.$e
34d80 72 72 6f 72 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 rrors;..public.function.__constr
34da0 75 63 74 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 uct(array.$errors).{.parent::__c
34dc0 6f 6e 73 74 72 75 63 74 28 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 65 72 72 6f 72 73 29 29 onstruct(implode("\n",.$errors))
34de0 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 75 ;.$this->errors.=.$errors;.}..pu
34e00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 blic.function.getErrors().{.retu
34e20 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a rn.$this->errors;.}.}.<?php.....
34e40 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 4a 73 6f 6e 3b 0a .......namespace.Composer\Json;.
34e60 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 ....class.JsonManipulator.{.priv
34e80 61 74 65 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 6e 65 77 6c 69 6e 65 3b ate.$contents;.private.$newline;
34ea0 0a 70 72 69 76 61 74 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .private.$indent;..public.functi
34ec0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 24 63 6f 6e on.__construct($contents).{.$con
34ee0 74 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 tents.=.trim($contents);.if.(!pr
34f00 65 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 eg_match('#^\{(.*)\}$#s',.$conte
34f20 6e 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 nts)).{.throw.new.\InvalidArgume
34f40 6e 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 ntException('The.json.file.must.
34f60 62 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 be.an.object.({})');.}.$this->ne
34f80 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 22 5c 72 5c 6e 22 2c wline.=.false.!==.strpos("\r\n",
34fa0 20 24 63 6f 6e 74 65 6e 74 73 29 20 3f 20 22 5c 72 5c 6e 22 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 .$contents).?."\r\n":."\n";.$thi
34fc0 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e s->contents.=.$contents;.$this->
34fe0 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e detectIndenting();.}..public.fun
35000 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getContents().{.return.$th
35020 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d is->contents...$this->newline;.}
35040 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 74 79 70 65 2c ..public.function.addLink($type,
35060 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 0a 20 69 66 20 28 .$package,.$constraint).{...if.(
35080 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 74 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 23 !preg_match('#"'.$type.'":\s*\{#
350a0 27 2c 20 24 74 68 69 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 ',.$this->contents)).{.$this->ad
350c0 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 61 72 dMainKey($type,.$this->format(ar
350e0 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 29 3b 0a ray($package.=>.$constraint)));.
35100 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 52 65 67 65 78 20 3d 20 27 .return.true;.}..$linksRegex.=.'
35120 23 28 22 27 2e 24 74 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 5b 5e 7d 5d 2b 29 28 5c 7d 29 23 #("'.$type.'":\s*\{)([^}]+)(\})#
35140 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6c 69 6e 6b 73 52 65 67 65 78 2c s';.if.(!preg_match($linksRegex,
35160 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 0a 72 65 74 .$this->contents,.$match)).{.ret
35180 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 74 63 68 5b 32 5d urn.false;.}..$links.=.$match[2]
351a0 3b 0a 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f ;.$packageRegex.=.str_replace('/
351c0 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 ',.'\\\\?/',.preg_quote($package
351e0 29 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 27 2e 24 70 61 63 6b ));....if.(preg_match('{"'.$pack
35200 61 67 65 52 65 67 65 78 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 6c 69 6e 6b 73 29 29 20 7b 0a 24 ageRegex.'"\s*:}i',.$links)).{.$
35220 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 63 6b 61 links.=.preg_replace('{"'.$packa
35240 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 22 5b 5e 22 5d 2b 22 7d 69 27 2c 20 4a geRegex.'"(\s*:\s*)"[^"]+"}i',.J
35260 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 24 31 22 27 2e sonFile::encode($package).'$1"'.
35280 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 $constraint.'"',.$links);.}.else
352a0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 5c 73 2a 29 24 23 27 2c 20 if.(preg_match('#[^\s](\s*)$#',.
352c0 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 $links,.$match)).{...$links.=.pr
352e0 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 24 23 27 2c 0a eg_replace(.'#'.$match[1].'$#',.
35300 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 69 73 2d 3e 69 6e ','...$this->newline...$this->in
35320 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 6e 46 69 6c 65 3a dent...$this->indent...JsonFile:
35340 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 6e 46 69 6c 65 3a :encode($package).':.'.JsonFile:
35360 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 74 63 68 5b 31 5d :encode($constraint)...$match[1]
35380 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 ,.$links.);.}.else.{...$links.=.
353a0 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 20 2e $this->newline...$this->indent..
353c0 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 6f 64 .$this->indent...JsonFile::encod
353e0 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 e($package).':.'.JsonFile::encod
35400 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 24 74 68 69 e($constraint)...$links;.}..$thi
35420 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 24 6c 69 6e 6b s->contents.=.preg_replace($link
35440 73 52 65 67 65 78 2c 20 27 24 31 27 2e 24 6c 69 6e 6b 73 2e 27 24 33 27 2c 20 24 74 68 69 73 2d sRegex,.'$1'.$links.'$3',.$this-
35460 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 7d 0a 0a 70 75 62 >contents);..return.true;.}..pub
35480 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 65 79 2c 20 24 63 lic.function.addMainKey($key,.$c
354a0 6f 6e 74 65 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 ontent).{.if.(preg_match('#[^{\s
354c0 5d 28 5c 73 2a 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d ](\s*)\}$#',.$this->contents,.$m
354e0 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f atch)).{.$this->contents.=.preg_
35500 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 27 replace(.'#'.$match[1].'\}$#',.'
35520 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 69 73 2d 3e 69 6e 64 ,'...$this->newline...$this->ind
35540 65 6e 74 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 27 3a ent...JsonFile::encode($key)..':
35560 20 27 2e 20 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 .'..$content...$this->newline...
35580 27 7d 27 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b '}',.$this->contents.);.}.else.{
355a0 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(
355c0 0a 27 23 5c 7d 24 23 27 2c 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 .'#\}$#',.$this->indent...JsonFi
355e0 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 le::encode($key)..':.'.$content.
35600 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 0a 24 74 68 69 73 2d 3e 63 ..$this->newline...'}',.$this->c
35620 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ontents.);.}.}..protected.functi
35640 6f 6e 20 66 6f 72 6d 61 74 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 on.format($data).{.if.(is_array(
35660 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f $data)).{.reset($data);..if.(is_
35680 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 5b numeric(key($data))).{.return.'[
356a0 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 0a 7d 0a 0a 24 '.implode(',.',.$data).']';.}..$
356c0 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 0a 66 6f 72 65 out.=.'{'...$this->newline;.fore
356e0 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 65 ach.($data.as.$key.=>.$val).{.$e
35700 6c 65 6d 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e lems[].=.$this->indent...$this->
35720 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 24 6b 65 79 29 2e indent...JsonFile::encode($key).
35740 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 29 3b 0a 7d 0a 0a 72 65 .':.'.$this->format($val);.}..re
35760 74 75 72 6e 20 24 6f 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e turn.$out...implode(','.$this->n
35780 65 77 6c 69 6e 65 2c 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 ewline,.$elems)...$this->newline
357a0 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 ...$this->indent...'}';.}..retur
357c0 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 0a 70 72 n.JsonFile::encode($data);.}..pr
357e0 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 69 6e 67 otected.function.detectIndenting
35800 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 7d 27 2c ().{.if.(preg_match('{^(\s+)"}',
35820 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 0a 24 74 68 .$this->contents,.$match)).{.$th
35840 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 73 65 20 7b is->indent.=.$match[1];.}.else.{
35860 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 0a 7d 0a 3c .$this->indent.=.'....';.}.}.}.<
35880 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
358a0 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 73 65 72 3b er\Json;..use.Composer\Composer;
358c0 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 73 65 20 53 .use.JsonSchema\Validator;.use.S
358e0 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 20 43 6f 6d eld\JsonLint\JsonParser;.use.Com
35900 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 65 poser\Util\RemoteFilesystem;.use
35920 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
35940 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a 7b ception;........class.JsonFile.{
35960 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 52 .const.LAX_SCHEMA.=.1;.const.STR
35980 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 ICT_SCHEMA.=.2;..const.JSON_UNES
359a0 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 50 CAPED_SLASHES.=.64;.const.JSON_P
359c0 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e RETTY_PRINT.=.128;.const.JSON_UN
359e0 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 20 ESCAPED_UNICODE.=.256;..private.
35a00 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c $path;.private.$rfs;........publ
35a20 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 61 74 68 2c 20 52 ic.function.__construct($path,.R
35a40 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 29 0a 7b 0a 24 emoteFilesystem.$rfs.=.null).{.$
35a60 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d this->path.=.$path;..if.(null.==
35a80 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f =.$rfs.&&.preg_match('{^https?:/
35aa0 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c /}i',.$path)).{.throw.new.\Inval
35ac0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 20 72 idArgumentException('http.urls.r
35ae0 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 61 6e equire.a.RemoteFilesystem.instan
35b00 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 20 ce.to.be.passed');.}.$this->rfs.
35b20 3d 20 24 72 66 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 61 =.$rfs;.}..public.function.getPa
35b40 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a th().{.return.$this->path;.}....
35b60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 29 0a 7b 0a 72 65 ...public.function.exists().{.re
35b80 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a turn.is_file($this->path);.}....
35ba0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 ...public.function.read().{.try.
35bc0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 {.if.($this->rfs).{.$json.=.$thi
35be0 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c s->rfs->getContents($this->path,
35c00 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 .$this->path,.false);.}.else.{.$
35c20 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e json.=.file_get_contents($this->
35c40 70 61 74 68 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 path);.}.}.catch.(TransportExcep
35c60 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 78 63 tion.$e).{.throw.new.\RuntimeExc
35c80 65 70 74 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 eption('Could.not.read.'.$this->
35ca0 70 61 74 68 2e 27 2c 20 65 69 74 68 65 72 20 79 6f 75 20 6f 72 20 74 68 65 20 72 65 6d 6f 74 65 path.',.either.you.or.the.remote
35cc0 20 68 6f 73 74 20 69 73 20 70 72 6f 62 61 62 6c 79 20 6f 66 66 6c 69 6e 65 27 2e 22 5c 6e 5c 6e .host.is.probably.offline'."\n\n
35ce0 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 ".$e->getMessage());.}.catch.(\E
35d00 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 5c 52 75 6e 74 69 6d xception.$e).{.throw.new.\Runtim
35d20 65 45 78 63 65 70 74 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 eException('Could.not.read.'.$th
35d40 69 73 2d 3e 70 61 74 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 is->path."\n\n".$e->getMessage()
35d60 29 3b 0a 7d 0a 0a 72 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 );.}..return.static::parseJson($
35d80 6a 73 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 json);.}........public.function.
35da0 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 6e 73 20 3d 20 34 34 write(array.$hash,.$options.=.44
35dc0 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 2d 3e 70 61 74 68 29 8).{.$dir.=.dirname($this->path)
35de0 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 20 28 66 69 6c 65 5f ;.if.(!is_dir($dir)).{.if.(file_
35e00 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 20 5c 55 6e 65 78 70 exists($dir)).{.throw.new.\Unexp
35e20 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 2e 27 20 65 78 69 73 ectedValueException(.$dir.'.exis
35e40 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 2e 27 0a 29 3b 0a 7d ts.and.is.not.a.directory.'.);.}
35e60 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b .if.(!mkdir($dir,.0777,.true)).{
35e80 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
35ea0 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 tion(.$dir.'.does.not.exist.and.
35ec0 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 66 69 could.not.be.created.'.);.}.}.fi
35ee0 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 73 74 61 le_put_contents($this->path,.sta
35f00 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 61 73 68 2c 20 24 6f 70 74 69 6f 6e 73 29 2e 20 28 24 tic::encode($hash,.$options)..($
35f20 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e options.&.self::JSON_PRETTY_PRIN
35f40 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 T.?."\n".:.''));.}.........publi
35f60 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 24 73 63 68 65 6d c.function.validateSchema($schem
35f80 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f 53 43 48 45 4d 41 29 0a 7b 0a 24 63 6f 6e 74 a.=.self::STRICT_SCHEMA).{.$cont
35fa0 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 ent.=.file_get_contents($this->p
35fc0 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 63 6f 6e 74 65 ath);.$data.=.json_decode($conte
35fe0 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 27 6e 75 6c nt);..if.(null.===.$data.&&.'nul
36000 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 l'.!==.$content).{.self::validat
36020 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c eSyntax($content);.}..$schemaFil
36040 65 20 3d 20 5f 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 e.=.__DIR__...'/../../../res/com
36060 70 6f 73 65 72 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 poser-schema.json';.$schemaData.
36080 3d 20 6a 73 6f 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 =.json_decode(file_get_contents(
360a0 24 73 63 68 65 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 $schemaFile));..if.($schema.===.
360c0 73 65 6c 66 3a 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 self::LAX_SCHEMA).{.$schemaData-
360e0 3e 61 64 64 69 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 >additionalProperties.=.true;.$s
36100 63 68 65 6d 61 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 chemaData->properties->name->req
36120 75 69 72 65 64 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 uired.=.false;.$schemaData->prop
36140 65 72 74 69 65 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 erties->description->required.=.
36160 66 61 6c 73 65 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 false;.}..$validator.=.new.Valid
36180 61 74 6f 72 28 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 ator();.$validator->check($data,
361a0 20 24 73 63 68 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 .$schemaData);....if.(!$validato
361c0 72 2d 3e 69 73 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 r->isValid()).{.$errors.=.array(
361e0 29 3b 0a 66 6f 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 );.foreach.((array).$validator->
36200 67 65 74 45 72 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 getErrors().as.$error).{.$errors
36220 5b 5d 20 3d 20 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 [].=.($error['property'].?.$erro
36240 72 5b 27 70 72 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 r['property'].'.:.'.:.'').$error
36260 5b 27 6d 65 73 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 ['message'];.}.throw.new.JsonVal
36280 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 72 65 idationException($errors);.}..re
362a0 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 0a 70 75 62 6c 69 63 turn.true;.}..............public
362c0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 .static.function.encode($data,.$
362e0 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d options.=.448).{.if.(version_com
36300 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3e 3d 27 29 29 20 pare(PHP_VERSION,.'5.4',.'>=')).
36320 7b 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 {.return.json_encode($data,.$opt
36340 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 ions);.}..$json.=.json_encode($d
36360 61 74 61 29 3b 0a 0a 24 70 72 65 74 74 79 50 72 69 6e 74 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 ata);..$prettyPrint.=.(Boolean).
36380 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 ($options.&.self::JSON_PRETTY_PR
363a0 49 4e 54 29 3b 0a 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 3d 20 28 42 6f 6f 6c 65 61 INT);.$unescapeUnicode.=.(Boolea
363c0 6e 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 n).($options.&.self::JSON_UNESCA
363e0 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 20 3d PED_UNICODE);.$unescapeSlashes.=
36400 20 28 42 6f 6f 6c 65 61 6e 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f .(Boolean).($options.&.self::JSO
36420 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 29 3b 0a 0a 69 66 20 28 21 24 70 72 65 N_UNESCAPED_SLASHES);..if.(!$pre
36440 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 ttyPrint.&&.!$unescapeUnicode.&&
36460 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 .!$unescapeSlashes).{.return.$js
36480 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 27 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 on;.}..$result.=.'';.$pos.=.0;.$
364a0 73 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6a 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 strLen.=.strlen($json);.$indentS
364c0 74 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 77 4c 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f tr.=.'....';.$newLine.=."\n";.$o
364e0 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 65 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b utOfQuotes.=.true;.$buffer.=.'';
36500 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b .$noescape.=.true;..for.($i.=.0;
36520 20 24 69 20 3c 3d 20 24 73 74 72 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 .$i.<=.$strLen;.$i++).{...$char.
36540 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 =.substr($json,.$i,.1);....if.('
36560 22 27 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 24 6e 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 "'.===.$char.&&.$noescape).{.$ou
36580 74 4f 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 tOfQuotes.=.!$outOfQuotes;.}..if
365a0 20 28 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 .(!$outOfQuotes).{.$buffer..=.$c
365c0 68 61 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 har;.$noescape.=.'\\'.===.$char.
365e0 3f 20 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ?.!$noescape.:.true;.continue;.}
36600 20 65 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 24 62 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 .elseif.(''.!==.$buffer).{.if.($
36620 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 unescapeSlashes).{.$buffer.=.str
36640 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 27 2f 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d _replace('\\/',.'/',.$buffer);.}
36660 0a 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 ..if.($unescapeUnicode.&&.functi
36680 6f 6e 5f 65 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 on_exists('mb_convert_encoding')
366a0 29 20 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c ).{...$buffer.=.preg_replace_cal
366c0 6c 62 61 63 6b 28 27 2f 5c 5c 5c 5c 75 28 5b 30 2d 39 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c 20 66 lback('/\\\\u([0-9a-f]{4})/i',.f
366e0 75 6e 63 74 69 6f 6e 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 6d 62 5f 63 6f 6e 76 unction($match).{.return.mb_conv
36700 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 70 61 63 6b 28 27 48 2a 27 2c 20 24 6d 61 74 63 68 5b 31 ert_encoding(pack('H*',.$match[1
36720 5d 29 2c 20 27 55 54 46 2d 38 27 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 7d 2c 20 24 62 75 66 ]),.'UTF-8',.'UCS-2BE');.},.$buf
36740 66 65 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 fer);.}..$result..=.$buffer.$cha
36760 72 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 r;.$buffer.=.'';.continue;.}..if
36780 20 28 27 3a 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 .(':'.===.$char).{...$char..=.'.
367a0 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 27 7d 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 ';.}.elseif.(('}'.===.$char.||.'
367c0 5d 27 20 3d 3d 3d 20 24 63 68 61 72 29 29 20 7b 0a 24 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 ]'.===.$char)).{.$pos--;.$prevCh
367e0 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a ar.=.substr($json,.$i.-.1,.1);..
36800 69 66 20 28 27 7b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d if.('{'.!==.$prevChar.&&.'['.!==
36820 20 24 70 72 65 76 43 68 61 72 29 20 7b 0a 0a 20 0a 20 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 .$prevChar).{.....$result..=.$ne
36840 77 4c 69 6e 65 3b 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 wLine;.for.($j.=.0;.$j.<.$pos;.$
36860 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a j++).{.$result..=.$indentStr;.}.
36880 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 }.else.{...$result.=.rtrim($resu
368a0 6c 74 29 2e 22 5c 6e 5c 6e 22 2e 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 lt)."\n\n".$indentStr;.}.}..$res
368c0 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 ult..=.$char;......if.(','.===.$
368e0 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d char.||.'{'.===.$char.||.'['.===
36900 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 0a .$char).{.$result..=.$newLine;..
36920 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 if.('{'.===.$char.||.'['.===.$ch
36940 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a ar).{.$pos++;.}..for.($j.=.0;.$j
36960 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 24 69 6e 64 .<.$pos;.$j++).{.$result..=.$ind
36980 65 6e 74 53 74 72 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 entStr;.}.}.}..return.$result;.}
369a0 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 6f 6e 20 .........public.static.function.
369c0 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 0a 7b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f parseJson($json).{.$data.=.json_
369e0 64 65 63 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 decode($json,.true);.if.(null.==
36a00 3d 20 24 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 =.$data.&&.JSON_ERROR_NONE.!==.j
36a20 73 6f 6e 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 son_last_error()).{.self::valida
36a40 74 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 teSyntax($json);.}..return.$data
36a60 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e ;.}.........protected.static.fun
36a80 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 6e 29 0a 7b 0a 24 70 ction.validateSyntax($json).{.$p
36aa0 61 72 73 65 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c arser.=.new.JsonParser();.$resul
36ac0 74 20 3d 20 24 70 61 72 73 65 72 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 t.=.$parser->lint($json);.if.(nu
36ae0 6c 6c 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a ll.===.$result).{.if.(defined('J
36b00 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 SON_ERROR_UTF8').&&.JSON_ERROR_U
36b20 54 46 38 20 3d 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 TF8.===.json_last_error()).{.thr
36b40 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 6f 6e ow.new.\UnexpectedValueException
36b60 28 27 4a 53 4f 4e 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 ('JSON.file.is.not.UTF-8.encoded
36b80 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 72 65 ');.}..return.true;.}..throw.$re
36ba0 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 6d 65 73 sult;.}.}.<?php............names
36bc0 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
36be0 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 61 63 65 omposer\Package\PackageInterface
36c00 3b 0a 0a 0a 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 ;.......class.CompositeRepositor
36c20 79 20 69 6d 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 y.implements.RepositoryInterface
36c40 0a 7b 0a 0a 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 .{.....private.$repositories;...
36c60 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
36c80 72 72 61 79 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 rray.$repositories).{.$this->rep
36ca0 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a ositories.=.$repositories;.}....
36cc0 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 73 69 74 6f 72 69 ...public.function.getRepositori
36ce0 65 73 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 69 65 es().{.return.$this->repositorie
36d00 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 73 50 61 63 6b s;.}.....public.function.hasPack
36d20 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 29 0a 7b age(PackageInterface.$package).{
36d40 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
36d60 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 .$repository).{..if.($repository
36d80 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 0a 72 65 74 75 72 6e ->hasPackage($package)).{.return
36da0 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a .true;.}.}..return.false;.}.....
36dc0 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 6e 61 6d public.function.findPackage($nam
36de0 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 2d 3e 72 e,.$version).{.foreach.($this->r
36e00 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 0a 0a 24 epositories.as.$repository).{..$
36e20 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 64 50 61 63 6b 61 package.=.$repository->findPacka
36e40 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d ge($name,.$version);.if.(null.!=
36e60 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d =.$package).{.return.$package;.}
36e80 0a 7d 0a 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 .}..return.null;.}.....public.fu
36ea0 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 20 24 76 65 72 73 nction.findPackages($name,.$vers
36ec0 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 ion.=.null).{.$packages.=.array(
36ee0 29 3b 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.
36f00 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 73 5b 5d 20 3d as.$repository).{..$packages[].=
36f20 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 73 28 24 6e 61 6d 65 .$repository->findPackages($name
36f40 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 ,.$version);.}..return.call_user
36f60 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 70 61 63 6b _func_array('array_merge',.$pack
36f80 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 67 65 74 ages);.}.....public.function.get
36fa0 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 61 72 72 61 79 28 29 Packages().{.$packages.=.array()
36fc0 3b 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 ;.foreach.($this->repositories.a
36fe0 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 73 5b 5d 20 3d 20 s.$repository).{..$packages[].=.
37000 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 72 $repository->getPackages();.}..r
37020 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 61 eturn.call_user_func_array('arra
37040 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c y_merge',.$packages);.}.....publ
37060 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 ic.function.count().{.$total.=.0
37080 3b 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 ;.foreach.($this->repositories.a
370a0 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 74 6f 74 61 6c 20 2b 3d 20 24 72 65 70 s.$repository).{..$total.+=.$rep
370c0 6f 73 69 74 6f 72 79 2d 3e 63 6f 75 6e 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 74 ository->count();.}..return.$tot
370e0 61 6c 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 61 64 64 52 65 al;.}......public.function.addRe
37100 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 72 65 pository(RepositoryInterface.$re
37120 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b pository).{.$this->repositories[
37140 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ].=.$repository;.}.}.<?php......
37160 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
37180 6f 72 79 3b 0a 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 64 ory;.........interface.Installed
371a0 52 65 70 6f 73 69 74 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 RepositoryInterface.extends.Writ
371c0 61 62 6c 65 52 65 70 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 ableRepositoryInterface.{.}.<?ph
371e0 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\
37200 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 67 Repository;..use.Composer\Packag
37220 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 63 e\AliasPackage;.use.Composer\Pac
37240 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
37260 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
37280 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 r;.......class.ArrayRepository.i
372a0 6d 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 mplements.RepositoryInterface.{.
372c0 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e protected.$packages;..public.fun
372e0 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 63 6b 61 67 65 ction.__construct(array.$package
37300 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 s.=.array()).{.foreach.($package
37320 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 s.as.$package).{.$this->addPacka
37340 67 65 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 ge($package);.}.}.....public.fun
37360 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 69 6f ction.findPackage($name,.$versio
37380 6e 29 0a 7b 0a 0a 20 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 n).{...$versionParser.=.new.Vers
373a0 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 65 72 73 69 6f 6e ionParser();.$version.=.$version
373c0 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 29 3b 0a 24 6e 61 Parser->normalize($version);.$na
373e0 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 me.=.strtolower($name);..foreach
37400 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 63 6b 61 .($this->getPackages().as.$packa
37420 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ge).{.if.($name.===.$package->ge
37440 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 tName().&&.$version.===.$package
37460 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 ->getVersion()).{.return.$packag
37480 65 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 66 69 6e e;.}.}.}.....public.function.fin
374a0 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 6c 6c dPackages($name,.$version.=.null
374c0 29 0a 7b 0a 0a 20 24 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 ).{...$name.=.strtolower($name);
374e0 0a 0a 0a 20 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 24 76 65 ....if.(null.!==.$version).{.$ve
37500 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 65 72 28 rsionParser.=.new.VersionParser(
37520 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 73 65 72 2d 3e 6e 6f );.$version.=.$versionParser->no
37540 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 rmalize($version);.}..$packages.
37560 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 67 65 74 50 =.array();..foreach.($this->getP
37580 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 69 66 20 28 24 70 61 ackages().as.$package).{.if.($pa
375a0 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 6e ckage->getName().===.$name.&&.(n
375c0 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d ull.===.$version.||.$version.===
375e0 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 20 7b 0a 24 70 61 63 .$package->getVersion())).{.$pac
37600 6b 61 67 65 73 5b 5d 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 kages[].=.$package;.}.}..return.
37620 24 70 61 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 $packages;.}.....public.function
37640 20 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 .hasPackage(PackageInterface.$pa
37660 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ckage).{.$packageId.=.$package->
37680 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 getUniqueName();..foreach.($this
376a0 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 ->getPackages().as.$repoPackage)
376c0 20 7b 0a 69 66 20 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 .{.if.($packageId.===.$repoPacka
376e0 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 ge->getUniqueName()).{.return.tr
37700 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ue;.}.}..return.false;.}.......p
37720 75 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 ublic.function.addPackage(Packag
37740 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 20 28 6e 75 6c 6c 20 eInterface.$package).{.if.(null.
37760 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e ===.$this->packages).{.$this->in
37780 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 itialize();.}.$package->setRepos
377a0 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 itory($this);.$this->packages[].
377c0 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 =.$package;....if.($package->get
377e0 41 6c 69 61 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 Alias()).{.$this->addPackage($th
37800 69 73 2d 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 29 is->createAliasPackage($package)
37820 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 63 72 65 61 74 );.}.}..protected.function.creat
37840 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 20 24 eAliasPackage(PackageInterface.$
37860 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 65 74 74 79 41 package,.$alias.=.null,.$prettyA
37880 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 lias.=.null).{.return.new.AliasP
378a0 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 20 3f 3a 20 24 70 61 63 6b ackage($package,.$alias.?:.$pack
378c0 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 20 3f 3a age->getAlias(),.$prettyAlias.?:
378e0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 29 3b 0a 7d 0a .$package->getPrettyAlias());.}.
37900 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 76 65 50 61 63 6b ......public.function.removePack
37920 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 29 0a 7b age(PackageInterface.$package).{
37940 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 74 55 6e 69 71 75 .$packageId.=.$package->getUniqu
37960 65 4e 61 6d 65 28 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 eName();..foreach.($this->getPac
37980 6b 61 67 65 73 28 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 kages().as.$key.=>.$repoPackage)
379a0 20 7b 0a 69 66 20 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 .{.if.($packageId.===.$repoPacka
379c0 67 65 2d 3e 67 65 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 ge->getUniqueName()).{.array_spl
379e0 69 63 65 28 24 74 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 ice($this->packages,.$key,.1);..
37a00 72 65 74 75 72 6e 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 return;.}.}.}.....public.functio
37a20 6e 20 67 65 74 50 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 n.getPackages().{.if.(null.===.$
37a40 74 68 69 73 2d 3e 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 this->packages).{.$this->initial
37a60 69 7a 65 28 29 3b 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 ize();.}..return.$this->packages
37a80 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 63 6f 75 6e 74 28 ;.}.......public.function.count(
37aa0 29 0a 7b 0a 72 65 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 ).{.return.count($this->packages
37ac0 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 69 6e 69 74 );.}.....protected.function.init
37ae0 69 61 6c 69 7a 65 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 ialize().{.$this->packages.=.arr
37b00 61 79 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 65 73 ay();.}.}.<?php............names
37b20 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
37b40 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 3b 0a 75 omposer\Package\MemoryPackage;.u
37b60 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 56 65 72 73 se.Composer\Package\Version\Vers
37b80 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 6d 52 65 70 ionParser;.....class.PlatformRep
37ba0 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.
37bc0 7b 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
37be0 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 76 65 72 ().{.parent::initialize();..$ver
37c00 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 28 29 sionParser.=.new.VersionParser()
37c20 3b 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 ;..try.{.$prettyVersion.=.PHP_VE
37c40 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 65 72 RSION;.$version.=.$versionParser
37c60 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 7d 20 63 ->normalize($prettyVersion);.}.c
37c80 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 65 70 74 69 6f 6e 20 atch.(\UnexpectedValueException.
37ca0 24 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 $e).{.$prettyVersion.=.preg_repl
37cc0 61 63 65 28 27 23 5e 28 2e 2b 3f 29 28 2d 2e 2b 29 3f 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 ace('#^(.+?)(-.+)?$#',.'$1',.PHP
37ce0 5f 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 _VERSION);.$version.=.$versionPa
37d00 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 6f 6e 29 3b rser->normalize($prettyVersion);
37d20 0a 7d 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 70 68 .}..$php.=.new.MemoryPackage('ph
37d40 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 0a 24 p',.$version,.$prettyVersion);.$
37d60 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 6e 74 php->setDescription('The.PHP.int
37d80 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 28 24 erpreter');.parent::addPackage($
37da0 70 68 70 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e php);..foreach.(get_loaded_exten
37dc0 73 69 6f 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 sions().as.$name).{.if.(in_array
37de0 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 27 ($name,.array('standard',.'Core'
37e00 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 65 ))).{.continue;.}..$reflExt.=.ne
37e20 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 74 w.\ReflectionExtension($name);.t
37e40 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 3e ry.{.$prettyVersion.=.$reflExt->
37e60 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 6f getVersion();.$version.=.$versio
37e80 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 6f nParser->normalize($prettyVersio
37ea0 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
37ec0 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 30 eption.$e).{.$prettyVersion.=.'0
37ee0 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 6f ';.$version.=.$versionParser->no
37f00 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 74 rmalize($prettyVersion);.}..$ext
37f20 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 65 78 74 2d 27 2e 24 6e 61 6d .=.new.MemoryPackage('ext-'.$nam
37f40 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 0a 24 65 e,.$version,.$prettyVersion);.$e
37f60 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 6d 65 2e xt->setDescription('The.'.$name.
37f80 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 64 50 61 '.PHP.extension');.parent::addPa
37fa0 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ckage($ext);.}.}.}.<?php........
37fc0 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
37fe0 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 y;.......class.InstalledFilesyst
38000 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 69 6c 65 73 79 73 74 65 6d 52 emRepository.extends.FilesystemR
38020 65 70 6f 73 69 74 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 epository.implements.InstalledRe
38040 70 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 positoryInterface.{.}.<?php.....
38060 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 69 .......namespace.Composer\Reposi
38080 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 61 tory;..use.Composer\IO\IOInterfa
380a0 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 6f 61 64 65 72 5c ce;.use.Composer\Package\Loader\
380c0 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 55 74 69 6c 5c 52 ArrayLoader;.use.Composer\Util\R
380e0 65 6d 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 4a 73 emoteFilesystem;.use.Composer\Js
38100 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 43 6f 6e 66 69 67 on\JsonFile;.use.Composer\Config
38120 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 6e 73 70 ;.use.Composer\Downloader\Transp
38140 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 ortException;......class.PearRep
38160 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.
38180 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 20 3d {.private.static.$channelNames.=
381a0 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 .array();..private.$url;.private
381c0 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 3b 0a 70 72 69 .$baseUrl;.private.$channel;.pri
381e0 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 70 75 62 6c 69 63 20 vate.$io;.private.$rfs;..public.
38200 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
38220 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.
38240 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.=
38260 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
38280 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'])).{.
382a0 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://'.$
382c0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 repoConfig['url'];.}..if.(functi
382e0 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 72 73 69 on_exists('filter_var').&&.versi
38300 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c on_compare(PHP_VERSION,.'5.3.3',
38320 20 27 3e 3d 27 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 6e 66 69 .'>=').&&.!filter_var($repoConfi
38340 67 5b 27 75 72 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 29 20 g['url'],.FILTER_VALIDATE_URL)).
38360 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
38380 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 50 45 41 ption('Invalid.url.given.for.PEA
383a0 52 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 27 75 72 6c R.repository:.'.$repoConfig['url
383c0 27 5d 29 3b 0a 7d 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 ']);.}..$this->url.=.rtrim($repo
383e0 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 63 68 61 6e Config['url'],.'/');.$this->chan
38400 6e 65 6c 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 63 68 61 6e 6e 65 nel.=.!empty($repoConfig['channe
38420 6c 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 l']).?.$repoConfig['channel'].:.
38440 6e 75 6c 6c 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 72 66 null;.$this->io.=.$io;.$this->rf
38460 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 6d s.=.$rfs.?:.new.RemoteFilesystem
38480 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ($this->io);.}..protected.functi
384a0 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 74 69 61 on.initialize().{.parent::initia
384c0 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 69 74 69 lize();..$this->io->write('Initi
384e0 61 6c 69 7a 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d alizing.PEAR.repository.'.$this-
38500 3e 75 72 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 43 68 61 6e 6e 65 6c 28 >url);.$this->initializeChannel(
38520 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 50 61 63 6b 61 67 65 73 20 6e 61 );.$this->io->write('Packages.na
38540 6d 65 73 20 77 69 6c 6c 20 62 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 3a 20 70 65 61 72 2d mes.will.be.prefixed.with:.pear-
38560 27 2e 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 2e 27 2f 27 29 3b 0a 0a 0a 20 74 72 79 20 7b 0a '.$this->channel.'/');....try.{.
38580 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 75 72 6c 2e $json.=.new.JsonFile($this->url.
385a0 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 '/packages.json',.new.RemoteFile
385c0 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 system($this->io));.$packages.=.
385e0 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 $json->read();..if.($this->io->i
38600 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 69 74 65 28 27 sVerbose()).{.$this->io->write('
38620 52 65 70 6f 73 69 74 6f 72 79 20 69 73 20 43 6f 6d 70 6f 73 65 72 2d 63 6f 6d 70 61 74 69 62 6c Repository.is.Composer-compatibl
38640 65 2c 20 6c 6f 61 64 69 6e 67 20 76 69 61 20 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 20 69 6e 73 e,.loading.via.packages.json.ins
38660 74 65 61 64 20 6f 66 20 50 45 41 52 20 70 72 6f 74 6f 63 6f 6c 27 29 3b 0a 7d 0a 0a 24 6c 6f 61 tead.of.PEAR.protocol');.}..$loa
38680 64 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 der.=.new.ArrayLoader();.foreach
386a0 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 64 61 74 61 29 20 7b 0a 66 6f 72 65 61 63 68 20 .($packages.as.$data).{.foreach.
386c0 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 72 65 76 29 20 7b 0a 69 66 ($data['versions'].as.$rev).{.if
386e0 20 28 73 74 72 70 6f 73 28 24 72 65 76 5b 27 6e 61 6d 65 27 5d 2c 20 27 70 65 61 72 2d 27 2e 24 .(strpos($rev['name'],.'pear-'.$
38700 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 29 20 21 3d 3d 20 30 29 20 7b 0a 24 72 65 76 5b 27 6e 61 this->channel).!==.0).{.$rev['na
38720 6d 65 27 5d 20 3d 20 27 70 65 61 72 2d 27 2e 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 2e 27 2f me'].=.'pear-'.$this->channel.'/
38740 27 2e 24 72 65 76 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b '.$rev['name'];.}.$this->addPack
38760 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 72 65 76 29 29 3b 0a 69 66 20 28 24 74 age($loader->load($rev));.if.($t
38780 68 69 73 2d 3e 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 his->io->isVerbose()).{.$this->i
387a0 6f 2d 3e 77 72 69 74 65 28 27 4c 6f 61 64 65 64 20 27 2e 24 72 65 76 5b 27 6e 61 6d 65 27 5d 2e o->write('Loaded.'.$rev['name'].
387c0 27 20 27 2e 24 72 65 76 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 '.'.$rev['version']);.}.}.}..ret
387e0 75 72 6e 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 7d urn;.}.catch.(\Exception.$e).{.}
38800 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 7d 0a 0a 70 ..$this->fetchFromServer();.}..p
38820 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 43 68 61 6e rotected.function.initializeChan
38840 6e 65 6c 28 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 nel().{.$channelXML.=.$this->req
38860 75 65 73 74 58 6d 6c 28 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 uestXml($this->url..."/channel.x
38880 6d 6c 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 29 20 7b 0a 24 74 68 ml");.if.(!$this->channel).{.$th
388a0 69 73 2d 3e 63 68 61 6e 6e 65 6c 20 3d 20 24 63 68 61 6e 6e 65 6c 58 4d 4c 2d 3e 67 65 74 45 6c is->channel.=.$channelXML->getEl
388c0 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 22 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 22 ementsByTagName("suggestedalias"
388e0 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 0a 3f 3a 20 24 63 68 61 6e 6e 65 )->item(0)->nodeValue.?:.$channe
38900 6c 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 22 6e 61 6d 65 lXML->getElementsByTagName("name
38920 22 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 3b 0a 7d 0a 69 66 20 28 21 24 ")->item(0)->nodeValue;.}.if.(!$
38940 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 this->baseUrl).{.$this->baseUrl.
38960 3d 20 24 63 68 61 6e 6e 65 6c 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e =.$channelXML->getElementsByTagN
38980 61 6d 65 28 22 62 61 73 65 75 72 6c 22 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c ame("baseurl")->item(0)->nodeVal
389a0 75 65 0a 3f 20 74 72 69 6d 28 24 63 68 61 6e 6e 65 6c 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e ue.?.trim($channelXML->getElemen
389c0 74 73 42 79 54 61 67 4e 61 6d 65 28 22 62 61 73 65 75 72 6c 22 29 2d 3e 69 74 65 6d 28 30 29 2d tsByTagName("baseurl")->item(0)-
389e0 3e 6e 6f 64 65 56 61 6c 75 65 2c 20 27 2f 27 29 0a 3a 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 >nodeValue,.'/').:.$this->url...
38a00 27 2f 72 65 73 74 27 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 5b '/rest';.}..self::$channelNames[
38a20 24 63 68 61 6e 6e 65 6c 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d $channelXML->getElementsByTagNam
38a40 65 28 22 6e 61 6d 65 22 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 5d 20 3d e("name")->item(0)->nodeValue].=
38a60 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .$this->channel;.}..protected.fu
38a80 6e 63 74 69 6f 6e 20 66 65 74 63 68 46 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a 24 63 61 74 65 nction.fetchFromServer().{.$cate
38aa0 67 6f 72 79 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 74 68 69 goryXML.=.$this->requestXml($thi
38ac0 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 s->baseUrl..."/c/categories.xml"
38ae0 29 3b 0a 24 63 61 74 65 67 6f 72 69 65 73 20 3d 20 24 63 61 74 65 67 6f 72 79 58 4d 4c 2d 3e 67 );.$categories.=.$categoryXML->g
38b00 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 22 63 22 29 3b 0a 0a 66 6f 72 65 61 etElementsByTagName("c");..forea
38b20 63 68 20 28 24 63 61 74 65 67 6f 72 69 65 73 20 61 73 20 24 63 61 74 65 67 6f 72 79 29 20 7b 0a ch.($categories.as.$category).{.
38b40 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 63 2f 27 20 2e $link.=.$this->baseUrl...'/c/'..
38b60 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 20 27 2c 20 27 2b 27 2c 20 24 63 61 74 65 67 6f 72 79 .str_replace('.',.'+',.$category
38b80 2d 3e 6e 6f 64 65 56 61 6c 75 65 29 3b 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 73 4c 69 6e ->nodeValue);.try.{.$packagesLin
38ba0 6b 20 3d 20 24 6c 69 6e 6b 20 2e 20 22 2f 70 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 22 3b k.=.$link..."/packagesinfo.xml";
38bc0 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 50 65 61 72 32 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b .$this->fetchPear2Packages($pack
38be0 61 67 65 73 4c 69 6e 6b 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 agesLink);.}.catch.(TransportExc
38c00 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f eption.$e).{.if.(false.===.strpo
38c20 73 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 34 30 34 27 29 29 20 7b 0a 74 68 s($e->getMessage(),.'404')).{.th
38c40 72 6f 77 20 24 65 3b 0a 7d 0a 24 63 61 74 65 67 6f 72 79 4c 69 6e 6b 20 3d 20 24 6c 69 6e 6b 20 row.$e;.}.$categoryLink.=.$link.
38c60 2e 20 22 2f 70 61 63 6b 61 67 65 73 2e 78 6d 6c 22 3b 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 50 .."/packages.xml";.$this->fetchP
38c80 65 61 72 50 61 63 6b 61 67 65 73 28 24 63 61 74 65 67 6f 72 79 4c 69 6e 6b 29 3b 0a 7d 0a 0a 7d earPackages($categoryLink);.}..}
38ca0 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 66 65 74 63 68 50 .}.......private.function.fetchP
38cc0 65 61 72 50 61 63 6b 61 67 65 73 28 24 63 61 74 65 67 6f 72 79 4c 69 6e 6b 29 0a 7b 0a 24 70 61 earPackages($categoryLink).{.$pa
38ce0 63 6b 61 67 65 73 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 63 ckagesXML.=.$this->requestXml($c
38d00 61 74 65 67 6f 72 79 4c 69 6e 6b 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 ategoryLink);.$packages.=.$packa
38d20 67 65 73 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 70 27 gesXML->getElementsByTagName('p'
38d40 29 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a );.$loader.=.new.ArrayLoader();.
38d60 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 63 6b 61 67 65 29 20 foreach.($packages.as.$package).
38d80 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 6e 6f 64 65 56 {.$packageName.=.$package->nodeV
38da0 61 6c 75 65 3b 0a 24 66 75 6c 6c 4e 61 6d 65 20 3d 20 27 70 65 61 72 2d 27 2e 24 74 68 69 73 2d alue;.$fullName.=.'pear-'.$this-
38dc0 3e 63 68 61 6e 6e 65 6c 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 0a 24 72 65 6c >channel.'/'.$packageName;..$rel
38de0 65 61 73 65 4c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 22 2f 72 2f easeLink.=.$this->baseUrl..."/r/
38e00 22 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 61 6c 6c 52 65 6c 65 61 73 65 73 4c 69 "...$packageName;.$allReleasesLi
38e20 6e 6b 20 3d 20 24 72 65 6c 65 61 73 65 4c 69 6e 6b 20 2e 20 22 2f 61 6c 6c 72 65 6c 65 61 73 65 nk.=.$releaseLink..."/allrelease
38e40 73 32 2e 78 6d 6c 22 3b 0a 0a 74 72 79 20 7b 0a 24 72 65 6c 65 61 73 65 73 58 4d 4c 20 3d 20 24 s2.xml";..try.{.$releasesXML.=.$
38e60 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 61 6c 6c 52 65 6c 65 61 73 65 73 4c 69 6e this->requestXml($allReleasesLin
38e80 6b 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 70 74 69 6f 6e 20 k);.}.catch.(TransportException.
38ea0 24 65 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 $e).{.if.(strpos($e->getMessage(
38ec0 29 2c 20 27 34 30 34 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 74 68 72 6f 77 20 24 ),.'404')).{.continue;.}.throw.$
38ee0 65 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 65 73 58 4d 4c 2d 3e e;.}..$releases.=.$releasesXML->
38f00 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 72 27 29 3b 0a 0a 66 6f 72 65 getElementsByTagName('r');..fore
38f20 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 29 20 7b 0a 0a 24 ach.($releases.as.$release).{..$
38f40 70 65 61 72 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 6c 65 61 73 65 2d 3e 67 65 74 45 6c 65 6d 65 pearVersion.=.$release->getEleme
38f60 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 76 27 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 ntsByTagName('v')->item(0)->node
38f80 56 61 6c 75 65 3b 0a 0a 24 70 61 63 6b 61 67 65 44 61 74 61 20 3d 20 61 72 72 61 79 28 0a 27 6e Value;..$packageData.=.array(.'n
38fa0 61 6d 65 27 20 3d 3e 20 24 66 75 6c 6c 4e 61 6d 65 2c 0a 27 74 79 70 65 27 20 3d 3e 20 27 6c 69 ame'.=>.$fullName,.'type'.=>.'li
38fc0 62 72 61 72 79 27 2c 0a 27 64 69 73 74 27 20 3d 3e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d brary',.'dist'.=>.array('type'.=
38fe0 3e 20 27 70 65 61 72 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2f >.'pear',.'url'.=>.$this->url.'/
39000 67 65 74 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2d 27 2e 24 70 65 61 72 56 65 72 73 get/'.$packageName.'-'.$pearVers
39020 69 6f 6e 2e 22 2e 74 67 7a 22 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 65 61 72 56 ion.".tgz"),.'version'.=>.$pearV
39040 65 72 73 69 6f 6e 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 63 6c ersion,.'autoload'.=>.array(.'cl
39060 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 27 29 2c 0a 29 2c 0a 29 3b 0a 0a 74 72 79 assmap'.=>.array(''),.),.);..try
39080 20 7b 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e .{.$deps.=.$this->rfs->getConten
390a0 74 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 72 65 6c 65 61 73 65 4c 69 6e 6b 20 2e 20 22 2f ts($this->url,.$releaseLink..."/
390c0 64 65 70 73 2e 22 2e 24 70 65 61 72 56 65 72 73 69 6f 6e 2e 22 2e 74 78 74 22 2c 20 66 61 6c 73 deps.".$pearVersion.".txt",.fals
390e0 65 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 70 74 69 6f 6e 20 e);.}.catch.(TransportException.
39100 24 65 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 $e).{.if.(strpos($e->getMessage(
39120 29 2c 20 27 34 30 34 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 74 68 72 6f 77 20 24 ),.'404')).{.continue;.}.throw.$
39140 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 44 61 74 61 20 2b 3d 20 24 74 68 69 73 2d 3e 70 61 72 e;.}..$packageData.+=.$this->par
39160 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 64 65 70 73 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 seDependencies($deps);..try.{.$t
39180 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 his->addPackage($loader->load($p
391a0 61 63 6b 61 67 65 44 61 74 61 29 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 ackageData));.if.($this->io->isV
391c0 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 4c 6f erbose()).{.$this->io->write('Lo
391e0 61 64 65 64 20 27 2e 24 70 61 63 6b 61 67 65 44 61 74 61 5b 27 6e 61 6d 65 27 5d 2e 27 20 27 2e aded.'.$packageData['name'].'.'.
39200 24 70 61 63 6b 61 67 65 44 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 20 63 61 $packageData['version']);.}.}.ca
39220 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.$
39240 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 e).{.if.($this->io->isVerbose())
39260 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c .{.$this->io->write('Could.not.l
39280 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 61 74 61 5b 27 6e 61 6d 65 27 5d 2e 27 20 27 2e 24 oad.'.$packageData['name'].'.'.$
392a0 70 61 63 6b 61 67 65 44 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 3a 20 27 2e 24 65 2d 3e packageData['version'].':.'.$e->
392c0 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 7d getMessage());.}.continue;.}.}.}
392e0 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 70 61 72 73 65 56 65 .}......private.function.parseVe
39300 72 73 69 6f 6e 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 rsion(array.$data).{.if.(!isset(
39320 24 64 61 74 61 5b 27 6d 69 6e 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 6d $data['min']).&&.!isset($data['m
39340 61 78 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 73 ax'])).{.return.'*';.}.$versions
39360 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6d 69 6e .=.array();.if.(isset($data['min
39380 27 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 3d 27 20 2e 20 24 64 61 74 '])).{.$versions[].=.'>='...$dat
393a0 61 5b 27 6d 69 6e 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6d 61 78 a['min'];.}.if.(isset($data['max
393c0 27 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 3d 27 20 2e 20 24 64 61 74 '])).{.$versions[].=.'<='...$dat
393e0 61 5b 27 6d 61 78 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c a['max'];.}..return.implode(',',
39400 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .$versions);.}.......private.fun
39420 63 74 69 6f 6e 20 70 61 72 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 4f 70 74 69 6f 6e 73 28 61 ction.parseDependenciesOptions(a
39440 72 72 61 79 20 24 64 65 70 73 4f 70 74 69 6f 6e 73 29 0a 7b 0a 24 64 61 74 61 20 3d 20 61 72 72 rray.$depsOptions).{.$data.=.arr
39460 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 73 4f 70 74 69 6f 6e 73 20 61 73 20 24 ay();.foreach.($depsOptions.as.$
39480 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 69 6f 6e 73 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 name.=>.$options).{...if.(isset(
394a0 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 $options['name'])).{.$options.=.
394c0 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 20 array($options);.}.if.('php'.==.
394e0 24 6e 61 6d 65 29 20 7b 0a 24 64 61 74 61 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 70 $name).{.$data[$name].=.$this->p
39500 61 72 73 65 56 65 72 73 69 6f 6e 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 arseVersion($options);.}.elseif.
39520 28 27 70 61 63 6b 61 67 65 27 20 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 ('package'.==.$name).{.foreach.(
39540 24 6f 70 74 69 6f 6e 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 $options.as.$key.=>.$value).{.if
39560 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 5b 27 70 72 6f 76 69 64 65 73 65 78 74 65 6e 73 69 6f .(isset($value['providesextensio
39580 6e 27 5d 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 n'])).{...continue;.}.if.(isset(
395a0 24 76 61 6c 75 65 5b 27 75 72 69 27 5d 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a $value['uri'])).{...continue;.}.
395c0 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 64 61 74 61 4b 65 .if.(is_array($value)).{.$dataKe
395e0 79 20 3d 20 24 76 61 6c 75 65 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d y.=.$value['name'];.if.(false.==
39600 3d 20 73 74 72 70 6f 73 28 24 64 61 74 61 4b 65 79 2c 20 27 2f 27 29 29 20 7b 0a 24 64 61 74 61 =.strpos($dataKey,.'/')).{.$data
39620 4b 65 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 53 68 6f 72 74 68 61 6e 64 Key.=.$this->getChannelShorthand
39640 28 24 76 61 6c 75 65 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 2e 27 2f 27 2e 24 64 61 74 61 4b 65 79 ($value['channel']).'/'.$dataKey
39660 3b 0a 7d 0a 24 64 61 74 61 5b 27 70 65 61 72 2d 27 2e 24 64 61 74 61 4b 65 79 5d 20 3d 20 24 74 ;.}.$data['pear-'.$dataKey].=.$t
39680 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 7d his->parseVersion($value);.}.}.}
396a0 20 65 6c 73 65 69 66 20 28 27 65 78 74 65 6e 73 69 6f 6e 27 20 3d 3d 20 24 6e 61 6d 65 29 20 7b .elseif.('extension'.==.$name).{
396c0 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 .foreach.($options.as.$key.=>.$v
396e0 61 6c 75 65 29 20 7b 0a 24 64 61 74 61 4b 65 79 20 3d 20 27 65 78 74 2d 27 20 2e 20 24 76 61 6c alue).{.$dataKey.=.'ext-'...$val
39700 75 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 61 74 61 5b 24 64 61 74 61 4b 65 79 5d 20 3d 20 24 74 ue['name'];.$data[$dataKey].=.$t
39720 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 7d his->parseVersion($value);.}.}.}
39740 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ..return.$data;.}.......private.
39760 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 64 65 70 73 function.parseDependencies($deps
39780 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 28 28 4f 3a 28 5b 30 2d 39 5d 29 2b ).{.if.(preg_match('((O:([0-9])+
397a0 3a 22 28 5b 5e 22 5d 2b 29 22 29 29 27 2c 20 24 64 65 70 73 2c 20 24 6d 61 74 63 68 65 73 29 29 :"([^"]+)"))',.$deps,.$matches))
397c0 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3d 3d 20 24 6d .{.if.(strlen($matches[3]).==.$m
397e0 61 74 63 68 65 73 5b 32 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 atches[2]).{.throw.new.\InvalidA
39800 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 64 65 70 65 6e 64 rgumentException("Invalid.depend
39820 65 6e 63 79 20 64 61 74 61 2c 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 73 65 72 69 61 6c 69 7a 65 ency.data,.it.contains.serialize
39840 64 20 6f 62 6a 65 63 74 73 2e 22 29 3b 0a 7d 0a 7d 0a 24 64 65 70 73 20 3d 20 28 61 72 72 61 79 d.objects.");.}.}.$deps.=.(array
39860 29 20 40 75 6e 73 65 72 69 61 6c 69 7a 65 28 24 64 65 70 73 29 3b 0a 75 6e 73 65 74 28 24 64 65 ).@unserialize($deps);.unset($de
39880 70 73 5b 27 72 65 71 75 69 72 65 64 27 5d 5b 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 5d 29 ps['required']['pearinstaller'])
398a0 3b 0a 0a 24 64 65 70 73 44 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 65 6d 70 ;..$depsData.=.array();.if.(!emp
398c0 74 79 28 24 64 65 70 73 5b 27 72 65 71 75 69 72 65 64 27 5d 29 29 20 7b 0a 24 64 65 70 73 44 61 ty($deps['required'])).{.$depsDa
398e0 74 61 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 44 65 70 65 ta['require'].=.$this->parseDepe
39900 6e 64 65 6e 63 69 65 73 4f 70 74 69 6f 6e 73 28 24 64 65 70 73 5b 27 72 65 71 75 69 72 65 64 27 ndenciesOptions($deps['required'
39920 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 65 70 73 5b 27 6f 70 74 69 6f 6e 61 ]);.}..if.(!empty($deps['optiona
39940 6c 27 5d 29 29 20 7b 0a 24 64 65 70 73 44 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 l'])).{.$depsData['suggest'].=.$
39960 74 68 69 73 2d 3e 70 61 72 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 4f 70 74 69 6f 6e 73 28 24 this->parseDependenciesOptions($
39980 64 65 70 73 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 deps['optional']);.}..return.$de
399a0 70 73 44 61 74 61 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 psData;.}.......private.function
399c0 20 66 65 74 63 68 50 65 61 72 32 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 73 4c 69 6e .fetchPear2Packages($packagesLin
399e0 6b 29 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 k).{.$loader.=.new.ArrayLoader()
39a00 3b 0a 24 70 61 63 6b 61 67 65 73 58 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 ;.$packagesXml.=.$this->requestX
39a20 6d 6c 28 24 70 61 63 6b 61 67 65 73 4c 69 6e 6b 29 3b 0a 0a 24 69 6e 66 6f 72 6d 61 74 69 6f 6e ml($packagesLink);..$information
39a40 73 20 3d 20 24 70 61 63 6b 61 67 65 73 58 6d 6c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 s.=.$packagesXml->getElementsByT
39a60 61 67 4e 61 6d 65 28 27 70 69 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 66 6f 72 6d 61 74 agName('pi');.foreach.($informat
39a80 69 6f 6e 73 20 61 73 20 24 69 6e 66 6f 72 6d 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 ions.as.$information).{.$package
39aa0 20 3d 20 24 69 6e 66 6f 72 6d 61 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 .=.$information->getElementsByTa
39ac0 67 4e 61 6d 65 28 27 70 27 29 2d 3e 69 74 65 6d 28 30 29 3b 0a 0a 24 70 61 63 6b 61 67 65 4e 61 gName('p')->item(0);..$packageNa
39ae0 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e me.=.$package->getElementsByTagN
39b00 61 6d 65 28 27 6e 27 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 3b 0a 24 66 ame('n')->item(0)->nodeValue;.$f
39b20 75 6c 6c 4e 61 6d 65 20 3d 20 27 70 65 61 72 2d 27 2e 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c ullName.=.'pear-'.$this->channel
39b40 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 44 61 74 61 20 .'/'.$packageName;.$packageData.
39b60 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 66 75 6c 6c 4e 61 6d 65 2c 0a 27 74 =.array(.'name'.=>.$fullName,.'t
39b80 79 70 65 27 20 3d 3e 20 27 6c 69 62 72 61 72 79 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 20 3d 3e ype'.=>.'library',.'autoload'.=>
39ba0 20 61 72 72 61 79 28 0a 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 27 27 29 2c .array(.'classmap'.=>.array(''),
39bc0 0a 29 2c 0a 29 3b 0a 24 70 61 63 6b 61 67 65 4b 65 79 73 20 3d 20 61 72 72 61 79 28 27 6c 27 20 .),.);.$packageKeys.=.array('l'.
39be0 3d 3e 20 27 6c 69 63 65 6e 73 65 27 2c 20 27 64 27 20 3d 3e 20 27 64 65 73 63 72 69 70 74 69 6f =>.'license',.'d'.=>.'descriptio
39c00 6e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4b 65 79 73 20 61 73 20 24 70 n');.foreach.($packageKeys.as.$p
39c20 65 61 72 20 3d 3e 20 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 ear.=>.$composer).{.if.($package
39c40 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 24 70 65 61 72 29 2d 3e 6c ->getElementsByTagName($pear)->l
39c60 65 6e 67 74 68 20 3e 20 30 0a 26 26 20 28 24 70 65 61 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ength.>.0.&&.($pear.=.$package->
39c80 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 24 70 65 61 72 29 2d 3e 69 74 65 getElementsByTagName($pear)->ite
39ca0 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 44 61 74 61 m(0)->nodeValue)).{.$packageData
39cc0 5b 24 63 6f 6d 70 6f 73 65 72 5d 20 3d 20 24 70 65 61 72 3b 0a 7d 0a 7d 0a 0a 24 64 65 70 73 44 [$composer].=.$pear;.}.}..$depsD
39ce0 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 66 6f 72 6d 61 ata.=.array();.foreach.($informa
39d00 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 64 65 70 73 tion->getElementsByTagName('deps
39d20 27 29 20 61 73 20 24 64 65 70 45 6c 65 6d 65 6e 74 29 20 7b 0a 24 64 65 70 73 56 65 72 73 69 6f ').as.$depElement).{.$depsVersio
39d40 6e 20 3d 20 24 64 65 70 45 6c 65 6d 65 6e 74 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 n.=.$depElement->getElementsByTa
39d60 67 4e 61 6d 65 28 27 76 27 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 3b 0a gName('v')->item(0)->nodeValue;.
39d80 24 64 65 70 73 44 61 74 61 5b 24 64 65 70 73 56 65 72 73 69 6f 6e 5d 20 3d 20 24 74 68 69 73 2d $depsData[$depsVersion].=.$this-
39da0 3e 70 61 72 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 64 65 70 45 6c 65 6d 65 6e 74 2d >parseDependencies(.$depElement-
39dc0 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 64 27 29 2d 3e 69 74 65 6d >getElementsByTagName('d')->item
39de0 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 0a 29 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d (0)->nodeValue.);.}..$releases.=
39e00 20 24 69 6e 66 6f 72 6d 61 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e .$information->getElementsByTagN
39e20 61 6d 65 28 27 61 27 29 2d 3e 69 74 65 6d 28 30 29 3b 0a 69 66 20 28 21 24 72 65 6c 65 61 73 65 ame('a')->item(0);.if.(!$release
39e40 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 24 72 s).{.continue;.}..$releases.=.$r
39e60 65 6c 65 61 73 65 73 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 72 eleases->getElementsByTagName('r
39e80 27 29 3b 0a 24 70 61 63 6b 61 67 65 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 27 ');.$packageUrl.=.$this->url...'
39ea0 2f 67 65 74 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 66 6f 72 65 61 63 68 20 28 /get/'...$packageName;.foreach.(
39ec0 24 72 65 6c 65 61 73 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 29 20 7b 0a 24 76 65 72 73 69 6f $releases.as.$release).{.$versio
39ee0 6e 20 3d 20 24 72 65 6c 65 61 73 65 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 n.=.$release->getElementsByTagNa
39f00 6d 65 28 27 76 27 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 3b 0a 24 72 65 me('v')->item(0)->nodeValue;.$re
39f20 6c 65 61 73 65 44 61 74 61 20 3d 20 61 72 72 61 79 28 0a 27 64 69 73 74 27 20 3d 3e 20 61 72 72 leaseData.=.array(.'dist'.=>.arr
39f40 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 70 65 61 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 ay(.'type'.=>.'pear',.'url'.=>.$
39f60 70 61 63 6b 61 67 65 55 72 6c 20 2e 20 27 2d 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 27 2e packageUrl...'-'...$version...'.
39f80 74 67 7a 27 0a 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 0a 29 3b tgz'.),.'version'.=>.$version.);
39fa0 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 73 44 61 74 61 5b 24 76 65 72 73 69 6f 6e 5d 29 29 .if.(isset($depsData[$version]))
39fc0 20 7b 0a 24 72 65 6c 65 61 73 65 44 61 74 61 20 2b 3d 20 24 64 65 70 73 44 61 74 61 5b 24 76 65 .{.$releaseData.+=.$depsData[$ve
39fe0 72 73 69 6f 6e 5d 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 44 61 rsion];.}..$package.=.$packageDa
3a000 74 61 20 2b 20 24 72 65 6c 65 61 73 65 44 61 74 61 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e ta.+.$releaseData;.try.{.$this->
3a020 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 addPackage($loader->load($packag
3a040 65 29 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 e));.if.($this->io->isVerbose())
3a060 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 4c 6f 61 64 65 64 20 27 2e 24 70 .{.$this->io->write('Loaded.'.$p
3a080 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 5b 27 76 65 72 ackage['name'].'.'.$package['ver
3a0a0 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 sion']);.}.}.catch.(\UnexpectedV
3a0c0 61 6c 75 65 45 78 63 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 alueException.$e).{.if.($this->i
3a0e0 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 69 o->isVerbose()).{.$this->io->wri
3a100 74 65 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 5b 27 6e te('Could.not.load.'.$package['n
3a120 61 6d 65 27 5d 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 3a ame'].'.'.$package['version'].':
3a140 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 75 65 .'.$e->getMessage());.}.continue
3a160 3b 0a 7d 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 ;.}.}.}.}......private.function.
3a180 72 65 71 75 65 73 74 58 6d 6c 28 24 75 72 6c 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 requestXml($url).{.$content.=.$t
3a1a0 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 75 72 6c his->rfs->getContents($this->url
3a1c0 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b ,.$url,.false);.if.(!$content).{
3a1e0 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
3a200 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 2e 24 75 72 6c tion('The.PEAR.channel.at.'.$url
3a220 2e 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d 0a 24 64 6f 6d 20 3d 20 .'.did.not.respond.');.}.$dom.=.
3a240 6e 65 77 20 5c 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 new.\DOMDocument('1.0',.'UTF-8')
3a260 3b 0a 24 64 6f 6d 2d 3e 6c 6f 61 64 58 4d 4c 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 72 65 74 75 ;.$dom->loadXML($content);..retu
3a280 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rn.$dom;.}..private.function.get
3a2a0 43 68 61 6e 6e 65 6c 53 68 6f 72 74 68 61 6e 64 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 69 73 ChannelShorthand($url).{.if.(!is
3a2c0 73 65 74 28 73 65 6c 66 3a 3a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 5b 24 75 72 6c 5d 29 29 20 set(self::$channelNames[$url])).
3a2e0 7b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 {.try.{.$channelXML.=.$this->req
3a300 75 65 73 74 58 6d 6c 28 27 68 74 74 70 3a 2f 2f 27 2e 24 75 72 6c 2e 22 2f 63 68 61 6e 6e 65 6c uestXml('http://'.$url."/channel
3a320 2e 78 6d 6c 22 29 3b 0a 24 73 68 6f 72 74 68 61 6e 64 20 3d 20 24 63 68 61 6e 6e 65 6c 58 4d 4c .xml");.$shorthand.=.$channelXML
3a340 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 22 73 75 67 67 65 73 74 65 ->getElementsByTagName("suggeste
3a360 64 61 6c 69 61 73 22 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 0a 3f 3a 20 dalias")->item(0)->nodeValue.?:.
3a380 24 63 68 61 6e 6e 65 6c 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d $channelXML->getElementsByTagNam
3a3a0 65 28 22 6e 61 6d 65 22 29 2d 3e 69 74 65 6d 28 30 29 2d 3e 6e 6f 64 65 56 61 6c 75 65 3b 0a 73 e("name")->item(0)->nodeValue;.s
3a3c0 65 6c 66 3a 3a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 5b 24 75 72 6c 5d 20 3d 20 24 73 68 6f 72 elf::$channelNames[$url].=.$shor
3a3e0 74 68 61 6e 64 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 thand;.}.catch.(\Exception.$e).{
3a400 0a 73 65 6c 66 3a 3a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 5b 24 75 72 6c 5d 20 3d 20 73 75 62 .self::$channelNames[$url].=.sub
3a420 73 74 72 28 24 75 72 6c 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 2e 27 29 29 3b str($url,.0,.strpos($url,.'.'));
3a440 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 73 .}.}..return.self::$channelNames
3a460 5b 24 75 72 6c 5d 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 [$url];.}.}.<?php............nam
3a480 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 0a espace.Composer\Repository\Vcs;.
3a4a0 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 75 73 65 .use.Composer\Json\JsonFile;.use
3a4c0 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 0a .Composer\Util\ProcessExecutor;.
3a4e0 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 73 use.Composer\Util\Filesystem;.us
3a500 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;.
3a520 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
3a540 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
3a560 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 76 65 72 20 65 78 ception;......class.SvnDriver.ex
3a580 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 62 61 73 tends.VcsDriver.{.protected.$bas
3a5a0 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 6f 74 65 63 74 65 64 eUrl;.protected.$tags;.protected
3a5c0 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 .$branches;.protected.$infoCache
3a5e0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b 0a 0a .=.array();.....private.$util;..
3a600 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 65 78 65 63 .........protected.function.exec
3a620 75 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 ute($command,.$url).{.if.(null.=
3a640 3d 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 ==.$this->util).{.$this->util.=.
3a660 6e 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 new.SvnUtil($this->baseUrl,.$thi
3a680 73 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 s->io,.$this->process);.}..try.{
3a6a0 0a 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 .return.$this->util->execute($co
3a6c0 6d 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 mmand,.$url);.}.catch.(\RuntimeE
3a6e0 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 5c 52 75 6e 74 69 6d xception.$e).{.throw.new.\Runtim
3a700 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d eException(.'Repository.'.$this-
3a720 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 >url.'.could.not.be.processed,.'
3a740 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 .$e->getMessage().);.}.}.....pub
3a760 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 24 74 68 69 lic.function.initialize().{.$thi
3a780 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 s->url.=.$this->baseUrl.=.rtrim(
3a7a0 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 self::normalizeUrl($this->url),.
3a7c0 27 2f 27 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 '/');..if.(false.!==.($pos.=.str
3a7e0 72 70 6f 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 74 72 75 6e 6b 27 29 29 29 20 7b 0a 24 rpos($this->url,.'/trunk'))).{.$
3a800 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 69 73 2d 3e 75 72 this->baseUrl.=.substr($this->ur
3a820 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 l,.0,.$pos);.}..$this->getBranch
3a840 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 es();.$this->getTags();.}.....pu
3a860 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 69 65 72 28 blic.function.getRootIdentifier(
3a880 29 0a 7b 0a 72 65 74 75 72 6e 20 27 74 72 75 6e 6b 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ).{.return.'trunk';.}.....public
3a8a0 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 24 74 68 69 .function.getUrl().{.return.$thi
3a8c0 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 6e 20 67 65 s->url;.}.....public.function.ge
3a8e0 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 6e 20 61 72 tSource($identifier).{.return.ar
3a900 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 ray('type'.=>.'svn',.'url'.=>.$t
3a920 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 his->baseUrl,.'reference'.=>.$id
3a940 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 6f 6e entifier);.}.....public.function
3a960 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 74 75 72 6e 20 6e .getDist($identifier).{.return.n
3a980 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 43 6f ull;.}.....public.function.getCo
3a9a0 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 7b mposerInformation($identifier).{
3a9c0 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 69 64 65 6e 74 .$identifier.=.'/'...trim($ident
3a9e0 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 ifier,.'/')...'/';.if.(!isset($t
3aa00 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])).{.
3aa20 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+)?/$}',.
3aa40 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
3aa60 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6d 61 ($match[2])).{.$identifier.=.$ma
3aa80 74 63 68 5b 31 5d 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 tch[1];.$rev.=.$match[2];.}.else
3aaa0 20 7b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6f 75 74 70 75 74 20 3d .{.$rev.=.'';.}..try.{.$output.=
3aac0 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 .$this->execute('svn.cat',.$this
3aae0 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 20 2e 20 27 63 6f 6d 70 6f ->baseUrl...$identifier...'compo
3ab00 73 65 72 2e 6a 73 6f 6e 27 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 ser.json'...$rev);.if.(!trim($ou
3ab20 74 70 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 tput)).{.return;.}.}.catch.(\Run
3ab40 74 69 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 timeException.$e).{.throw.new.Tr
3ab60 61 6e 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 ansportException($e->getMessage(
3ab80 29 29 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 ));.}..$composer.=.JsonFile::par
3aba0 73 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f seJson($output);..if.(!isset($co
3abc0 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 68 mposer['time'])).{.$output.=.$th
3abe0 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 62 is->execute('svn.info',.$this->b
3ac00 61 73 65 55 72 6c 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 20 2e 20 24 72 65 76 29 3b 0a 66 6f aseUrl...$identifier...$rev);.fo
3ac20 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 69 6e 65 reach.($this->process->splitLine
3ac40 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 20 28 24 6c 69 6e 65 s($output).as.$line).{.if.($line
3ac60 20 26 26 20 70 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 .&&.preg_match('{^Last.Changed.D
3ac80 61 74 65 3a 20 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 ate:.([^(]+)}',.$line,.$match)).
3aca0 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 6d 61 74 63 68 5b 31 {.$date.=.new.\DateTime($match[1
3acc0 5d 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 2d 3e 66 ]);.$composer['time'].=.$date->f
3ace0 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d ormat('Y-m-d.H:i:s');.break;.}.}
3ad00 0a 7d 0a 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 69 65 72 5d .}.$this->infoCache[$identifier]
3ad20 20 3d 20 24 63 6f 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 .=.$composer;.}..return.$this->i
3ad40 6e 66 6f 43 61 63 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 nfoCache[$identifier];.}.....pub
3ad60 6c 69 63 20 66 75 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 lic.function.getTags().{.if.(nul
3ad80 6c 20 3d 3d 3d 20 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 l.===.$this->tags).{.$this->tags
3ada0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 .=.array();..$output.=.$this->ex
3adc0 65 63 75 74 65 28 27 73 76 6e 20 6c 73 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e ecute('svn.ls',.$this->baseUrl..
3ade0 20 27 2f 74 61 67 73 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 .'/tags');.if.($output).{.foreac
3ae00 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 24 6f h.($this->process->splitLines($o
3ae20 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 29 20 7b 0a 24 74 utput).as.$tag).{.if.($tag).{.$t
3ae40 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 74 61 67 2c 20 27 2f 27 29 5d 20 3d 20 27 2f his->tags[rtrim($tag,.'/')].=.'/
3ae60 74 61 67 73 2f 27 2e 24 74 61 67 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 tags/'.$tag;.}.}.}.}..return.$th
3ae80 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.
3aea0 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 20 24 74 68 getBranches().{.if.(null.===.$th
3aec0 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 is->branches).{.$this->branches.
3aee0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 =.array();..$output.=.$this->exe
3af00 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 69 73 2d 3e cute('svn.ls.--verbose',.$this->
3af20 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 baseUrl...'/');.if.($output).{.f
3af40 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 69 6e oreach.($this->process->splitLin
3af60 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 es($output).as.$line).{.$line.=.
3af80 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
3afa0 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*$}',.
3afc0 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
3afe0 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
3b000 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 27 74 72 75 6e 6b 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 atch[2].===.'trunk/').{.$this->b
3b020 72 61 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 27 2f 74 72 75 6e 6b 2f 40 27 2e 24 6d ranches['trunk'].=.'/trunk/@'.$m
3b040 61 74 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 6f atch[1];.break;.}.}.}.}.unset($o
3b060 75 74 70 75 74 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 utput);..$output.=.$this->execut
3b080 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 69 73 2d 3e 62 61 73 e('svn.ls.--verbose',.$this->bas
3b0a0 65 55 72 6c 20 2e 20 27 2f 62 72 61 6e 63 68 65 73 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 eUrl...'/branches');.if.($output
3b0c0 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 3e 73 70 6c ).{.foreach.($this->process->spl
3b0e0 69 74 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 itLines(trim($output)).as.$line)
3b100 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 6e .{.$line.=.trim($line);.if.($lin
3b120 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 5c e.&&.preg_match('{^\s*(\S+).*?(\
3b140 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 20 S+)\s*$}',.$line,.$match)).{.if.
3b160 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 63 (isset($match[1]).&&.isset($matc
3b180 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 24 h[2]).&&.$match[2].!==.'./').{.$
3b1a0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 this->branches[rtrim($match[2],.
3b1c0 27 2f 27 29 5d 20 3d 20 27 2f 62 72 61 6e 63 68 65 73 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 '/')].=.'/branches/'.$match[2].'
3b1e0 40 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 @'.$match[1];.}.}.}.}.}..return.
3b200 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 73 74 $this->branches;.}.....public.st
3b220 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 66 61 atic.function.supports(IOInterfa
3b240 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 0a 24 ce.$io,.$url,.$deep.=.false).{.$
3b260 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 29 3b 0a url.=.self::normalizeUrl($url);.
3b280 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 6e 5c 2b if.(preg_match('#(^svn://|^svn\+
3b2a0 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 74 75 72 ssh://|svn\.)#i',.$url)).{.retur
3b2c0 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 74 61 74 n.true;.}....if.(!$deep.&&.!stat
3b2e0 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 6e 20 66 ic::isLocalUrl($url)).{.return.f
3b300 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 65 77 20 alse;.}..$processExecutor.=.new.
3b320 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 70 72 6f ProcessExecutor();..$exit.=.$pro
3b340 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 6e 66 6f cessExecutor->execute(."svn.info
3b360 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 69 67 6e .--non-interactive.{$url}",.$ign
3b380 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 30 29 20 oredOutput.);..if.($exit.===.0).
3b3a0 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 20 21 3d {...return.true;.}..if.(false.!=
3b3c0 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 65 74 45 =.stripos($processExecutor->getE
3b3e0 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 66 61 69 rrorOutput(),.'authorization.fai
3b400 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 0a 72 65 led:')).{.....return.true;.}..re
3b420 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 65 64 20 turn.false;.}.........protected.
3b440 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 24 75 72 static.function.normalizeUrl($ur
3b460 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 69 66 20 l).{.$fs.=.new.Filesystem();.if.
3b480 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 0a 72 65 ($fs->isAbsolutePath($url)).{.re
3b4a0 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 27 5c 5c turn.'file://'...strtr($url,.'\\
3b4c0 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 7d 0a 3c 3f 70 ',.'/');.}..return.$url;.}.}.<?p
3b4e0 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
3b500 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 4a \Repository\Vcs;..use.Composer\J
3b520 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 6c 5c son\JsonFile;.use.Composer\Util\
3b540 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 55 74 ProcessExecutor;.use.Composer\Ut
3b560 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 5c 49 il\Filesystem;.use.Composer\IO\I
3b580 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 76 65 72 20 OInterface;.....class.GitDriver.
3b5a0 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 74 extends.VcsDriver.{.protected.$t
3b5c0 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 63 ags;.protected.$branches;.protec
3b5e0 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 24 ted.$rootIdentifier;.protected.$
3b600 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 20 repoDir;.protected.$infoCache.=.
3b620 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 69 array();.....public.function.ini
3b640 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 55 tialize().{.if.(static::isLocalU
3b660 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 72 rl($this->url)).{.$this->repoDir
3b680 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 74 .=.str_replace('file://',.'',.$t
3b6a0 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 65 70 6f 44 his->url);.}.else.{.$this->repoD
3b6c0 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 68 6f 6d 65 27 29 20 ir.=.$this->config->get('home').
3b6e0 2e 20 27 2f 63 61 63 68 65 2e 67 69 74 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ..'/cache.git/'...preg_replace('
3b700 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 72 6c 29 {[^a-z0-9.]}i',.'-',.$this->url)
3b720 20 2e 20 27 2f 27 3b 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 ...'/';....if.(is_dir($this->rep
3b740 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 73 73 2d 3e 65 oDir).&&.0.===.$this->process->e
3b760 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 xecute('git.remote',.$output,.$t
3b780 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 24 74 68 69 73 his->repoDir)).{.if.(0.!==.$this
3b7a0 2d 3e 70 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 75 ->process->execute('git.remote.u
3b7c0 70 64 61 74 65 20 2d 2d 70 72 75 6e 65 20 6f 72 69 67 69 6e 27 2c 20 24 6f 75 74 70 75 74 2c 20 pdate.--prune.origin',.$output,.
3b7e0 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 $this->repoDir)).{.$this->io->wr
3b800 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 ite('<error>Failed.to.update.'.$
3b820 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e this->url.',.package.information
3b840 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 .from.this.repository.may.be.out
3b860 64 61 74 65 64 20 28 27 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f dated.('.$this->process->getErro
3b880 72 4f 75 74 70 75 74 28 29 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 rOutput().')</error>');.}.}.else
3b8a0 20 7b 0a 0a 20 24 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 .{...$fs.=.new.Filesystem();.$fs
3b8c0 2d 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 ->removeDirectory($this->repoDir
3b8e0 29 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 );..$command.=.sprintf('git.clon
3b900 65 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 e.--mirror.%s.%s',.escapeshellar
3b920 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 67 28 24 74 g($this->url),.escapeshellarg($t
3b940 68 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 his->repoDir));.if.(0.!==.$this-
3b960 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 6f 75 74 >process->execute($command,.$out
3b980 70 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 put)).{.$output.=.$this->process
3b9a0 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 3d 20 24 ->getErrorOutput();..if.(0.!==.$
3b9c0 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 20 2d 2d 76 65 this->process->execute('git.--ve
3b9e0 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 6f 77 rsion',.$ignoredOutput)).{.throw
3ba00 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 20 74 .new.\RuntimeException('Failed.t
3ba20 6f 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 o.clone.'.$this->url.',.git.was.
3ba40 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 74 not.found,.check.that.it.is.inst
3ba60 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 22 alled.and.in.your.PATH.env.'..."
3ba80 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 72 \n\n"...$this->process->getError
3baa0 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 65 Output());.}..throw.new.\Runtime
3bac0 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 68 Exception('Failed.to.clone.'.$th
3bae0 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 67 is->url.',.could.not.read.packag
3bb00 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 0a es.from.it'..."\n\n"..$output);.
3bb20 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 3e }.}.}..$this->getTags();.$this->
3bb40 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 63 getBranches();.}.....public.func
3bb60 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 6e tion.getRootIdentifier().{.if.(n
3bb80 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 7b ull.===.$this->rootIdentifier).{
3bba0 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 27 6d 61 73 74 65 72 .$this->rootIdentifier.=.'master
3bbc0 27 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 ';....$this->process->execute('g
3bbe0 69 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 it.branch.--no-color',.$output,.
3bc00 24 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 $this->repoDir);.$branches.=.$th
3bc20 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 29 is->process->splitLines($output)
3bc40 3b 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 ;.if.(!in_array('*.master',.$bra
3bc60 6e 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 nches)).{.foreach.($branches.as.
3bc80 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 70 72 65 67 5f 6d $branch).{.if.($branch.&&.preg_m
3bca0 61 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 atch('{^\*.+(\S+)}',.$branch,.$m
3bcc0 61 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 atch)).{.$this->rootIdentifier.=
3bce0 20 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 .$match[1];.break;.}.}.}.}..retu
3bd00 72 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 rn.$this->rootIdentifier;.}.....
3bd20 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 72 65 74 75 72 public.function.getUrl().{.retur
3bd40 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 66 75 6e 63 74 n.$this->url;.}.....public.funct
3bd60 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 7b 0a 24 6c 61 ion.getSource($identifier).{.$la
3bd80 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 65 72 2c 20 bel.=.array_search($identifier,.
3bda0 28 61 72 72 61 79 29 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 (array).$this->tags).?:.$identif
3bdc0 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 67 69 ier;..return.array('type'.=>.'gi
3bde0 74 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 t',.'url'.=>.$this->getUrl(),.'r
3be00 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c eference'.=>.$label);.}.....publ
3be20 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)
3be40 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
3be60 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
3be80 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 6e entifier).{.if.(!isset($this->in
3bea0 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 74 68 69 73 2d 3e foCache[$identifier])).{.$this->
3bec0 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 68 process->execute(sprintf('git.sh
3bee0 6f 77 20 25 73 3a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 65 6c ow.%s:composer.json',.escapeshel
3bf00 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 larg($identifier)),.$composer,.$
3bf20 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 70 this->repoDir);..if.(!trim($comp
3bf40 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 20 oser)).{.return;.}..$composer.=.
3bf60 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 29 3b 0a JsonFile::parseJson($composer);.
3bf80 0a 69 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 .if.(!isset($composer['time'])).
3bfa0 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
3bfc0 66 28 27 67 69 74 20 6c 6f 67 20 2d 31 20 2d 2d 66 6f 72 6d 61 74 3d 25 25 61 74 20 25 73 27 2c f('git.log.-1.--format=%%at.%s',
3bfe0 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 72 29 29 2c 20 24 .escapeshellarg($identifier)),.$
3c000 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 64 61 74 65 20 3d output,.$this->repoDir);.$date.=
3c020 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 .new.\DateTime('@'.trim($output)
3c040 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 2d 3e 66 6f );.$composer['time'].=.$date->fo
3c060 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 2d 3e 69 6e rmat('Y-m-d.H:i:s');.}.$this->in
3c080 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 6f 73 65 72 foCache[$identifier].=.$composer
3c0a0 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 5b 24 69 64 ;.}..return.$this->infoCache[$id
3c0c0 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 74 69 6f 6e entifier];.}.....public.function
3c0e0 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 68 69 73 2d .getTags().{.if.(null.===.$this-
3c100 3e 74 61 67 73 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 >tags).{.$this->process->execute
3c120 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f ('git.tag',.$output,.$this->repo
3c140 44 69 72 29 3b 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 3e Dir);.$output.=.$this->process->
3c160 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 splitLines($output);.$this->tags
3c180 20 3d 20 24 6f 75 74 70 75 74 20 3f 20 61 72 72 61 79 5f 63 6f 6d 62 69 6e 65 28 24 6f 75 74 70 .=.$output.?.array_combine($outp
3c1a0 75 74 2c 20 24 6f 75 74 70 75 74 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 ut,.$output).:.array();.}..retur
3c1c0 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 20 66 75 6e 63 n.$this->tags;.}.....public.func
3c1e0 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 6c 6c 20 3d 3d tion.getBranches().{.if.(null.==
3c200 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d =.$this->branches).{.$branches.=
3c220 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 63 75 .array();..$this->process->execu
3c240 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 te('git.branch.--no-color.--no-a
3c260 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 bbrev.-v',.$output,.$this->repoD
3c280 69 72 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 2d 3e 73 70 ir);.foreach.($this->process->sp
3c2a0 6c 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 litLines($output).as.$branch).{.
3c2c0 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 20 2a if.($branch.&&.!preg_match('{^.*
3c2e0 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 28 70 [^/]+/HEAD.}',.$branch)).{.if.(p
3c300 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b reg_match('{^(?:\*.)?.*(?:[^/.]+
3c320 3f 2f 29 3f 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 20 24 62 ?/)?(\S+).*([a-f0-9]+)..*$}',.$b
3c340 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 6d 61 74 ranch,.$match)).{.$branches[$mat
3c360 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 68 69 73 ch[1]].=.$match[2];.}.}.}..$this
3c380 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 74 75 72 ->branches.=.$branches;.}..retur
3c3a0 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.
3c3c0 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
3c3e0 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).{
3c400 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 67 69 74 .if.(preg_match('#(^git://|\.git
3c420 24 7c 67 69 74 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 29 23 69 27 $|git@|//git\.|//github.com/)#i'
3c440 2c 20 24 75 72 6c 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 ,.$url)).{.return.true;.}....if.
3c460 28 73 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 24 70 72 (static::isLocalUrl($url)).{.$pr
3c480 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 28 29 3b 0a 24 ocess.=.new.ProcessExecutor();.$
3c4a0 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 2c 20 27 27 2c url.=.str_replace('file://',.'',
3c4c0 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 63 75 74 65 28 .$url);...if.($process->execute(
3c4e0 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 3d 3d 20 30 29 'git.tag',.$output,.$url).===.0)
3c500 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 64 65 65 70 29 .{.return.true;.}.}..if.(!$deep)
3c520 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 6e 20 66 61 6c .{.return.false;.}....return.fal
3c540 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 6d 65 73 70 61 se;.}.}.<?php............namespa
3c560 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 0a 0a 75 73 65 ce.Composer\Repository\Vcs;..use
3c580 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 0a 0a 0a 0a 69 6e .Composer\IO\IOInterface;.....in
3c5a0 74 65 72 66 61 63 65 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a terface.VcsDriverInterface.{....
3c5c0 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 65 28 29 3b 0a 0a 0a public.function.initialize();...
3c5e0 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 72 .....public.function.getComposer
3c600 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a Information($identifier);.......
3c620 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 69 65 public.function.getRootIdentifie
3c640 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 65 74 42 72 r();.......public.function.getBr
3c660 61 6e 63 68 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 anches();.......public.function.
3c680 67 65 74 54 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 getTags();......public.function.
3c6a0 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 getDist($identifier);......publi
3c6c0 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 72 c.function.getSource($identifier
3c6e0 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 55 72 6c 28 );.......public.function.getUrl(
3c700 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 68 61 73 43 6f );.........public.function.hasCo
3c720 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a mposerFile($identifier);........
3c740 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 74 ..public.static.function.support
3c760 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 3d s(IOInterface.$io,.$url,.$deep.=
3c780 20 66 61 6c 73 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 .false);.}.<?php............name
3c7a0 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 0a 0a space.Composer\Repository\Vcs;..
3c7c0 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 75 73 65 20 use.Composer\Json\JsonFile;.use.
3c7e0 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 0a 0a 0a 0a 63 6c 61 Composer\IO\IOInterface;.....cla
3c800 73 73 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 ss.GitBitbucketDriver.extends.Vc
3c820 73 44 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 sDriver.implements.VcsDriverInte
3c840 72 66 61 63 65 0a 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 rface.{.protected.$owner;.protec
3c860 74 65 64 20 24 72 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 ted.$repository;.protected.$tags
3c880 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 63 74 65 64 ;.protected.$branches;.protected
3c8a0 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 24 69 6e 66 .$rootIdentifier;.protected.$inf
3c8c0 6f 43 61 63 68 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 oCache.=.array();.....public.fun
3c8e0 63 74 69 6f 6e 20 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 ction.initialize().{.preg_match(
3c900 27 23 5e 68 74 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 '#^https://bitbucket\.org/([^/]+
3c920 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 )/(.+?)\.git$#',.$this->url,.$ma
3c940 74 63 68 29 3b 0a 24 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 tch);.$this->owner.=.$match[1];.
3c960 24 74 68 69 73 2d 3e 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 $this->repository.=.$match[2];.$
3c980 74 68 69 73 2d 3e 6f 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 this->originUrl.=.'bitbucket.org
3c9a0 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 65 74 52 6f 6f 74 ';.}.....public.function.getRoot
3c9c0 49 64 65 6e 74 69 66 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 Identifier().{.if.(null.===.$thi
3c9e0 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 70 6f 44 61 74 61 20 3d s->rootIdentifier).{.$repoData.=
3ca00 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 43 .JsonFile::parseJson($this->getC
3ca20 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f ontents($this->getScheme()...':/
3ca40 2f 61 70 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 /api.bitbucket.org/1.0/repositor
3ca60 69 65 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 ies/'.$this->owner.'/'.$this->re
3ca80 70 6f 73 69 74 6f 72 79 29 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 pository));.$this->rootIdentifie
3caa0 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 r.=.!empty($repoData['main_branc
3cac0 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 h']).?.$repoData['main_branch'].
3cae0 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f :.'master';.}..return.$this->roo
3cb00 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 74 69 tIdentifier;.}.....public.functi
3cb20 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 6c 3b on.getUrl().{.return.$this->url;
3cb40 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 63 65 .}.....public.function.getSource
3cb60 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 ($identifier).{.$label.=.array_s
3cb80 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 54 61 67 earch($identifier,.$this->getTag
3cba0 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 s()).?:.$identifier;..return.arr
3cbc0 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 3d 3e 20 24 74 68 ay('type'.=>.'git',.'url'.=>.$th
3cbe0 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 20 24 6c 61 is->getUrl(),.'reference'.=>.$la
3cc00 62 65 6c 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 bel);.}.....public.function.getD
3cc20 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 ist($identifier).{.$label.=.arra
3cc40 79 5f 73 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 y_search($identifier,.$this->get
3cc60 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 Tags()).?:.$identifier;.$url.=.$
3cc80 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 75 63 6b 65 this->getScheme()...'://bitbucke
3cca0 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 69 73 2d 3e t.org/'.$this->owner.'/'.$this->
3ccc0 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 repository.'/get/'.$label.'.zip'
3cce0 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 69 70 27 2c ;..return.array('type'.=>.'zip',
3cd00 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'.=>.$
3cd20 6c 61 62 65 6c 2c 20 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 label,.'shasum'.=>.'');.}.....pu
3cd40 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 49 6e 66 6f 72 6d 61 blic.function.getComposerInforma
3cd60 74 69 6f 6e 28 24 69 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 tion($identifier).{.if.(!isset($
3cd80 74 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 this->infoCache[$identifier])).{
3cda0 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 6e 74 65 6e 74 73 28 .$composer.=.$this->getContents(
3cdc0 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 75 63 6b $this->getScheme()...'://bitbuck
3cde0 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 69 73 2d et.org/'.$this->owner.'/'.$this-
3ce00 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 69 66 69 65 72 2e >repository.'/raw/'.$identifier.
3ce20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 '/composer.json');.if.(!$compose
3ce40 72 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 20 4a 73 6f 6e r).{.return;.}..$composer.=.Json
3ce60 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 29 3b 0a 0a 69 66 20 File::parseJson($composer);..if.
3ce80 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 24 63 (!isset($composer['time'])).{.$c
3cea0 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 6f 6e 28 24 hangeset.=.JsonFile::parseJson($
3cec0 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 this->getContents($this->getSche
3cee0 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 2e 30 me()...'://api.bitbucket.org/1.0
3cf00 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 2f 27 /repositories/'.$this->owner.'/'
3cf20 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f .$this->repository.'/changesets/
3cf40 27 2e 24 69 64 65 6e 74 69 66 69 65 72 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 '.$identifier));.$composer['time
3cf60 27 5d 20 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 '].=.$changeset['timestamp'];.}.
3cf80 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 69 65 72 5d 20 3d 20 $this->infoCache[$identifier].=.
3cfa0 24 63 6f 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 $composer;.}..return.$this->info
3cfc0 43 61 63 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 Cache[$identifier];.}.....public
3cfe0 20 66 75 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 .function.getTags().{.if.(null.=
3d000 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 ==.$this->tags).{.$tagsData.=.Js
3d020 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 43 6f 6e 74 onFile::parseJson($this->getCont
3d040 65 6e 74 73 28 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 ents($this->getScheme()...'://ap
3d060 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
3d080 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
3d0a0 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 29 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 itory.'/tags'));.$this->tags.=.a
3d0c0 72 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 rray();.foreach.($tagsData.as.$t
3d0e0 61 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 ag.=>.$data).{.$this->tags[$tag]
3d100 20 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 .=.$data['raw_node'];.}.}..retur
3d120 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 20 66 75 6e 63 n.$this->tags;.}.....public.func
3d140 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 6c 6c 20 3d 3d tion.getBranches().{.if.(null.==
3d160 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 44 61 74 61 =.$this->branches).{.$branchData
3d180 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 65 .=.JsonFile::parseJson($this->ge
3d1a0 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 tContents($this->getScheme()...'
3d1c0 3a 2f 2f 61 70 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 ://api.bitbucket.org/1.0/reposit
3d1e0 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 74 68 69 73 2d 3e ories/'.$this->owner.'/'.$this->
3d200 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 29 29 3b 0a 24 74 68 69 73 2d repository.'/branches'));.$this-
3d220 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 62 >branches.=.array();.foreach.($b
3d240 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 7b ranchData.as.$branch.=>.$data).{
3d260 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 74 .$this->branches[$branch].=.$dat
3d280 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 73 a['raw_node'];.}.}..return.$this
3d2a0 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 20 ->branches;.}.....public.static.
3d2c0 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 69 function.supports(IOInterface.$i
3d2e0 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 70 o,.$url,.$deep.=.false).{.if.(!p
3d300 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 2e reg_match('#^https://bitbucket\.
3d320 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 29 org/([^/]+)/(.+?)\.git$#',.$url)
3d340 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 73 ).{.return.false;.}..if.(!extens
3d360 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 6f ion_loaded('openssl')).{.if.($io
3d380 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 69 ->isVerbose()).{.$io->write('Ski
3d3a0 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 27 pping.Bitbucket.git.driver.for.'
3d3c0 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 20 .$url.'.because.the.OpenSSL.PHP.
3d3e0 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 75 extension.is.missing.');.}..retu
3d400 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 3f rn.false;.}..return.true;.}.}.<?
3d420 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
3d440 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\
3d460 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 75 Downloader\TransportException;.u
3d480 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 72 se.Composer\Config;.use.Composer
3d4a0 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 55 74 \IO\IOInterface;.use.Composer\Ut
3d4c0 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 72 il\ProcessExecutor;.use.Composer
3d4e0 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 61 62 \Util\RemoteFilesystem;.......ab
3d500 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 65 6d 65 6e 74 stract.class.VcsDriver.implement
3d520 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 63 74 65 64 s.VcsDriverInterface.{.protected
3d540 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 3b 0a 70 72 6f .$url;.protected.$originUrl;.pro
3d560 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 67 3b 0a 70 tected.$io;.protected.$config;.p
3d580 72 6f 74 65 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 rotected.$process;.protected.$re
3d5a0 6d 6f 74 65 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 moteFilesystem;...........final.
3d5c0 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 75 72 6c public.function.__construct($url
3d5e0 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 24 63 6f 6e 66 69 ,.IOInterface.$io,.Config.$confi
3d600 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 75 g,.ProcessExecutor.$process.=.nu
3d620 6c 6c 2c 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 ll,.$remoteFilesystem.=.null).{.
3d640 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 3e 6f 72 69 67 69 6e $this->url.=.$url;.$this->origin
3d660 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 Url.=.$url;.$this->io.=.$io;.$th
3d680 69 73 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 is->config.=.$config;.$this->pro
3d6a0 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 73 45 78 cess.=.$process.?:.new.ProcessEx
3d6c0 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 ecutor;.$this->remoteFilesystem.
3d6e0 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 6d 6f 74 =.$remoteFilesystem.?:.new.Remot
3d700 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 63 20 66 eFilesystem($io);.}.....public.f
3d720 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 74 69 66 unction.hasComposerFile($identif
3d740 69 65 72 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 ier).{.try.{.return.(Boolean).$t
3d760 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
3d780 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
3d7a0 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;.}..
3d7c0 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
3d7e0 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
3d800 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
3d820 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
3d840 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
3d860 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
3d880 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
3d8a0 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 ,.false);.}..protected.static.fu
3d8c0 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 65 74 75 72 6e nction.isLocalUrl($url).{.return
3d8e0 20 28 42 6f 6f 6c 65 61 6e 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 3a 2f .(Boolean).preg_match('{^(file:/
3d900 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 7d 0a /|/|[a-z]:[\\\\/])}i',.$url);.}.
3d920 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
3d940 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 6f poser\Repository\Vcs;..use.Compo
3d960 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 72 5c ser\Json\JsonFile;.use.Composer\
3d980 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 70 6f 73 Util\ProcessExecutor;.use.Compos
3d9a0 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 48 67 44 er\IO\IOInterface;.....class.HgD
3d9c0 72 69 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 river.extends.VcsDriver.{.protec
3d9e0 74 65 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 ted.$tags;.protected.$branches;.
3da00 70 72 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 protected.$rootIdentifier;.prote
3da20 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 0a 0a 0a 0a 0a 70 cted.$infoCache.=.array();.....p
3da40 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 24 74 ublic.function.initialize().{.$t
3da60 68 69 73 2d 3e 74 6d 70 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 his->tmpDir.=.$this->config->get
3da80 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 61 63 68 65 2e 68 67 2f 27 20 2e 20 70 72 65 67 5f 72 ('home')...'/cache.hg/'...preg_r
3daa0 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 eplace('{[^a-z0-9]}i',.'-',.$thi
3dac0 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 s->url)...'/';..if.(is_dir($this
3dae0 2d 3e 74 6d 70 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ->tmpDir)).{.$this->process->exe
3db00 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 70 75 6c 6c 20 2d cute(sprintf('cd.%s.&&.hg.pull.-
3db20 75 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 u',.escapeshellarg($this->tmpDir
3db40 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 64 69 )),.$output);.}.else.{.$dir.=.di
3db60 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 rname($this->tmpDir);.if.(!is_di
3db80 72 28 24 64 69 72 29 29 20 7b 0a 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 r($dir)).{.mkdir($dir,.0777,.tru
3dba0 65 29 3b 0a 7d 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 e);.}.$this->process->execute(sp
3dbc0 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c rintf('cd.%s.&&.hg.clone.%s.%s',
3dbe0 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 64 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 .escapeshellarg($dir),.escapeshe
3dc00 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
3dc20 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a g($this->tmpDir)),.$output);.}..
3dc40 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 65 74 42 72 61 6e $this->getTags();.$this->getBran
3dc60 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 69 6f 6e 20 67 65 ches();.}.....public.function.ge
3dc80 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 74 6d 70 44 69 72 20 3d 20 65 73 tRootIdentifier().{.$tmpDir.=.es
3dca0 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 capeshellarg($this->tmpDir);.if.
3dcc0 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 66 69 65 72 29 (null.===.$this->rootIdentifier)
3dce0 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 28 73 70 72 69 6e .{.$this->process->execute(sprin
3dd00 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 tf('cd.%s.&&.hg.tip.--template."
3dd20 7b 6e 6f 64 65 7d 22 27 2c 20 24 74 6d 70 44 69 72 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 6f {node}"',.$tmpDir),.$output);.$o
3dd40 75 74 70 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 utput.=.$this->process->splitLin
3dd60 65 73 28 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 es($output);.$this->rootIdentifi
3dd80 65 72 20 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 er.=.$output[0];.}..return.$this
3dda0 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 62 6c 69 63 20 66 ->rootIdentifier;.}.....public.f
3ddc0 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 24 74 68 69 73 2d unction.getUrl().{.return.$this-
3dde0 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 6e 20 67 65 74 53 >url;.}.....public.function.getS
3de00 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 ource($identifier).{.$label.=.ar
3de20 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 28 61 72 72 61 79 29 20 ray_search($identifier,.(array).
3de40 24 74 68 69 73 2d 3e 74 61 67 73 29 20 3f 20 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 $this->tags).?.:.$identifier;..r
3de60 65 74 75 72 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 eturn.array('type'.=>.'hg',.'url
3de80 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 66 65 72 65 6e 63 65 '.=>.$this->getUrl(),.'reference
3dea0 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 '.=>.$label);.}.....public.funct
3dec0 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 74 75 72 ion.getDist($identifier).{.retur
3dee0 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 67 65 n.null;.}.....public.function.ge
3df00 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 69 65 72 tComposerInformation($identifier
3df20 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 68 65 5b ).{.if.(!isset($this->infoCache[
3df40 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d $identifier])).{.$this->process-
3df60 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 63 61 >execute(sprintf('cd.%s.&&.hg.ca
3df80 74 20 2d 72 20 25 73 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 t.-r.%s.composer.json',.escapesh
3dfa0 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 ellarg($this->tmpDir),.escapeshe
3dfc0 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b llarg($identifier)),.$composer);
3dfe0 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
3e000 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
3e020 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f Json($composer);..if.(!isset($co
3e040 6d 70 6f 73 65 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 mposer['time'])).{.$this->proces
3e060 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 s->execute(sprintf('cd.%s.&&.hg.
3e080 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 64 61 74 65 log.--template."{date|rfc822date
3e0a0 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 74 68 69 73 2d }".-r.%s',.escapeshellarg($this-
3e0c0 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 >tmpDir),.escapeshellarg($identi
3e0e0 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 fier)),.$output);.$date.=.new.\D
3e100 61 74 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 ateTime(trim($output));.$compose
3e120 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 64 r['time'].=.$date->format('Y-m-d
3e140 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 .H:i:s');.}.$this->infoCache[$id
3e160 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 72 65 74 75 72 6e entifier].=.$composer;.}..return
3e180 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 69 65 72 5d 3b 0a .$this->infoCache[$identifier];.
3e1a0 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 61 67 73 28 29 0a }.....public.function.getTags().
3e1c0 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 29 20 7b 0a 24 74 {.if.(null.===.$this->tags).{.$t
3e1e0 61 67 73 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 ags.=.array();..$this->process->
3e200 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 74 61 67 execute(sprintf('cd.%s.&&.hg.tag
3e220 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 s',.escapeshellarg($this->tmpDir
3e240 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 )),.$output);.foreach.($this->pr
3e260 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 74 ocess->splitLines($output).as.$t
3e280 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e ag).{.if.($tag.&&.preg_match('(^
3e2a0 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 74 61 67 2c 20 24 6d ([^\s]+)\s+\d+:(.*)$)',.$tag,.$m
3e2c0 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 atch)).{.$tags[$match[1]].=.$mat
3e2e0 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a ch[2];.}.}.unset($tags['tip']);.
3e300 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 .$this->tags.=.$tags;.}..return.
3e320 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 69 $this->tags;.}.....public.functi
3e340 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 20 on.getBranches().{.if.(null.===.
3e360 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 $this->branches).{.$branches.=.a
3e380 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 63 75 74 65 rray();..$this->process->execute
3e3a0 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 62 72 61 6e 63 68 65 73 27 2c (sprintf('cd.%s.&&.hg.branches',
3e3c0 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 2c .escapeshellarg($this->tmpDir)),
3e3e0 20 24 6f 75 74 70 75 74 29 3b 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
3e400 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 72 61 6e ss->splitLines($output).as.$bran
3e420 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 63 68 28 ch).{.if.($branch.&&.preg_match(
3e440 27 28 5e 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
3e460 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 6d 61 74 63 68 5b ch,.$match)).{.$branches[$match[
3e480 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 72 61 1]].=.$match[2];.}.}..$this->bra
3e4a0 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 nches.=.$branches;.}..return.$th
3e4c0 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 73 74 61 74 69 is->branches;.}.....public.stati
3e4e0 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 65 20 c.function.supports(IOInterface.
3e500 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 0a 69 66 20 28 $io,.$url,.$deep.=.false).{.if.(
3e520 70 72 65 67 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 preg_match('#(^(?:https?|ssh)://
3e540 28 3f 3a 5b 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 (?:[^@]@)?bitbucket.org|https://
3e560 28 3f 3a 2e 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 (?:.*?)\.kilnhg.com)#i',.$url)).
3e580 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a {.return.true;.}..if.(!$deep).{.
3e5a0 72 65 74 75 72 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 return.false;.}..$processExecuto
3e5c0 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 r.=.new.ProcessExecutor();.$exit
3e5e0 20 3d 20 24 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 73 70 72 .=.$processExecutor->execute(spr
3e600 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 69 64 65 6e 74 69 66 79 20 25 73 27 2c 20 intf('cd.%s.&&.hg.identify.%s',.
3e620 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 escapeshellarg(sys_get_temp_dir(
3e640 29 29 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 69 67 6e 6f )),.escapeshellarg($url)),.$igno
3e660 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 0a 7d 0a 3c red);..return.$exit.===.0;.}.}.<
3e680 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
3e6a0 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
3e6c0 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;.
3e6e0 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 75 73 65 20 use.Composer\Json\JsonFile;.use.
3e700 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 49 4f 5c Composer\Cache;.use.Composer\IO\
3e720 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
3e740 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 47 69 74 48 75 emoteFilesystem;.....class.GitHu
3e760 62 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 7b 0a 70 72 6f 74 bDriver.extends.VcsDriver.{.prot
3e780 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a ected.$cache;.protected.$owner;.
3e7a0 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 protected.$repository;.protected
3e7c0 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 6f .$tags;.protected.$branches;.pro
3e7e0 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 65 tected.$rootIdentifier;.protecte
3e800 64 20 24 68 61 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 d.$hasIssues;.protected.$infoCac
3e820 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 he.=.array();.protected.$isPriva
3e840 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 te.=.false;.......protected.$git
3e860 44 72 69 76 65 72 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 Driver;.....public.function.init
3e880 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 28 3f 3a 28 3f 3a 68 ialize().{.preg_match('#^(?:(?:h
3e8a0 74 74 70 73 3f 7c 67 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 ttps?|git)://github\.com/|git@gi
3e8c0 74 68 75 62 5c 2e 63 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 thub\.com:)([^/]+)/(.+?)(?:\.git
3e8e0 29 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 74 68 69 )?$#',.$this->url,.$match);.$thi
3e900 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 72 65 70 s->owner.=.$match[1];.$this->rep
3e920 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 72 69 67 ository.=.$match[2];.$this->orig
3e940 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 24 74 68 69 73 2d 3e 63 61 63 inUrl.=.'github.com';.$this->cac
3e960 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-
3e980 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 61 63 68 65 2e 67 69 74 >config->get('home').'/cache.git
3e9a0 68 75 62 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 hub/'.$this->owner.'/'.$this->re
3e9c0 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 74 49 64 65 6e pository);..$this->fetchRootIden
3e9e0 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 74 69 6f 6e 20 tifier();.}.....public.function.
3ea00 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 74 68 69 73 2d getRootIdentifier().{.if.($this-
3ea20 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 74 44 >gitDriver).{.return.$this->gitD
3ea40 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 0a 7d 0a 0a 72 river->getRootIdentifier();.}..r
3ea60 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 3b 0a 7d 0a 0a eturn.$this->rootIdentifier;.}..
3ea80 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 69 66 ...public.function.getUrl().{.if
3eaa0 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 6e 20 24 74 68 .($this->gitDriver).{.return.$th
3eac0 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 0a 72 65 74 75 is->gitDriver->getUrl();.}..retu
3eae0 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 66 75 6e 63 rn.$this->url;.}.....public.func
3eb00 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 7b 0a 69 66 tion.getSource($identifier).{.if
3eb20 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 6e 20 24 74 68 .($this->gitDriver).{.return.$th
3eb40 69 73 2d 3e 67 69 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 is->gitDriver->getSource($identi
3eb60 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 fier);.}.$label.=.array_search($
3eb80 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a identifier,.$this->getTags()).?:
3eba0 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 .$identifier;.if.($this->isPriva
3ebc0 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 te).{.....$url.=.$this->generate
3ebe0 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d SshUrl();.}.else.{.$url.=.$this-
3ec00 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 >getUrl();.}..return.array('type
3ec20 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 '.=>.'git',.'url'.=>.$url,.'refe
3ec40 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rence'.=>.$label);.}.....public.
3ec60 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 0a 7b 0a function.getDist($identifier).{.
3ec80 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 6e 20 24 if.($this->gitDriver).{.return.$
3eca0 74 68 69 73 2d 3e 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 this->gitDriver->getDist($identi
3ecc0 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 fier);.}.$label.=.array_search($
3ece0 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a identifier,.$this->getTags()).?:
3ed00 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 67 69 .$identifier;.$url.=.'https://gi
3ed20 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 thub.com/'.$this->owner.'/'.$thi
3ed40 73 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 6c 61 62 65 6c s->repository.'/zipball/'.$label
3ed60 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 69 70 27 2c ;..return.array('type'.=>.'zip',
3ed80 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'.=>.$
3eda0 6c 61 62 65 6c 2c 20 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 label,.'shasum'.=>.'');.}.....pu
3edc0 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 49 6e 66 6f 72 6d 61 blic.function.getComposerInforma
3ede0 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 tion($identifier).{.if.($this->g
3ee00 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 74 44 72 69 itDriver).{.return.$this->gitDri
3ee20 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 69 64 65 ver->getComposerInformation($ide
3ee40 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 ntifier);.}..if.(preg_match('{[a
3ee60 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 -f0-9]{40}}i',.$identifier).&&.$
3ee80 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 65 6e 74 69 res.=.$this->cache->read($identi
3eea0 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 fier)).{.$this->infoCache[$ident
3eec0 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 ifier].=.JsonFile::parseJson($re
3eee0 73 29 3b 0a 7d 0a 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 s);.}..if.(!isset($this->infoCac
3ef00 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 70 6f he[$identifier])).{.try.{.$compo
3ef20 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 68 74 74 70 73 3a ser.=.$this->getContents('https:
3ef40 2f 2f 72 61 77 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e //raw.github.com/'.$this->owner.
3ef60 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 27 2e 24 69 64 65 6e 74 '/'.$this->repository.'/'.$ident
3ef80 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 7d 20 63 61 74 63 68 ifier.'/composer.json');.}.catch
3efa0 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 34 .(TransportException.$e).{.if.(4
3efc0 30 34 20 21 3d 3d 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 04.!==.$e->getCode()).{.throw.$e
3efe0 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 24 ;.}..$composer.=.false;.}..if.($
3f000 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 composer).{.$composer.=.JsonFile
3f020 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 21 69 73 ::parseJson($composer);..if.(!is
3f040 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 24 63 6f 6d 6d 69 set($composer['time'])).{.$commi
3f060 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
3f080 65 74 43 6f 6e 74 65 6e 74 73 28 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 etContents('https://api.github.c
3f0a0 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 2f 27 2e 24 74 68 69 om/repos/'.$this->owner.'/'.$thi
3f0c0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 74 73 2f 27 2e 24 69 64 65 6e 74 s->repository.'/commits/'.$ident
3f0e0 69 66 69 65 72 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 63 6f ifier));.$composer['time'].=.$co
3f100 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 mmit['commit']['committer']['dat
3f120 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 e'];.}.if.(!isset($composer['sup
3f140 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 port']['source'])).{.$label.=.ar
3f160 72 61 79 5f 73 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 ray_search($identifier,.$this->g
3f180 65 74 54 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 etTags()).?:.array_search($ident
3f1a0 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 ifier,.$this->getBranches()).?:.
3f1c0 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 $identifier;.$composer['support'
3f1e0 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 ]['source'].=.sprintf('https://g
3f200 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d ithub.com/%s/%s/tree/%s',.$this-
3f220 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 2c 20 24 6c 61 62 65 >owner,.$this->repository,.$labe
3f240 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 l);.}.if.(!isset($composer['supp
3f260 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 ort']['issues']).&&.$this->hasIs
3f280 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 sues).{.$composer['support']['is
3f2a0 73 75 65 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 sues'].=.sprintf('https://github
3f2c0 2e 63 6f 6d 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 .com/%s/%s/issues',.$this->owner
3f2e0 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 ,.$this->repository);.}.}..if.(p
3f300 72 65 67 5f 6d 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 reg_match('{[a-f0-9]{40}}i',.$id
3f320 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 entifier)).{.$this->cache->write
3f340 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f ($identifier,.json_encode($compo
3f360 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e ser));.}..$this->infoCache[$iden
3f380 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 tifier].=.$composer;.}..return.$
3f3a0 74 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 3b 0a 7d 0a this->infoCache[$identifier];.}.
3f3c0 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 0a 7b 0a ....public.function.getTags().{.
3f3e0 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 6e 20 24 if.($this->gitDriver).{.return.$
3f400 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 69 66 this->gitDriver->getTags();.}.if
3f420 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 44 .(null.===.$this->tags).{.$tagsD
3f440 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-
3f460 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 >getContents('https://api.github
3f480 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 2f 27 2e 24 74 .com/repos/'.$this->owner.'/'.$t
3f4a0 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 29 29 3b 0a 24 74 68 69 73 his->repository.'/tags'));.$this
3f4c0 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 ->tags.=.array();.foreach.($tags
3f4e0 44 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 Data.as.$tag).{.$this->tags[$tag
3f500 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 ['name']].=.$tag['commit']['sha'
3f520 5d 3b 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 0a 0a 0a ];.}.}..return.$this->tags;.}...
3f540 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 29 0a ..public.function.getBranches().
3f560 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 6e {.if.($this->gitDriver).{.return
3f580 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 .$this->gitDriver->getBranches()
3f5a0 3b 0a 7d 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
3f5c0 29 20 7b 0a 24 62 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 ).{.$branchData.=.JsonFile::pars
3f5e0 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 27 68 74 74 70 73 3a eJson($this->getContents('https:
3f600 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 68 69 73 2d 3e //api.github.com/repos/'.$this->
3f620 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 67 69 owner.'/'.$this->repository.'/gi
3f640 74 2f 72 65 66 73 2f 68 65 61 64 73 27 29 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 t/refs/heads'));.$this->branches
3f660 20 3d 20 61 72 72 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 .=.array();.foreach.($branchData
3f680 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 62 .as.$branch).{.$name.=.substr($b
3f6a0 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 ranch['ref'],.11);.$this->branch
3f6c0 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 73 es[$name].=.$branch['object']['s
3f6e0 68 61 27 5d 3b 0a 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 ha'];.}.}..return.$this->branche
3f700 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 6e 63 74 69 6f 6e 20 s;.}.....public.static.function.
3f720 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 20 24 75 72 6c 2c 20 supports(IOInterface.$io,.$url,.
3f740 24 64 65 65 70 20 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 $deep.=.false).{.if.(!preg_match
3f760 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f ('#^((?:https?|git)://github\.co
3f780 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f m/|git@github\.com:)([^/]+)/(.+?
3f7a0 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 )(?:\.git)?$#',.$url)).{.return.
3f7c0 66 61 6c 73 65 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 false;.}..if.(!extension_loaded(
3f7e0 27 6f 70 65 6e 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 'openssl')).{.if.($io->isVerbose
3f800 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 75 ()).{.$io->write('Skipping.GitHu
3f820 62 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 68 b.driver.for.'.$url.'.because.th
3f840 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 69 e.OpenSSL.PHP.extension.is.missi
3f860 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 72 ng.');.}..return.false;.}..retur
3f880 6e 20 74 72 75 65 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 n.true;.}.......protected.functi
3f8a0 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 69 on.generateSshUrl().{.return.'gi
3f8c0 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e t@github.com:'.$this->owner.'/'.
3f8e0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a $this->repository.'.git';.}.....
3f900 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 52 6f 6f 74 49 64 ..protected.function.fetchRootId
3f920 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 20 3d 20 27 68 74 74 entifier().{.$repoDataUrl.=.'htt
3f940 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 68 69 ps://api.github.com/repos/'.$thi
3f960 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 3b 0a s->owner.'/'.$this->repository;.
3f980 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c $attemptCounter.=.0;.while.(null
3f9a0 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 69 66 .===.$this->rootIdentifier).{.if
3f9c0 20 28 35 20 3d 3d 20 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 29 20 7b 0a 74 68 72 6f .(5.==.$attemptCounter++).{.thro
3f9e0 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 45 69 74 68 65 72 20 w.new.\RuntimeException("Either.
3fa00 79 6f 75 20 68 61 76 65 20 65 6e 74 65 72 65 64 20 69 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 you.have.entered.invalid.credent
3fa20 69 61 6c 73 20 6f 72 20 74 68 69 73 20 47 69 74 48 75 62 20 72 65 70 6f 73 69 74 6f 72 79 20 64 ials.or.this.GitHub.repository.d
3fa40 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 73 20 28 34 30 34 29 22 29 3b 0a 7d 0a 74 72 79 20 7b 0a oes.not.exists.(404)");.}.try.{.
3fa60 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 6e 28 $repoData.=.JsonFile::parseJson(
3fa80 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 61 55 72 6c 29 $this->getContents($repoDataUrl)
3faa0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f );.if.(isset($repoData['default_
3fac0 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 branch'])).{.$this->rootIdentifi
3fae0 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d er.=.$repoData['default_branch']
3fb00 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 ;.}.elseif.(isset($repoData['mas
3fb20 74 65 72 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e ter_branch'])).{.$this->rootIden
3fb40 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 tifier.=.$repoData['master_branc
3fb60 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 h'];.}.else.{.$this->rootIdentif
3fb80 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 ier.=.'master';.}.$this->hasIssu
3fba0 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 68 61 73 5f 69 73 73 75 65 es.=.!empty($repoData['has_issue
3fbc0 73 27 5d 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 70 74 69 6f s']);.}.catch.(TransportExceptio
3fbe0 6e 20 24 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b n.$e).{.switch.($e->getCode()).{
3fc00 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 24 74 68 69 73 2d 3e 69 73 50 72 .case.401:.case.404:.$this->isPr
3fc20 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 ivate.=.true;.if.(!$this->io->is
3fc40 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e Interactive()).{.........$this->
3fc60 67 69 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 65 72 28 0a 24 74 68 69 73 gitDriver.=.new.GitDriver(.$this
3fc80 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a 24 ->generateSshUrl(),.$this->io,.$
3fca0 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 0a 24 74 this->config,.$this->process,.$t
3fcc0 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 73 2d 3e his->remoteFilesystem.);.$this->
3fce0 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 75 72 6e gitDriver->initialize();..return
3fd00 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 41 75 74 68 65 6e 74 69 63 61 ;.}.$this->io->write('Authentica
3fd20 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 tion.required.(<info>'.$this->ur
3fd40 6c 2e 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 l.'</info>):');.$username.=.$thi
3fd60 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 70 61 73 73 77 s->io->ask('Username:.');.$passw
3fd80 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 6e 73 77 65 ord.=.$this->io->askAndHideAnswe
3fda0 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 3e 73 65 74 41 r('Password:.');.$this->io->setA
3fdc0 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 uthorization($this->originUrl,.$
3fde0 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 username,.$password);.break;..de
3fe00 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a fault:.throw.$e;.break;.}.}.}.}.
3fe20 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
3fe40 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 6f poser\Repository\Vcs;..use.Compo
3fe60 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 72 5c ser\Json\JsonFile;.use.Composer\
3fe80 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 74 62 IO\IOInterface;.....class.HgBitb
3fea0 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 7b 0a ucketDriver.extends.VcsDriver.{.
3fec0 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 70 protected.$owner;.protected.$rep
3fee0 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 63 ository;.protected.$tags;.protec
3ff00 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 64 ted.$branches;.protected.$rootId
3ff20 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 20 3d entifier;.protected.$infoCache.=
3ff40 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
3ff60 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 70 73 itialize().{.preg_match('#^https
3ff80 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 5d 2b ://bitbucket\.org/([^/]+)/([^/]+
3ffa0 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 74 68 )/?$#',.$this->url,.$match);.$th
3ffc0 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 72 65 is->owner.=.$match[1];.$this->re
3ffe0 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 72 69 pository.=.$match[2];.$this->ori
40000 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 0a 0a ginUrl.=.'bitbucket.org';.}.....
40020 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 69 65 public.function.getRootIdentifie
40040 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 49 64 r().{.if.(null.===.$this->rootId
40060 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 entifier).{.$repoData.=.JsonFile
40080 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 74 73 28 24 ::parseJson($this->getContents($
400a0 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 62 this->getScheme()...'://api.bitb
400c0 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 68 ucket.org/1.0/repositories/'.$th
400e0 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 2e is->owner.'/'.$this->repository.
40100 27 2f 74 61 67 73 27 29 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 '/tags'));.$this->rootIdentifier
40120 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b .=.$repoData['tip']['raw_node'];
40140 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
40160 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()
40180 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
401a0 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
401c0 72 29 0a 7b 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 r).{.$label.=.array_search($iden
401e0 74 69 66 69 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 24 69 64 tifier,.$this->getTags()).?:.$id
40200 65 6e 74 69 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 entifier;..return.array('type'.=
40220 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 65 74 55 72 6c 28 29 >.'hg',.'url'.=>.$this->getUrl()
40240 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a ,.'reference'.=>.$label);.}.....
40260 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
40280 69 65 72 29 0a 7b 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 ier).{.$label.=.array_search($id
402a0 65 6e 74 69 66 69 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 24 entifier,.$this->getTags()).?:.$
402c0 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 identifier;.$url.=.$this->getSch
402e0 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 2f 27 2e 24 74 68 69 eme()...'://bitbucket.org/'.$thi
40300 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 2e 27 s->owner.'/'.$this->repository.'
40320 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 /get/'.$label.'.zip';..return.ar
40340 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
40360 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 rl,.'reference'.=>.$label,.'shas
40380 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 6e 63 74 69 6f um'.=>.'');.}.....public.functio
403a0 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 65 6e 74 69 n.getComposerInformation($identi
403c0 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 6e 66 6f 43 61 fier).{.if.(!isset($this->infoCa
403e0 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d che[$identifier])).{.$composer.=
40400 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 53 63 .$this->getContents($this->getSc
40420 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 2f 27 2e 24 74 68 heme()...'://bitbucket.org/'.$th
40440 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 2e is->owner.'/'.$this->repository.
40460 27 2f 72 61 77 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 '/raw/'.$identifier.'/composer.j
40480 73 6f 6e 27 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 son');.if.(!$composer).{.return;
404a0 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 4a .}..$composer.=.JsonFile::parseJ
404c0 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d son($composer);..if.(!isset($com
404e0 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a poser['time'])).{.$changeset.=.J
40500 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 43 6f 6e sonFile::parseJson($this->getCon
40520 74 65 6e 74 73 28 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 tents($this->getScheme()...'://a
40540 70 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 pi.bitbucket.org/1.0/repositorie
40560 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 6f s/'.$this->owner.'/'.$this->repo
40580 73 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 sitory.'/changesets/'.$identifie
405a0 72 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 63 68 61 6e 67 65 r));.$composer['time'].=.$change
405c0 73 65 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 set['timestamp'];.}.$this->infoC
405e0 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 0a 7d ache[$identifier].=.$composer;.}
40600 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 6e 74 ..return.$this->infoCache[$ident
40620 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 67 65 ifier];.}.....public.function.ge
40640 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 68 69 73 2d 3e 74 61 tTags().{.if.(null.===.$this->ta
40660 67 73 29 20 7b 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 gs).{.$tagsData.=.JsonFile::pars
40680 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 74 68 69 73 2d 3e eJson($this->getContents($this->
406a0 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 74 2e getScheme()...'://api.bitbucket.
406c0 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 6f 77 org/1.0/repositories/'.$this->ow
406e0 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 73 ner.'/'.$this->repository.'/tags
40700 27 29 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 '));.$this->tags.=.array();.fore
40720 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)
40740 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
40760 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 73 2d 3e 74 61 67 w_node'];.}.}..return.$this->tag
40780 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 42 72 61 6e s;.}.....public.function.getBran
407a0 63 68 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 62 72 61 ches().{.if.(null.===.$this->bra
407c0 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a nches).{.$branchData.=.JsonFile:
407e0 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 74 73 28 24 74 :parseJson($this->getContents($t
40800 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 62 75 his->getScheme()...'://api.bitbu
40820 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 68 69 cket.org/1.0/repositories/'.$thi
40840 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 2e 27 s->owner.'/'.$this->repository.'
40860 2f 62 72 61 6e 63 68 65 73 27 29 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 /branches'));.$this->branches.=.
40880 61 72 72 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 array();.foreach.($branchData.as
408a0 20 24 62 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 .$branch.=>.$data).{.$this->bran
408c0 63 68 65 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 ches[$branch].=.$data['raw_node'
408e0 5d 3b 0a 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 ];.}.}..return.$this->branches;.
40900 7d 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 73 75 70 }.....public.static.function.sup
40920 70 6f 72 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 ports(IOInterface.$io,.$url,.$de
40940 65 70 20 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 ep.=.false).{.if.(!preg_match('#
40960 5e 68 74 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 ^https://bitbucket\.org/([^/]+)/
40980 28 5b 5e 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 ([^/]+)/?$#',.$url)).{.return.fa
409a0 6c 73 65 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 lse;.}..if.(!extension_loaded('o
409c0 70 65 6e 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 penssl')).{.if.($io->isVerbose()
409e0 29 20 7b 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 ).{.$io->write('Skipping.Bitbuck
40a00 65 74 20 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 et.hg.driver.for.'.$url.'.becaus
40a20 65 20 74 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 e.the.OpenSSL.PHP.extension.is.m
40a40 69 73 73 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 issing.');.}..return.false;.}..r
40a60 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 0a 0a eturn.true;.}.}.<?php...........
40a80 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;.
40aa0 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
40ac0 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 67 65 5c 50 ayLoader;.use.Composer\Package\P
40ae0 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 4a 73 ackageInterface;.use.Composer\Js
40b00 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 43 61 63 68 65 3b on\JsonFile;.use.Composer\Cache;
40b20 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
40b40 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\
40b60 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 63 6c 61 73 73 Util\RemoteFilesystem;.....class
40b80 20 43 6f 6d 70 6f 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 .ComposerRepository.extends.Arra
40ba0 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4e 6f 74 69 66 69 61 62 6c yRepository.implements.Notifiabl
40bc0 65 52 65 70 6f 73 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 eRepositoryInterface.{.protected
40be0 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 .$config;.protected.$url;.protec
40c00 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 70 72 ted.$io;.protected.$packages;.pr
40c20 6f 74 65 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 otected.$cache;.protected.$notif
40c40 79 55 72 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 yUrl;..public.function.__constru
40c60 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 66 61 63 ct(array.$repoConfig,.IOInterfac
40c80 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 69 66 20 28 21 70 72 e.$io,.Config.$config).{.if.(!pr
40ca0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 77 2b 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 eg_match('{^\w+://}',.$repoConfi
40cc0 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 72 6c 27 g['url'])).{...$repoConfig['url'
40ce0 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 6c 27 5d ].=.'http://'.$repoConfig['url']
40d00 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 6d 28 24 ;.}.$repoConfig['url'].=.rtrim($
40d20 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 69 66 20 28 66 75 6e repoConfig['url'],.'/');.if.(fun
40d40 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 ction_exists('filter_var').&&.ve
40d60 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 20 27 35 2e 33 2e rsion_compare(PHP_VERSION,.'5.3.
40d80 33 27 2c 20 27 3e 3d 27 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 3',.'>=').&&.!filter_var($repoCo
40da0 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c nfig['url'],.FILTER_VALIDATE_URL
40dc0 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
40de0 78 63 65 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 xception('Invalid.url.given.for.
40e00 43 6f 6d 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 Composer.repository:.'.$repoConf
40e20 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 ig['url']);.}..$this->config.=.$
40e40 63 6f 6e 66 69 67 3b 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 config;.$this->url.=.$repoConfig
40e60 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 2d ['url'];.$this->io.=.$io;.$this-
40e80 3e 63 61 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 >cache.=.new.Cache($io,.$config-
40ea0 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 61 63 68 65 2f 27 2e 70 72 65 67 5f 72 65 70 6c >get('home').'/cache/'.preg_repl
40ec0 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e ace('{[^a-z0-9.]}',.'-',.$this->
40ee0 75 72 6c 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 6e 6f 74 url));.}.....public.function.not
40f00 69 66 79 49 6e 73 74 61 6c 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ifyInstall(PackageInterface.$pac
40f20 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 7c 7c kage).{.if.(!$this->notifyUrl.||
40f40 20 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6e 6f 74 69 66 79 2d 6f 6e 2d .!$this->config->get('notify-on-
40f60 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 75 72 6c 20 3d install')).{.return;.}....$url.=
40f80 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 20 24 70 61 63 6b 61 .str_replace('%package%',.$packa
40fa0 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 69 ge->getPrettyName(),.$this->noti
40fc0 66 79 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 fyUrl);..$params.=.array(.'versi
40fe0 6f 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 on'.=>.$package->getPrettyVersio
41000 6e 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 n(),.'version_normalized'.=>.$pa
41020 63 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 ckage->getVersion(),.);.$opts.=.
41040 61 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 array('http'.=>.array(.'method'.
41060 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 27 43 6f 6e 74 65 6e 74 2d =>.'POST',.'header'.=>.'Content-
41080 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 6d 2d 75 72 6c type:.application/x-www-form-url
410a0 65 6e 63 6f 64 65 64 27 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 68 74 74 70 5f 62 75 69 6c encoded',.'content'.=>.http_buil
410c0 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 0a 27 74 69 6d 65 d_query($params,.'',.'&'),.'time
410e0 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 3d 20 73 74 72 65 out'.=>.3,.).);..$context.=.stre
41100 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f am_context_create($opts);.@file_
41120 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 get_contents($url,.false,.$conte
41140 78 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 69 6e 69 74 69 xt);.}..protected.function.initi
41160 61 6c 69 7a 65 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 alize().{.parent::initialize();.
41180 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 .try.{.$json.=.new.JsonFile($thi
411a0 73 2d 3e 75 72 6c 2e 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6e 65 77 20 52 65 6d s->url.'/packages.json',.new.Rem
411c0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 64 61 74 61 oteFilesystem($this->io));.$data
411e0 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 .=.$json->read();..if.(!empty($d
41200 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 66 79 55 ata['notify'])).{.$this->notifyU
41220 72 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e rl.=.preg_replace('{(https?://[^
41240 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 /]+).*}i',.'$1'...$data['notify'
41260 5d 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d ],.$this->url);.}..$this->cache-
41280 3e 77 72 69 74 65 28 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 >write('packages.json',.json_enc
412a0 6f 64 65 28 24 64 61 74 61 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e ode($data));.}.catch.(\Exception
412c0 20 24 65 29 20 7b 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 .$e).{.if.($contents.=.$this->ca
412e0 63 68 65 2d 3e 72 65 61 64 28 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 che->read('packages.json')).{.$t
41300 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 74 68 69 73 his->io->write('<warning>'.$this
41320 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 2c 20 70 61 63 ->url.'.could.not.be.loaded,.pac
41340 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 20 66 72 6f 6d kage.information.was.loaded.from
41360 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 20 6f 75 74 20 .the.local.cache.and.may.be.out.
41380 6f 66 20 64 61 74 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f of.date</warning>');.$data.=.jso
413a0 6e 5f 64 65 63 6f 64 65 28 24 63 6f 6e 74 65 6e 74 73 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 n_decode($contents,.true);.}.els
413c0 65 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 e.{.throw.$e;.}.}..$loader.=.new
413e0 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 .ArrayLoader();.$this->loadRepos
41400 69 74 6f 72 79 28 24 6c 6f 61 64 65 72 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 itory($loader,.$data);.}..protec
41420 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 41 72 72 61 ted.function.loadRepository(Arra
41440 79 4c 6f 61 64 65 72 20 24 6c 6f 61 64 65 72 2c 20 24 64 61 74 61 29 0a 7b 0a 0a 20 69 66 20 28 yLoader.$loader,.$data).{...if.(
41460 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 !isset($data['packages']).&&.!is
41480 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 set($data['includes'])).{.foreac
414a0 68 20 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b h.($data.as.$pkg).{.foreach.($pk
414c0 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 74 g['versions'].as.$metadata).{.$t
414e0 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d his->addPackage($loader->load($m
41500 65 74 61 64 61 74 61 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 etadata));.}.}..return;.}..if.(i
41520 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 65 61 sset($data['packages'])).{.forea
41540 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 61 67 ch.($data['packages'].as.$packag
41560 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 72 73 e.=>.$versions).{.foreach.($vers
41580 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 20 7b ions.as.$version.=>.$metadata).{
415a0 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 .$this->addPackage($loader->load
415c0 28 24 6d 65 74 61 64 61 74 61 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 ($metadata));.}.}.}..if.(isset($
415e0 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 data['includes'])).{.foreach.($d
41600 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 ata['includes'].as.$include.=>.$
41620 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 metadata).{.if.($this->cache->sh
41640 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 a1($include).===.$metadata['sha1
41660 27 5d 29 20 7b 0a 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 ']).{.$includedData.=.json_decod
41680 65 28 24 74 68 69 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 e($this->cache->read($include),.
416a0 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e true);.}.else.{.$json.=.new.Json
416c0 46 69 6c 65 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 2c 20 6e 65 File($this->url.'/'.$include,.ne
416e0 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 6f 29 29 3b 0a w.RemoteFilesystem($this->io));.
41700 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 $includedData.=.$json->read();.$
41720 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 6e 63 6c 75 64 65 2c 20 6a 73 6f this->cache->write($include,.jso
41740 6e 5f 65 6e 63 6f 64 65 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 24 74 68 69 n_encode($includedData));.}.$thi
41760 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 61 64 65 72 2c 20 24 69 6e 63 6c s->loadRepository($loader,.$incl
41780 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a udedData);.}.}.}.}.<?php........
417a0 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
417c0 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 61 63 65 3b y;..use.Composer\IO\IOInterface;
417e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c .use.Composer\Config;.........cl
41800 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 ass.RepositoryManager.{.private.
41820 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c $localRepository;.private.$local
41840 44 65 76 52 65 70 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 DevRepository;.private.$reposito
41860 72 69 65 73 20 3d 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 ries.=.array();.private.$reposit
41880 6f 72 79 43 6c 61 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 oryClasses.=.array();.private.$i
418a0 6f 3b 0a 70 72 69 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 o;.private.$config;..public.func
418c0 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
418e0 2c 20 43 6f 6e 66 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 ,.Config.$config).{.$this->io.=.
41900 24 69 6f 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 7d 0a $io;.$this->config.=.$config;.}.
41920 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 6e 64 50 61 63 .........public.function.findPac
41940 6b 61 67 65 28 24 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 kage($name,.$version).{.foreach.
41960 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 74 ($this->repositories.as.$reposit
41980 6f 72 79 29 20 7b 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 ory).{.if.($package.=.$repositor
419a0 79 2d 3e 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 29 y->findPackage($name,.$version))
419c0 20 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 0a 0a .{.return.$package;.}.}.}.......
419e0 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 73 28 ...public.function.findPackages(
41a00 24 6e 61 6d 65 2c 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 $name,.$version).{.$packages.=.a
41a20 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 72 65 70 6f 73 69 74 rray();..foreach.($this->reposit
41a40 6f 72 69 65 73 20 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 ories.as.$repository).{.$package
41a60 73 20 3d 20 61 72 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 s.=.array_merge($packages,.$repo
41a80 73 69 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 sitory->findPackages($name,.$ver
41aa0 73 69 6f 6e 29 29 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 sion));.}..return.$packages;.}..
41ac0 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 6f 73 69 74 6f .....public.function.addReposito
41ae0 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
41b00 72 79 29 0a 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 ry).{.$this->repositories[].=.$r
41b20 65 70 6f 73 69 74 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 epository;.}..........public.fun
41b40 63 74 69 6f 6e 20 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 ction.createRepository($type,.$c
41b60 6f 6e 66 69 67 29 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 onfig).{.if.(!isset($this->repos
41b80 69 74 6f 72 79 43 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 itoryClasses[$type])).{.throw.ne
41ba0 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 52 65 70 w.\InvalidArgumentException('Rep
41bc0 6f 73 69 74 6f 72 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 ository.type.is.not.registered:.
41be0 27 2e 24 74 79 70 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 '.$type);.}..$class.=.$this->rep
41c00 6f 73 69 74 6f 72 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 ositoryClasses[$type];..return.n
41c20 65 77 20 24 63 6c 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 ew.$class($config,.$this->io,.$t
41c40 68 69 73 2d 3e 63 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 his->config);.}........public.fu
41c60 6e 63 74 69 6f 6e 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 nction.setRepositoryClass($type,
41c80 20 24 63 6c 61 73 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 .$class).{.$this->repositoryClas
41ca0 73 65 73 5b 24 74 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 ses[$type].=.$class;.}.......pub
41cc0 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 0a 7b lic.function.getRepositories().{
41ce0 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 0a 0a .return.$this->repositories;.}..
41d00 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 61 6c 52 65 70 .....public.function.setLocalRep
41d20 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 72 65 70 ository(RepositoryInterface.$rep
41d40 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 6f 72 ository).{.$this->localRepositor
41d60 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 63 20 y.=.$repository;.}.......public.
41d80 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 7b 0a function.getLocalRepository().{.
41da0 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 0a 7d return.$this->localRepository;.}
41dc0 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 4c 6f 63 61 6c 44 .......public.function.setLocalD
41de0 65 76 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 evRepository(RepositoryInterface
41e00 20 24 72 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 44 65 76 52 .$repository).{.$this->localDevR
41e20 65 70 6f 73 69 74 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 epository.=.$repository;.}......
41e40 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 44 65 76 52 65 70 6f .public.function.getLocalDevRepo
41e60 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 sitory().{.return.$this->localDe
41e80 76 52 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 66 75 6e 63 vRepository;.}.......public.func
41ea0 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 tion.getLocalRepositories().{.re
41ec0 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 72 turn.array($this->localRepositor
41ee0 79 2c 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d y,.$this->localDevRepository);.}
41f00 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
41f20 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
41f40 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;......
41f60 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 20 ..interface.RepositoryInterface.
41f80 65 78 74 65 6e 64 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c extends.\Countable.{........publ
41fa0 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 67 65 49 6e ic.function.hasPackage(PackageIn
41fc0 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 0a 0a 0a 70 75 62 6c terface.$package);..........publ
41fe0 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 6e 61 6d 65 2c 20 24 ic.function.findPackage($name,.$
42000 76 65 72 73 69 6f 6e 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 version);..........public.functi
42020 6f 6e 20 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 20 on.findPackages($name,.$version.
42040 3d 20 6e 75 6c 6c 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 =.null);.......public.function.g
42060 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a etPackages();.}.<?php...........
42080 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;.
420a0 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 6e 73 70 6f .use.Composer\Downloader\Transpo
420c0 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 52 65 70 6f 73 69 rtException;.use.Composer\Reposi
420e0 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 tory\Vcs\VcsDriverInterface;.use
42100 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 6f .Composer\Package\Version\Versio
42120 6e 50 61 72 73 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 nParser;.use.Composer\Package\Lo
42140 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 73 65 72 5c 49 ader\ArrayLoader;.use.Composer\I
42160 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 43 6f 6e 66 O\IOInterface;.use.Composer\Conf
42180 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 63 73 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 ig;.....class.VcsRepository.exte
421a0 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 nds.ArrayRepository.{.protected.
421c0 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 $url;.protected.$packageName;.pr
421e0 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b otected.$verbose;.protected.$io;
42200 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 63 74 65 64 20 24 76 .protected.$config;.protected.$v
42220 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 0a ersionParser;.protected.$type;..
42240 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
42260 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 69 6f 2c 20 y.$repoConfig,.IOInterface.$io,.
42280 43 6f 6e 66 69 67 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 Config.$config,.array.$drivers.=
422a0 20 6e 75 6c 6c 29 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 .null).{.$this->drivers.=.$drive
422c0 72 73 20 3f 3a 20 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 rs.?:.array(.'github'.=>.'Compos
422e0 65 72 5c 52 65 70 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 er\Repository\Vcs\GitHubDriver',
42300 0a 27 67 69 74 2d 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 .'git-bitbucket'.=>.'Composer\Re
42320 70 6f 73 69 74 6f 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 pository\Vcs\GitBitbucketDriver'
42340 2c 0a 27 67 69 74 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 ,.'git'.=>.'Composer\Repository\
42360 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 73 76 6e 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 Vcs\GitDriver',.'svn'.=>.'Compos
42380 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 65 72 27 2c 0a 27 68 er\Repository\Vcs\SvnDriver',.'h
423a0 67 2d 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 g-bitbucket'.=>.'Composer\Reposi
423c0 74 6f 72 79 5c 56 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 68 67 tory\Vcs\HgBitbucketDriver',.'hg
423e0 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 48 67 '.=>.'Composer\Repository\Vcs\Hg
42400 44 72 69 76 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 Driver',.);..$this->url.=.$repoC
42420 6f 6e 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 24 onfig['url'];.$this->io.=.$io;.$
42440 74 68 69 73 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 this->type.=.isset($repoConfig['
42460 74 79 70 65 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 type']).?.$repoConfig['type'].:.
42480 27 76 63 73 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 'vcs';.$this->verbose.=.$io->isV
424a0 65 72 62 6f 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 erbose();.$this->config.=.$confi
424c0 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 44 72 69 76 65 72 28 g;.}..public.function.getDriver(
424e0 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 ).{.if.(isset($this->drivers[$th
42500 69 73 2d 3e 74 79 70 65 5d 29 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 72 is->type])).{.$class.=.$this->dr
42520 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 ivers[$this->type];.$driver.=.ne
42540 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 w.$class($this->url,.$this->io,.
42560 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 69 6e 69 74 69 61 6c $this->config);.$driver->initial
42580 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 0a 0a 66 6f 72 65 61 ize();..return.$driver;.}..forea
425a0 63 68 20 28 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 ch.($this->drivers.as.$driver).{
425c0 0a 69 66 20 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 .if.($driver::supports($this->io
425e0 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 ,.$this->url)).{.$driver.=.new.$
42600 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 driver($this->url,.$this->io,.$t
42620 68 69 73 2d 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 his->config);.$driver->initializ
42640 65 28 29 3b 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 e();..return.$driver;.}.}..forea
42660 63 68 20 28 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 ch.($this->drivers.as.$driver).{
42680 0a 69 66 20 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 .if.($driver::supports($this->io
426a0 2c 20 24 74 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 ,.$this->url,.true)).{.$driver.=
426c0 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e .new.$driver($this->url,.$this->
426e0 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 69 6e 69 io,.$this->config);.$driver->ini
42700 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 0a 7d 0a tialize();..return.$driver;.}.}.
42720 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
42740 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 76 65 72 ().{.parent::initialize();..$ver
42760 62 6f 73 65 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 3b 0a 0a 24 64 72 69 76 65 72 20 bose.=.$this->verbose;..$driver.
42780 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 72 69 76 65 72 28 29 3b 0a 69 66 20 28 21 24 64 72 69 76 =.$this->getDriver();.if.(!$driv
427a0 65 72 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 er).{.throw.new.\InvalidArgument
427c0 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 64 72 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 68 61 Exception('No.driver.found.to.ha
427e0 6e 64 6c 65 20 56 43 53 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c ndle.VCS.repository.'.$this->url
42800 29 3b 0a 7d 0a 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 77 );.}..$this->versionParser.=.new
42820 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 .VersionParser;.$loader.=.new.Ar
42840 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 2d rayLoader();..try.{.if.($driver-
42860 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 6f 6f >hasComposerFile($driver->getRoo
42880 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 76 65 tIdentifier())).{.$data.=.$drive
428a0 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 76 65 r->getComposerInformation($drive
428c0 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 2d 3e r->getRootIdentifier());.$this->
428e0 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 6d 65 packageName.=.!empty($data['name
42900 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 7d 20 ']).?.$data['name'].:.null;.}.}.
42920 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 65 72 catch.(\Exception.$e).{.if.($ver
42940 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 53 6b 69 70 70 65 bose).{.$this->io->write('Skippe
42960 64 20 70 61 72 73 69 6e 67 20 27 2e 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e d.parsing.'.$driver->getRootIden
42980 74 69 66 69 65 72 28 29 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b tifier().',.'.$e->getMessage());
429a0 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 .}.}..foreach.($driver->getTags(
429c0 29 20 61 73 20 24 74 61 67 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 ).as.$tag.=>.$identifier).{.$msg
429e0 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 6e .=.'Reading.composer.json.of.<in
42a00 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 74 fo>'...($this->packageName.?:.$t
42a20 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 27 his->url)...'</info>.(<comment>'
42a40 20 2e 20 24 74 61 67 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 ...$tag...'</comment>)';.if.($ve
42a60 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 73 67 29 3b rbose).{.$this->io->write($msg);
42a80 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 74 65 28 24 .}.else.{.$this->io->overwrite($
42aa0 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 20 24 74 61 67 20 3d 20 73 74 72 5f 72 65 70 msg,.false);.}....$tag.=.str_rep
42ac0 6c 61 63 65 28 27 72 65 6c 65 61 73 65 2d 27 2c 20 27 27 2c 20 24 74 61 67 29 3b 0a 0a 69 66 20 lace('release-',.'',.$tag);..if.
42ae0 28 21 24 70 61 72 73 65 64 54 61 67 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 61 (!$parsedTag.=.$this->validateTa
42b00 67 28 24 74 61 67 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 g($tag)).{.if.($verbose).{.$this
42b20 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e ->io->write('Skipped.tag.'.$tag.
42b40 27 2c 20 69 6e 76 61 6c 69 64 20 74 61 67 20 6e 61 6d 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 ',.invalid.tag.name');.}.continu
42b60 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 24 64 72 69 76 65 72 e;.}..try.{.if.(!$data.=.$driver
42b80 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 6e 74 69 ->getComposerInformation($identi
42ba0 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 24 74 68 69 73 2d 3e fier)).{.if.($verbose).{.$this->
42bc0 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c io->write('Skipped.tag.'.$tag.',
42be0 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b .no.composer.file');.}.continue;
42c00 0a 7d 0a 0a 0a 20 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 .}....if.(isset($data['version']
42c20 29 29 20 7b 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 5d )).{.$data['version_normalized']
42c40 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
42c60 7a 65 28 24 64 61 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 ze($data['version']);.}.else.{..
42c80 20 24 64 61 74 61 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 .$data['version'].=.$tag;.$data[
42ca0 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 70 61 72 73 65 64 54 'version_normalized'].=.$parsedT
42cc0 61 67 3b 0a 7d 0a 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 ag;.}....$data['version'].=.preg
42ce0 5f 72 65 70 6c 61 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 _replace('{[.-]?dev$}i',.'',.$da
42d00 74 61 5b 27 76 65 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 ta['version']);.$data['version_n
42d20 6f 72 6d 61 6c 69 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 ormalized'].=.preg_replace('{(^d
42d40 65 76 2d 7c 5b 2e 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 ev-|[.-]?dev$)}i',.'',.$data['ve
42d60 72 73 69 6f 6e 5f 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 rsion_normalized']);....if.($dat
42d80 61 5b 27 76 65 72 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 a['version_normalized'].!==.$par
42da0 73 65 64 54 61 67 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 sedTag).{.if.($verbose).{.$this-
42dc0 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 >io->write('Skipped.tag.'.$tag.'
42de0 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 6f 74 20 ,.tag.('.$parsedTag.').does.not.
42e00 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 6f 6e 5f match.version.('.$data['version_
42e20 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 73 6f 6e normalized'].').in.composer.json
42e40 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 ');.}.continue;.}..if.($verbose)
42e60 20 7b 0a 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 74 .{.$this->io->write('Importing.t
42e80 61 67 20 27 2e 24 74 61 67 2e 27 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f ag.'.$tag.'.('.$data['version_no
42ea0 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 rmalized'].')');.}..$this->addPa
42ec0 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 ckage($loader->load($this->prePr
42ee0 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 65 6e 74 69 66 69 65 ocess($driver,.$data,.$identifie
42f00 72 29 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 r)));.}.catch.(\Exception.$e).{.
42f20 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
42f40 28 27 53 6b 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 ('Skipped.tag.'.$tag.',.'.($e.in
42f60 73 74 61 6e 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 stanceof.TransportException.?.'n
42f80 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 27 20 3a 20 24 65 2d o.composer.file.was.found'.:.$e-
42fa0 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d >getMessage()));.}.continue;.}.}
42fc0 0a 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 66 61 6c 73 65 ..$this->io->overwrite('',.false
42fe0 29 3b 0a 0a 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 );..foreach.($driver->getBranche
43000 73 28 29 20 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 s().as.$branch.=>.$identifier).{
43020 0a 24 6d 73 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 .$msg.=.'Reading.composer.json.o
43040 66 20 3c 69 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 f.<info>'...($this->packageName.
43060 3f 3a 20 24 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 ?:.$this->url)...'</info>.(<comm
43080 65 6e 74 3e 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 ent>'...$branch...'</comment>)';
430a0 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 72 69 74 .if.($verbose).{.$this->io->writ
430c0 65 28 24 6d 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 e($msg);.}.else.{.$this->io->ove
430e0 72 77 72 69 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 rwrite($msg,.false);.}..if.(!$pa
43100 72 73 65 64 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 rsedBranch.=.$this->validateBran
43120 63 68 28 24 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 ch($branch)).{.if.($verbose).{.$
43140 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 this->io->write('Skipped.branch.
43160 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 27 29 3b 0a 7d 0a 63 '.$branch.',.invalid.name');.}.c
43180 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 24 ontinue;.}..try.{.if.(!$data.=.$
431a0 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 24 driver->getComposerInformation($
431c0 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 24 identifier)).{.if.($verbose).{.$
431e0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 this->io->write('Skipped.branch.
43200 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 27 29 3b '.$branch.',.no.composer.file');
43220 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 6f 6e .}.continue;.}....$data['version
43240 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 6f 72 '].=.$branch;.$data['version_nor
43260 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 69 66 malized'].=.$parsedBranch;....if
43280 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 6e 63 .('dev-'.===.substr($parsedBranc
432a0 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 24 70 h,.0,.4).||.'9999999-dev'.===.$p
432c0 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 5d 20 arsedBranch).{.$data['version'].
432e0 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 20 65 =.'dev-'...$data['version'];.}.e
43300 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 72 65 lse.{.$data['version'].=.preg_re
43320 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 72 73 place('{(\.9{7})+}',.'.x',.$pars
43340 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 24 74 edBranch);.}..if.($verbose).{.$t
43360 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 63 68 his->io->write('Importing.branch
43380 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 27 5d .'.$branch.'.('.$data['version']
433a0 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 .')');.}..$this->addPackage($loa
433c0 64 65 72 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 der->load($this->preProcess($dri
433e0 76 65 72 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 ver,.$data,.$identifier)));.}.ca
43400 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 69 66 tch.(TransportException.$e).{.if
43420 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('
43440 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 2c 20 6e 6f 20 63 Skipped.branch.'.$branch.',.no.c
43460 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 63 6f 6e 74 omposer.file.was.found');.}.cont
43480 69 6e 75 65 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 inue;.}.catch.(\Exception.$e).{.
434a0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 $this->io->write('Skipped.branch
434c0 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 65 28 29 .'.$branch.',.'.$e->getMessage()
434e0 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 );.continue;.}.}..$this->io->ove
43500 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 rwrite('',.false);.}..private.fu
43520 6e 63 74 69 6f 6e 20 70 72 65 50 72 6f 63 65 73 73 28 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 nction.preProcess(VcsDriverInter
43540 66 61 63 65 20 24 64 72 69 76 65 72 2c 20 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 69 64 65 6e face.$driver,.array.$data,.$iden
43560 74 69 66 69 65 72 29 0a 7b 0a 0a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 tifier).{...$data['name'].=.$thi
43580 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 3b s->packageName.?:.$data['name'];
435a0 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 24 ..if.(!isset($data['dist'])).{.$
435c0 64 61 74 61 5b 27 64 69 73 74 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 data['dist'].=.$driver->getDist(
435e0 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 $identifier);.}.if.(!isset($data
43600 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 20 3d ['source'])).{.$data['source'].=
43620 20 24 64 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 .$driver->getSource($identifier)
43640 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ;.}..return.$data;.}..private.fu
43660 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 0a 7b nction.validateBranch($branch).{
43680 0a 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 .try.{.return.$this->versionPars
436a0 65 72 2d 3e 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 7d 20 er->normalizeBranch($branch);.}.
436c0 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 0a 72 65 74 75 72 catch.(\Exception.$e).{.}..retur
436e0 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 76 61 6c n.false;.}..private.function.val
43700 69 64 61 74 65 54 61 67 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 idateTag($version).{.try.{.retur
43720 6e 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 7a n.$this->versionParser->normaliz
43740 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e e($version);.}.catch.(\Exception
43760 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 7d 0a 3c 3f 70 68 .$e).{.}..return.false;.}.}.<?ph
43780 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\
437a0 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 67 Repository;..use.Composer\Packag
437c0 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 69 6e 74 65 72 66 e\PackageInterface;.......interf
437e0 61 63 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 ace.WritableRepositoryInterface.
43800 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 65 0a 7b 0a 0a 0a extends.RepositoryInterface.{...
43820 0a 70 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 .public.function.write();.......
43840 70 75 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 public.function.addPackage(Packa
43860 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 70 75 62 geInterface.$package);.......pub
43880 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 63 6b 61 lic.function.removePackage(Packa
438a0 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 70 75 62 6c 69 geInterface.$package);.....publi
438c0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a c.function.reload();.}.<?php....
438e0 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
43900 69 74 6f 72 79 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 itory;..use.Composer\Json\JsonFi
43920 6c 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 6c 69 61 73 50 61 le;.use.Composer\Package\AliasPa
43940 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 4c 6f 61 64 ckage;.use.Composer\Package\Load
43960 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 73 65 72 5c 50 61 63 er\ArrayLoader;.use.Composer\Pac
43980 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 0a 0a 0a 0a 0a 0a 0a kage\Dumper\ArrayDumper;........
439a0 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e class.FilesystemRepository.exten
439c0 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 6e 74 73 20 57 72 ds.ArrayRepository.implements.Wr
439e0 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 7b 0a 70 72 69 76 itableRepositoryInterface.{.priv
43a00 61 74 65 20 24 66 69 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 ate.$file;.......public.function
43a20 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 .__construct(JsonFile.$repositor
43a40 79 46 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f yFile).{.$this->file.=.$reposito
43a60 72 79 46 69 6c 65 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 ryFile;.}.....protected.function
43a80 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 74 69 61 6c 69 .initialize().{.parent::initiali
43aa0 7a 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 ze();..if.(!$this->file->exists(
43ac0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 )).{.return;.}..$packages.=.$thi
43ae0 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 s->file->read();..if.(!is_array(
43b00 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 $packages)).{.throw.new.\Unexpec
43b20 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 tedValueException('Could.not.par
43b40 73 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 27 2e 24 74 68 69 73 se.package.list.from.the.'.$this
43b60 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 27 29 ->file->getPath().'.repository')
43b80 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 ;.}..$loader.=.new.ArrayLoader()
43ba0 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 63 6b 61 67 65 ;.foreach.($packages.as.$package
43bc0 44 61 74 61 29 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 Data).{.$package.=.$loader->load
43be0 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 ($packageData);.$this->addPackag
43c00 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f e($package);.}.}..public.functio
43c20 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e n.reload().{.$this->packages.=.n
43c40 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a ull;.$this->initialize();.}.....
43c60 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 24 70 61 63 6b 61 public.function.write().{.$packa
43c80 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 ges.=.array();.$dumper.=.new.Arr
43ca0 61 79 44 75 6d 70 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 ayDumper();.foreach.($this->getP
43cc0 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 69 66 20 28 21 24 70 ackages().as.$package).{.if.(!$p
43ce0 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).
43d00 7b 0a 24 64 61 74 61 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 {.$data.=.$dumper->dump($package
43d20 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 24 74 68 );.$packages[].=.$data;.}.}..$th
43d40 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 7d 0a is->file->write($packages);.}.}.
43d60 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
43d80 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 5c 50 61 ser\Repository;..use.Composer\Pa
43da0 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 74 65 ckage\PackageInterface;.....inte
43dc0 72 66 61 63 65 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 rface.NotifiableRepositoryInterf
43de0 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 65 0a ace.extends.RepositoryInterface.
43e00 7b 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 69 66 79 49 6e 73 {......public.function.notifyIns
43e20 74 61 6c 6c 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 3b tall(PackageInterface.$package);
43e40 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
43e60 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
43e80 5c 50 61 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 0a 0a 0a \Package\Loader\ArrayLoader;....
43ea0 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e ...class.PackageRepository.exten
43ec0 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f ds.ArrayRepository.{.private.$co
43ee0 6e 66 69 67 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 nfig;.......public.function.__co
43f00 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e nstruct(array.$config).{.$this->
43f20 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 0a 20 config.=.$config['package'];....
43f40 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 if.(!is_numeric(key($this->confi
43f60 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 24 74 68 g))).{.$this->config.=.array($th
43f80 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 is->config);.}.}.....protected.f
43fa0 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 74 3a 3a 69 unction.initialize().{.parent::i
43fc0 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 nitialize();..$loader.=.new.Arra
43fe0 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 yLoader();.foreach.($this->confi
44000 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 g.as.$package).{.$package.=.$loa
44020 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 50 der->load($package);.$this->addP
44040 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a ackage($package);.}.}.}.<?php...
44060 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
44080 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 sitory;.........class.InstalledA
440a0 72 72 61 79 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 rrayRepository.extends.ArrayRepo
440c0 73 69 74 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 sitory.implements.InstalledRepos
440e0 69 74 6f 72 79 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 itoryInterface.{....public.funct
44100 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ion.write().{.}.....public.funct
44120 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ion.reload().{.}.}.<?php........
44140 0a 0a 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 ....namespace.Composer;..use.Com
44160 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 61 74 6f 72 poser\Autoload\AutoloadGenerator
44180 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
441a0 72 5c 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 r\DefaultPolicy;.use.Composer\De
441c0 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
441e0 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
44200 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 44 ncyResolver\Pool;.use.Composer\D
44220 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 ependencyResolver\Request;.use.C
44240 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 6f 6c 76 65 omposer\DependencyResolver\Solve
44260 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 6c 76 r;.use.Composer\DependencyResolv
44280 65 72 5c 53 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 er\SolverProblemsException;.use.
442a0 43 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 4d 61 6e 61 Composer\Downloader\DownloadMana
442c0 67 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 49 6e 73 74 ger;.use.Composer\Installer\Inst
442e0 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e allationManager;.use.Composer\In
44300 73 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 staller\NoopInstaller;.use.Compo
44320 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
44340 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
44360 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 5c 50 ser\Package\Link;.use.Composer\P
44380 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 6e ackage\LinkConstraint\VersionCon
443a0 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 6f straint;.use.Composer\Package\Lo
443c0 63 6b 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 50 61 63 6b 61 cker;.use.Composer\Package\Packa
443e0 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 6f 73 69 geInterface;.use.Composer\Reposi
44400 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 75 73 65 20 43 6f tory\CompositeRepository;.use.Co
44420 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 41 72 72 61 79 mposer\Repository\InstalledArray
44440 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
44460 6f 72 79 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 ory\PlatformRepository;.use.Comp
44480 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 6e 74 65 72 66 oser\Repository\RepositoryInterf
444a0 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 52 65 70 ace;.use.Composer\Repository\Rep
444c0 6f 73 69 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 ositoryManager;.use.Composer\Scr
444e0 69 70 74 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 ipt\EventDispatcher;.use.Compose
44500 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 r\Script\ScriptEvents;.......cla
44520 73 73 20 49 6e 73 74 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 ss.Installer.{....protected.$io;
44540 0a 0a 0a 0a 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 70 72 6f .....protected.$package;.....pro
44560 74 65 63 74 65 64 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 6f tected.$downloadManager;.....pro
44580 74 65 63 74 65 64 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 tected.$repositoryManager;.....p
445a0 72 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 rotected.$locker;.....protected.
445c0 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 6f 74 65 63 $installationManager;.....protec
445e0 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ted.$eventDispatcher;.....protec
44600 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 ted.$autoloadGenerator;..protect
44620 65 64 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 ed.$preferSource.=.false;.protec
44640 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 ted.$devMode.=.false;.protected.
44660 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 $dryRun.=.false;.protected.$verb
44680 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 20 3d ose.=.false;.protected.$update.=
446a0 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 .false;.protected.$runScripts.=.
446c0 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 true;.protected.$updateWhitelist
446e0 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 .=.null;.....protected.$suggeste
44700 64 50 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 dPackages;.....protected.$additi
44720 6f 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 0a 0a 0a 0a 0a 0a onalInstalledRepository;........
44740 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
44760 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 t(IOInterface.$io,.PackageInterf
44780 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 ace.$package,.DownloadManager.$d
447a0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 ownloadManager,.RepositoryManage
447c0 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f r.$repositoryManager,.Locker.$lo
447e0 63 6b 65 72 2c 20 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 cker,.InstallationManager.$insta
44800 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 llationManager,.EventDispatcher.
44820 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 $eventDispatcher,.AutoloadGenera
44840 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d tor.$autoloadGenerator).{.$this-
44860 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 >io.=.$io;.$this->package.=.$pac
44880 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 20 3d 20 24 kage;.$this->downloadManager.=.$
448a0 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 73 69 74 6f downloadManager;.$this->reposito
448c0 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 65 72 3b 0a ryManager.=.$repositoryManager;.
448e0 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 69 73 2d 3e $this->locker.=.$locker;.$this->
44900 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 6c 6c 61 74 installationManager.=.$installat
44920 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 61 74 63 68 ionManager;.$this->eventDispatch
44940 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 61 75 er.=.$eventDispatcher;.$this->au
44960 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 65 6e 65 72 toloadGenerator.=.$autoloadGener
44980 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 72 75 6e 28 ator;.}.....public.function.run(
449a0 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 69 73 2d 3e ).{.if.($this->dryRun).{.$this->
449c0 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 72 69 70 74 verbose.=.true;.$this->runScript
449e0 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 6f 6e 4d 61 s.=.false;.$this->installationMa
44a00 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 49 6e 73 74 nager->addInstaller(new.NoopInst
44a20 61 6c 6c 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 aller);.}..if.($this->preferSour
44a40 63 65 29 20 7b 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 73 65 ce).{.$this->downloadManager->se
44a60 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 24 69 6e 73 74 61 tPreferSource(true);.}....$insta
44a80 6c 6c 65 64 52 6f 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 lledRootPackage.=.clone.$this->p
44aa0 61 63 6b 61 67 65 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 ackage;.$installedRootPackage->s
44ac0 65 74 52 65 71 75 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 etRequires(array());.$installedR
44ae0 6f 6f 74 50 61 63 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 ootPackage->setDevRequires(array
44b00 28 29 29 3b 0a 0a 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 6f ());..$platformRepo.=.new.Platfo
44b20 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 5f 6d rmRepository();.$repos.=.array_m
44b40 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e erge(.$this->repositoryManager->
44b60 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 61 72 72 61 79 28 0a 6e getLocalRepositories(),.array(.n
44b80 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 79 28 61 72 72 61 ew.InstalledArrayRepository(arra
44ba0 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 0a 24 70 6c 61 74 y($installedRootPackage)),.$plat
44bc0 66 6f 72 6d 52 65 70 6f 2c 0a 29 0a 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 formRepo,.).);.$installedRepo.=.
44be0 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 6f 73 29 3b new.CompositeRepository($repos);
44c00 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 6c 65 64 52 .if.($this->additionalInstalledR
44c20 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 3e 61 64 64 epository).{.$installedRepo->add
44c40 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 49 6e 73 74 Repository($this->additionalInst
44c60 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 73 20 3d 20 alledRepository);.}..$aliases.=.
44c80 24 74 68 69 73 2d 3e 61 6c 69 61 73 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 $this->aliasPackages($platformRe
44ca0 70 6f 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a po);..if.($this->runScripts).{..
44cc0 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 .$eventName.=.$this->update.?.Sc
44ce0 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 riptEvents::PRE_UPDATE_CMD.:.Scr
44d00 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 iptEvents::PRE_INSTALL_CMD;.$thi
44d20 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 43 6f 6d 6d s->eventDispatcher->dispatchComm
44d40 61 6e 64 45 76 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 andEvent($eventName);.}..$this->
44d60 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 3b 0a 69 66 20 suggestedPackages.=.array();.if.
44d80 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 (!$this->doInstall($this->reposi
44da0 74 6f 72 79 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 toryManager->getLocalRepository(
44dc0 29 2c 20 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 29 20 7b 0a ),.$installedRepo,.$aliases)).{.
44de0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f return.false;.}.if.($this->devMo
44e00 64 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 de).{.if.(!$this->doInstall($thi
44e20 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 s->repositoryManager->getLocalDe
44e40 76 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 vRepository(),.$installedRepo,.$
44e60 61 6c 69 61 73 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a aliases,.true)).{.return.false;.
44e80 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 }.}....foreach.($this->suggested
44ea0 50 61 63 6b 61 67 65 73 20 61 73 20 24 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 Packages.as.$suggestion).{.if.(!
44ec0 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 73 75 $installedRepo->findPackages($su
44ee0 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ggestion['target'])).{.$this->io
44f00 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f 75 72 63 65 27 5d 2e 27 20 ->write($suggestion['source'].'.
44f20 73 75 67 67 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 73 75 67 67 65 73 74 69 6f suggests.installing.'.$suggestio
44f40 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 72 65 n['target'].'.('.$suggestion['re
44f60 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 ason'].')');.}.}..if.(!$this->dr
44f80 79 52 75 6e 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 7c 7c 20 21 yRun).{...if.($this->update.||.!
44fa0 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 24 75 70 $this->locker->isLocked()).{.$up
44fc0 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 3e 73 65 74 4c 6f datedLock.=.$this->locker->setLo
44fe0 63 6b 44 61 74 61 28 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ckData(.$this->repositoryManager
45000 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 ->getLocalRepository()->getPacka
45020 67 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 72 ges(),.$this->devMode.?.$this->r
45040 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 epositoryManager->getLocalDevRep
45060 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 3a 20 6e 75 6c 6c 2c ository()->getPackages().:.null,
45080 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 4d 69 .$aliases,.$this->package->getMi
450a0 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 67 65 nimumStability(),.$this->package
450c0 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 75 70 ->getStabilityFlags().);.if.($up
450e0 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 27 3c datedLock).{.$this->io->write('<
45100 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 29 3b info>Writing.lock.file</info>');
45120 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 6f 3e .}.}....$this->io->write('<info>
45140 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 6f 3e Generating.autoload.files</info>
45160 27 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 ');.$localRepos.=.new.CompositeR
45180 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 epository($this->repositoryManag
451a0 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 24 74 68 er->getLocalRepositories());.$th
451c0 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 6c 6f 63 is->autoloadGenerator->dump($loc
451e0 61 6c 52 65 70 6f 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 69 73 2d 3e alRepos,.$this->package,.$this->
45200 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 installationManager,.$this->inst
45220 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 56 65 6e 64 6f 72 50 61 74 68 28 29 allationManager->getVendorPath()
45240 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 ...'/composer',.true);..if.($thi
45260 73 2d 3e 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 s->runScripts).{...$eventName.=.
45280 24 74 68 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 $this->update.?.ScriptEvents::PO
452a0 53 54 5f 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 ST_UPDATE_CMD.:.ScriptEvents::PO
452c0 53 54 5f 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 ST_INSTALL_CMD;.$this->eventDisp
452e0 61 74 63 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 atcher->dispatchCommandEvent($ev
45300 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 entName);.}.}..return.true;.}..p
45320 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 rotected.function.doInstall($loc
45340 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 alRepo,.$installedRepo,.$aliases
45360 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 ,.$devMode.=.false).{.$minimumSt
45380 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 65 74 4d 69 6e ability.=.$this->package->getMin
453a0 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 46 6c 61 67 73 imumStability();.$stabilityFlags
453c0 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 6c 69 74 79 46 .=.$this->package->getStabilityF
453e0 6c 61 67 73 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 lags();....if.(!$this->update.&&
45400 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 24 64 65 76 4d 6f 64 .$this->locker->isLocked($devMod
45420 65 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c e)).{.$lockedPackages.=.$this->l
45440 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 4d 6f 64 ocker->getLockedPackages($devMod
45460 65 29 3b 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 e);.$minimumStability.=.$this->l
45480 6f 63 6b 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 ocker->getMinimumStability();.$s
454a0 74 61 62 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 tabilityFlags.=.$this->locker->g
454c0 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 etStabilityFlags();.}..$this->wh
454e0 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 itelistUpdateDependencies(.$loca
45500 6c 52 65 70 6f 2c 0a 24 64 65 76 4d 6f 64 65 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d lRepo,.$devMode,.$this->package-
45520 3e 67 65 74 52 65 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 >getRequires(),.$this->package->
45540 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 0a 0a 20 24 70 6f 6f 6c 20 3d 20 6e 65 getDevRequires());....$pool.=.ne
45560 77 20 50 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 w.Pool($minimumStability,.$stabi
45580 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 lityFlags);.$pool->addRepository
455a0 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ($installedRepo);.foreach.($this
455c0 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ->repositoryManager->getReposito
455e0 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e ries().as.$repository).{.$pool->
45600 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 0a addRepository($repository);.}...
45620 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 24 72 65 71 75 .$installFromLock.=.false;.$requ
45640 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 24 63 6f 6e 73 est.=.new.Request($pool);..$cons
45660 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 27 traint.=.new.VersionConstraint('
45680 3d 27 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 =',.$this->package->getVersion()
456a0 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 70 61 63 6b );.$request->install($this->pack
456c0 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 69 age->getName(),.$constraint);..i
456e0 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 f.($this->update).{.$this->io->w
45700 72 69 74 65 28 27 3c 69 6e 66 6f 3e 55 70 64 61 74 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 65 rite('<info>Updating.'.($devMode
45720 20 3f 20 27 64 65 76 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f 69 6e .?.'dev.':.'').'dependencies</in
45740 66 6f 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 fo>');..$request->updateAll();..
45760 24 6c 69 6e 6b 73 20 3d 20 24 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 $links.=.$devMode.?.$this->packa
45780 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 61 ge->getDevRequires().:.$this->pa
457a0 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 ckage->getRequires();..foreach.(
457c0 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 2d 3e 69 6e 73 $links.as.$link).{.$request->ins
457e0 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 6b 2d 3e tall($link->getTarget(),.$link->
45800 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 getConstraint());.}.}.elseif.($t
45820 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 his->locker->isLocked($devMode))
45840 20 7b 0a 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 .{.$installFromLock.=.true;.$thi
45860 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 27 s->io->write('<info>Installing.'
45880 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 .($devMode.?.'dev.':.'').'depend
458a0 65 6e 63 69 65 73 20 66 72 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a encies.from.lock.file</info>');.
458c0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 20 26 .if.(!$this->locker->isFresh().&
458e0 26 20 21 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 &.!$devMode).{.$this->io->write(
45900 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 72 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 6f 75 74 20 '<warning>Your.lock.file.is.out.
45920 6f 66 20 73 79 6e 63 20 77 69 74 68 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c of.sync.with.your.composer.json,
45940 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 22 20 74 6f 20 75 .run."composer.phar.update".to.u
45960 70 64 61 74 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a pdate.dependencies</warning>');.
45980 7d 0a 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 20 61 73 20 24 }..foreach.($lockedPackages.as.$
459a0 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e package).{.$version.=.$package->
459c0 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 getVersion();.foreach.($aliases.
459e0 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 69 66 20 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 as.$alias).{.if.($alias['package
45a00 27 5d 20 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 61 '].===.$package->getName().&&.$a
45a20 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 lias['version'].===.$package->ge
45a40 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 5b tVersion()).{.$version.=.$alias[
45a60 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 'alias_normalized'];.break;.}.}.
45a80 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
45aa0 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e int('=',.$version);.$request->in
45ac0 73 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 stall($package->getName(),.$cons
45ae0 74 72 61 69 6e 74 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 traint);.}.}.else.{.$this->io->w
45b00 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f rite('<info>Installing.'.($devMo
45b20 64 65 20 3f 20 27 64 65 76 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f de.?.'dev.':.'').'dependencies</
45b40 69 6e 66 6f 3e 27 29 3b 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 64 65 76 4d 6f 64 65 20 3f 20 24 74 info>');..$links.=.$devMode.?.$t
45b60 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 73 28 29 20 3a his->package->getDevRequires().:
45b80 20 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 73 28 29 3b 0a .$this->package->getRequires();.
45ba0 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 24 72 65 .foreach.($links.as.$link).{.$re
45bc0 71 75 65 73 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 quest->install($link->getTarget(
45be0 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 29 3b 0a 7d 0a 7d 0a ),.$link->getConstraint());.}.}.
45c00 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 .............foreach.($installed
45c20 52 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 61 67 65 29 Repo->getPackages().as.$package)
45c40 20 7b 0a 69 66 20 28 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 .{.if.($package->getRepository()
45c60 20 3d 3d 3d 20 24 6c 6f 63 61 6c 52 65 70 6f 20 26 26 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 .===.$localRepo.&&.(!$this->upda
45c80 74 65 57 68 69 74 65 6c 69 73 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 teWhitelist.||.$this->isUpdateab
45ca0 6c 65 28 24 70 61 63 6b 61 67 65 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 le($package))).{.continue;.}..$c
45cc0 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 69 6e onstraint.=.new.VersionConstrain
45ce0 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 3b 0a t('=',.$package->getVersion());.
45d00 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 2d 3e 67 65 74 4e $request->install($package->getN
45d20 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 24 70 6f 6c 69 63 ame(),.$constraint);.}....$polic
45d40 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 73 6f 6c 76 65 72 y.=.new.DefaultPolicy();.$solver
45d60 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 24 69 .=.new.Solver($policy,.$pool,.$i
45d80 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 0a 0a 20 74 72 79 20 7b 0a 24 6f 70 65 72 61 74 69 nstalledRepo);....try.{.$operati
45da0 6f 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 ons.=.$solver->solve($request);.
45dc0 7d 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 }.catch.(SolverProblemsException
45de0 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 3c 65 72 72 6f 72 3e .$e).{.$this->io->write('<error>
45e00 59 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 73 Your.requirements.could.not.be.s
45e20 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 70 olved.to.an.installable.set.of.p
45e40 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 77 ackages.</error>');.$this->io->w
45e60 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 20 rite($e->getMessage());..return.
45e80 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d false;.}....foreach.($localRepo-
45ea0 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 0a 20 >getPackages().as.$package).{...
45ec0 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 6f 6e 74 69 6e if.(!$package->isDev()).{.contin
45ee0 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 ue;.}....foreach.($operations.as
45f00 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 28 27 75 70 64 61 74 65 27 20 3d 3d 3d .$operation).{.if.(('update'.===
45f20 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 20 26 26 20 24 6f 70 .$operation->getJobType().&&.$op
45f40 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 eration->getInitialPackage()->eq
45f60 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 28 27 75 6e 69 6e 73 74 61 6c 6c 27 20 uals($package)).||.('uninstall'.
45f80 3d 3d 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 20 26 26 20 ===.$operation->getJobType().&&.
45fa0 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 65 71 75 61 6c 73 $operation->getPackage()->equals
45fc0 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a ($package)).).{.continue.2;.}.}.
45fe0 0a 0a 20 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 6c 6f 63 6b ...if.($installFromLock).{.$lock
46000 44 61 74 61 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 44 61 74 Data.=.$this->locker->getLockDat
46020 61 28 29 3b 0a 75 6e 73 65 74 28 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 29 3b 0a 66 6f a();.unset($lockedReference);.fo
46040 72 65 61 63 68 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 reach.($lockData['packages'].as.
46060 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f $lockedPackage).{.if.(!empty($lo
46080 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 ckedPackage['source-reference'])
460a0 20 26 26 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 70 .&&.strtolower($lockedPackage['p
460c0 61 63 6b 61 67 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ackage']).===.$package->getName(
460e0 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 20 3d 20 24 6c 6f 63 6b 65 64 50 )).{.$lockedReference.=.$lockedP
46100 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 3b 0a 62 72 65 61 ackage['source-reference'];.brea
46120 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 k;.}.}.if.(isset($lockedReferenc
46140 65 29 20 26 26 20 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 20 21 3d 3d 20 24 70 61 63 6b e).&&.$lockedReference.!==.$pack
46160 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 0a 20 24 age->getSourceReference()).{...$
46180 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 61 74 69 operations[].=.new.UpdateOperati
461a0 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 0a 7d 0a on($package,.clone.$package);.}.
461c0 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a }.else.{...if.($this->update).{.
461e0 0a 20 69 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 20 26 26 20 ..if.($this->updateWhitelist.&&.
46200 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 70 61 63 6b 61 67 65 29 29 20 !$this->isUpdateable($package)).
46220 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 74 68 {.continue;.}..$newPackage.=.$th
46240 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 is->repositoryManager->findPacka
46260 67 65 28 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 ge($package->getName(),.$package
46280 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 69 66 20 28 24 6e 65 77 50 61 63 6b 61 67 65 ->getVersion());.if.($newPackage
462a0 20 26 26 20 24 6e 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 .&&.$newPackage->getSourceRefere
462c0 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 66 nce().!==.$package->getSourceRef
462e0 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 erence()).{.$operations[].=.new.
46300 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6e 65 77 50 61 UpdateOperation($package,.$newPa
46320 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 ckage);.}.}....$references.=.$th
46340 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 69 is->package->getReferences();..i
46360 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 f.(isset($references[$package->g
46380 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 etName()]).&&.$references[$packa
463a0 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ge->getName()].!==.$package->get
463c0 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 6f SourceReference()).{...$operatio
463e0 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 6e 28 24 70 61 63 6b ns[].=.new.UpdateOperation($pack
46400 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 age,.clone.$package);.}.}.}....i
46420 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 f.(!$operations).{.$this->io->wr
46440 69 74 65 28 27 4e 6f 74 68 69 6e 67 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 75 70 64 61 74 ite('Nothing.to.install.or.updat
46460 65 27 29 3b 0a 7d 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 e');.}..foreach.($operations.as.
46480 24 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 $operation).{...if.('install'.==
464a0 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 29 20 7b 0a 66 6f =.$operation->getJobType()).{.fo
464c0 72 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 reach.($operation->getPackage()-
464e0 3e 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 >getSuggests().as.$target.=>.$re
46500 61 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 ason).{.$this->suggestedPackages
46520 5b 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 [].=.array(.'source'.=>.$operati
46540 6f 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 on->getPackage()->getPrettyName(
46560 29 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 ),.'target'.=>.$target,.'reason'
46580 20 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 .=>.$reason,.);.}.}..$event.=.'C
465a0 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 3a 3a 50 52 45 omposer\Script\ScriptEvents::PRE
465c0 5f 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 _PACKAGE_'.strtoupper($operation
465e0 2d 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 ->getJobType());.if.(defined($ev
46600 65 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 ent).&&.$this->runScripts).{.$th
46620 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 74 63 68 50 61 63 is->eventDispatcher->dispatchPac
46640 6b 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 6f 70 65 kageEvent(constant($event),.$ope
46660 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f ration);.}....if.($installFromLo
46680 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 ck).{.$package.=.null;.if.('upda
466a0 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 54 79 70 65 28 29 te'.===.$operation->getJobType()
466c0 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 2d 3e 67 65 74 54 61 ).{.$package.=.$operation->getTa
466e0 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c rgetPackage();.}.elseif.('instal
46700 6c 27 20 3d 3d 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 29 l'.===.$operation->getJobType())
46720 20 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
46740 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 kage();.}.if.($package.&&.$packa
46760 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 ge->isDev()).{.$lockData.=.$this
46780 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 66 6f 72 65 61 63 68 ->locker->getLockData();.foreach
467a0 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 6c 6f 63 6b .($lockData['packages'].as.$lock
467c0 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 edPackage).{.if.(!empty($lockedP
467e0 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 20 26 26 20 73 ackage['source-reference']).&&.s
46800 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 70 61 63 6b 61 67 trtolower($lockedPackage['packag
46820 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a e']).===.$package->getName()).{.
46840 24 70 61 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 6c 6f $package->setSourceReference($lo
46860 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 ckedPackage['source-reference'])
46880 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 63 6b 61 ;.break;.}.}.}.}.else.{...$packa
468a0 67 65 20 3d 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 ge.=.null;.if.('update'.===.$ope
468c0 72 61 74 69 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 ration->getJobType()).{.$package
468e0 20 3d 20 24 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 .=.$operation->getTargetPackage(
46900 29 3b 0a 7d 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 );.}.elseif.('install'.===.$oper
46920 61 74 69 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 ation->getJobType()).{.$package.
46940 3d 20 24 6f 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 =.$operation->getPackage();.}.if
46960 20 28 24 70 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 .($package.&&.$package->isDev())
46980 20 7b 0a 24 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 .{.$references.=.$this->package-
469a0 3e 67 65 74 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 >getReferences();.if.(isset($ref
469c0 65 72 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 29 20 7b erences[$package->getName()])).{
469e0 0a 24 70 61 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 .$package->setSourceReference($r
46a00 65 66 65 72 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 eferences[$package->getName()]);
46a20 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 .}.}.}..if.($this->verbose).{.$t
46a40 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 28 73 74 72 69 6e 67 29 20 24 6f 70 65 72 61 74 69 his->io->write((string).$operati
46a60 6f 6e 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 on);.}..$this->installationManag
46a80 65 72 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 er->execute($localRepo,.$operati
46aa0 6f 6e 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c on);..$event.=.'Composer\Script\
46ac0 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 45 5f 27 2e 73 74 72 ScriptEvents::POST_PACKAGE_'.str
46ae0 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 62 54 79 70 65 28 29 toupper($operation->getJobType()
46b00 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 20 24 74 68 69 73 2d );.if.(defined($event).&&.$this-
46b20 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 6e 74 44 69 73 70 61 >runScripts).{.$this->eventDispa
46b40 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 6e 74 28 63 6f 6e 73 tcher->dispatchPackageEvent(cons
46b60 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 tant($event),.$operation);.}..if
46b80 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e .(!$this->dryRun).{.$localRepo->
46ba0 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 write();.}.}..return.true;.}..pr
46bc0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 61 63 6b 61 67 65 73 28 50 6c 61 ivate.function.aliasPackages(Pla
46be0 74 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 tformRepository.$platformRepo).{
46c00 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 2d 3e 6c 6f .if.(!$this->update.&&.$this->lo
46c20 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 20 3d 20 24 cker->isLocked()).{.$aliases.=.$
46c40 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 7d 20 65 6c this->locker->getAliases();.}.el
46c60 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 67 65 2d 3e se.{.$aliases.=.$this->package->
46c80 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 getAliases();.}..foreach.($alias
46ca0 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 es.as.$alias).{.$packages.=.arra
46cc0 79 5f 6d 65 72 67 65 28 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b y_merge(.$platformRepo->findPack
46ce0 61 67 65 73 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 61 6c 69 61 73 5b 27 ages($alias['package'],.$alias['
46d00 76 65 72 73 69 6f 6e 27 5d 29 2c 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e version']),.$this->repositoryMan
46d20 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 ager->findPackages($alias['packa
46d40 67 65 27 5d 2c 20 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 0a 29 3b 0a 66 6f 72 65 ge'],.$alias['version']).);.fore
46d60 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 70 ach.($packages.as.$package).{.$p
46d80 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e ackage->setAlias($alias['alias_n
46da0 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 ormalized']);.$package->setPrett
46dc0 79 41 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 70 61 63 6b 61 67 yAlias($alias['alias']);.$packag
46de0 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 63 6b 61 67 65 28 24 e->getRepository()->addPackage($
46e00 61 6c 69 61 73 50 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 aliasPackage.=.new.AliasPackage(
46e20 24 70 61 63 6b 61 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 $package,.$alias['alias_normaliz
46e40 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 29 3b 0a 24 61 6c 69 61 73 50 ed'],.$alias['alias']));.$aliasP
46e60 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 61 73 28 74 72 75 65 ackage->setRootPackageAlias(true
46e80 29 3b 0a 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 );.}.}..return.$aliases;.}..priv
46ea0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 61 74 65 61 62 6c 65 28 50 61 63 6b 61 67 ate.function.isUpdateable(Packag
46ec0 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 20 28 21 24 74 68 69 eInterface.$package).{.if.(!$thi
46ee0 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 s->updateWhitelist).{.throw.new.
46f00 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 69 73 55 70 64 61 74 65 61 62 6c 65 20 73 68 \LogicException('isUpdateable.sh
46f20 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 77 68 69 74 65 ould.only.be.called.when.a.white
46f40 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 list.is.present');.}..return.iss
46f60 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 et($this->updateWhitelist[$packa
46f80 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ge->getName()]);.}..............
46fa0 70 72 69 76 61 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 private.function.whitelistUpdate
46fc0 44 65 70 65 6e 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 Dependencies($localRepo,.$devMod
46fe0 65 2c 20 61 72 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 e,.array.$rootRequires,.array.$r
47000 6f 6f 74 44 65 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 ootDevRequires).{.if.(!$this->up
47020 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 dateWhitelist).{.return;.}..if.(
47040 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 $devMode).{.$rootRequires.=.arra
47060 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 74 44 65 76 52 y_merge($rootRequires,.$rootDevR
47080 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 equires);.}..$skipPackages.=.arr
470a0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 73 20 ay();.foreach.($rootRequires.as.
470c0 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 $require).{.$skipPackages[$requi
470e0 72 65 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 24 70 6f 6f re->getTarget()].=.true;.}..$poo
47100 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f l.=.new.Pool;.$pool->addReposito
47120 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 ry($localRepo);..$seen.=.array()
47140 3b 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 69 ;..foreach.($this->updateWhiteli
47160 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 st.as.$packageName.=>.$void).{.$
47180 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 66 packageQueue.=.new.\SplQueue;..f
471a0 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 65 73 28 24 70 61 63 oreach.($pool->whatProvides($pac
471c0 6b 61 67 65 4e 61 6d 65 29 20 61 73 20 24 64 65 70 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 kageName).as.$depPackage).{.$pac
471e0 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 64 65 70 50 61 63 6b 61 67 65 29 3b kageQueue->enqueue($depPackage);
47200 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 69 73 45 6d 70 .}..while.(!$packageQueue->isEmp
47220 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 51 75 65 75 65 ty()).{.$package.=.$packageQueue
47240 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 24 70 61 ->dequeue();.if.(isset($seen[$pa
47260 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a ckage->getId()])).{.continue;.}.
47280 0a 24 73 65 65 6e 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 .$seen[$package->getId()].=.true
472a0 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 ;.$this->updateWhitelist[$packag
472c0 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 72 65 71 75 69 72 65 73 e->getName()].=.true;..$requires
472e0 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 69 66 20 28 .=.$package->getRequires();.if.(
47300 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 $devMode).{.$requires.=.array_me
47320 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 rge($requires,.$package->getDevR
47340 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 equires());.}..foreach.($require
47360 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 s.as.$require).{.$requirePackage
47380 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 72 65 71 75 69 72 65 s.=.$pool->whatProvides($require
473a0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 ->getTarget());..foreach.($requi
473c0 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 20 7b rePackages.as.$requirePackage).{
473e0 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 .if.(isset($skipPackages[$requir
47400 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 ePackage->getName()])).{.continu
47420 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 e;.}.$packageQueue->enqueue($req
47440 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a uirePackage);.}.}.}.}.}.........
47460 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 74 65 28 ..public.static.function.create(
47480 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f IOInterface.$io,.Composer.$compo
474a0 73 65 72 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 ser,.EventDispatcher.$eventDispa
474c0 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 tcher.=.null,.AutoloadGenerator.
474e0 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 65 76 $autoloadGenerator.=.null).{.$ev
47500 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 68 65 72 entDispatcher.=.$eventDispatcher
47520 20 3f 3a 20 6e 65 77 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 .?:.new.EventDispatcher($compose
47540 72 2c 20 24 69 6f 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 r,.$io);.$autoloadGenerator.=.$a
47560 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3f 3a 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 utoloadGenerator.?:.new.Autoload
47580 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 0a 24 Generator;..return.new.static(.$
475a0 69 6f 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 24 63 6f io,.$composer->getPackage(),.$co
475c0 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 0a 24 63 mposer->getDownloadManager(),.$c
475e0 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 28 29 2c omposer->getRepositoryManager(),
47600 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 70 6f 73 .$composer->getLocker(),.$compos
47620 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 0a 24 65 er->getInstallationManager(),.$e
47640 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 ventDispatcher,.$autoloadGenerat
47660 6f 72 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 69 or.);.}..public.function.setAddi
47680 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 69 tionalInstalledRepository(Reposi
476a0 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 6c toryInterface.$additionalInstall
476c0 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 61 edRepository).{.$this->additiona
476e0 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 6e lInstalledRepository.=.$addition
47700 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 24 alInstalledRepository;..return.$
47720 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 73 this;.}........public.function.s
47740 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 73 etDryRun($dryRun.=.true).{.$this
47760 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 72 ->dryRun.=.(boolean).$dryRun;..r
47780 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
477a0 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 75 ction.setPreferSource($preferSou
477c0 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 63 rce.=.true).{.$this->preferSourc
477e0 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 65 e.=.(boolean).$preferSource;..re
47800 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 63 turn.$this;.}........public.func
47820 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3d 20 74 72 75 65 29 0a 7b tion.setUpdate($update.=.true).{
47840 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 .$this->update.=.(boolean).$upda
47860 74 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 70 75 62 6c te;..return.$this;.}........publ
47880 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 ic.function.setDevMode($devMode.
478a0 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c =.true).{.$this->devMode.=.(bool
478c0 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ean).$devMode;..return.$this;.}.
478e0 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 75 6e 53 63 72 .......public.function.setRunScr
47900 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 ipts($runScripts.=.true).{.$this
47920 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 72 75 6e 53 63 72 ->runScripts.=.(boolean).$runScr
47940 69 70 74 73 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 70 75 ipts;..return.$this;.}........pu
47960 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 65 28 24 76 65 72 62 6f 73 blic.function.setVerbose($verbos
47980 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 28 62 6f e.=.true).{.$this->verbose.=.(bo
479a0 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a olean).$verbose;..return.$this;.
479c0 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 55 70 64 }.........public.function.setUpd
479e0 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a ateWhitelist(array.$packages).{.
47a00 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 5f 66 $this->updateWhitelist.=.array_f
47a20 6c 69 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 6f 6c 6f 77 65 72 27 2c 20 24 70 61 63 lip(array_map('strtolower',.$pac
47a40 6b 61 67 65 73 29 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 kages));..return.$this;.}.}.<?ph
47a60 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\
47a80 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 Autoload;..use.Composer\Installe
47aa0 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 70 6f r\InstallationManager;.use.Compo
47ac0 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 73 65 20 43 6f ser\Package\AliasPackage;.use.Co
47ae0 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 61 63 65 3b mposer\Package\PackageInterface;
47b00 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 74 .use.Composer\Repository\Reposit
47b20 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 55 74 69 6c 5c oryInterface;.use.Composer\Util\
47b40 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 6f 6c 6f 61 64 47 Filesystem;......class.AutoloadG
47b60 65 6e 65 72 61 74 6f 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 enerator.{.public.function.dump(
47b80 52 65 70 6f 73 69 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 RepositoryInterface.$localRepo,.
47ba0 50 61 63 6b 61 67 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 PackageInterface.$mainPackage,.I
47bc0 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
47be0 4d 61 6e 61 67 65 72 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 62 63 4c 69 6e 6b 73 20 3d 20 Manager,.$targetDir,.$bcLinks.=.
47c00 66 61 6c 73 65 29 0a 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 false).{.$filesystem.=.new.Files
47c20 79 73 74 65 6d 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 ystem();.$filesystem->ensureDire
47c40 63 74 6f 72 79 45 78 69 73 74 73 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 ctoryExists($installationManager
47c60 2d 3e 67 65 74 56 65 6e 64 6f 72 50 61 74 68 28 29 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d ->getVendorPath());.$filesystem-
47c80 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 61 72 67 65 74 44 69 >ensureDirectoryExists($targetDi
47ca0 72 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 73 74 72 74 72 28 72 65 61 6c 70 61 74 68 r);.$vendorPath.=.strtr(realpath
47cc0 28 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 56 65 6e 64 6f 72 ($installationManager->getVendor
47ce0 50 61 74 68 28 29 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 72 65 6c 56 65 6e 64 6f 72 50 Path()),.'\\',.'/');.$relVendorP
47d00 61 74 68 20 3d 20 24 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 ath.=.$filesystem->findShortestP
47d20 61 74 68 28 67 65 74 63 77 64 28 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 ath(getcwd(),.$vendorPath,.true)
47d40 3b 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 ;.$vendorPathCode.=.$filesystem-
47d60 3e 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 >findShortestPathCode(realpath($
47d80 74 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 targetDir),.$vendorPath,.true);.
47da0 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 3d 20 24 66 69 $vendorPathToTargetDirCode.=.$fi
47dc0 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 43 6f 64 65 28 24 lesystem->findShortestPathCode($
47de0 76 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 vendorPath,.realpath($targetDir)
47e00 2c 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c ,.true);..$appBaseDirCode.=.$fil
47e20 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 43 6f 64 65 28 24 76 esystem->findShortestPathCode($v
47e40 65 6e 64 6f 72 50 61 74 68 2c 20 67 65 74 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 endorPath,.getcwd(),.true);.$app
47e60 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 BaseDirCode.=.str_replace('__DIR
47e80 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f __',.'$vendorDir',.$appBaseDirCo
47ea0 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c de);..$namespacesFile.=.<<<EOF.<
47ec0 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 2e 70 68 70 20 ?php..//.autoload_namespace.php.
47ee0 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 65 6e 64 6f 72 44 generated.by.Composer..\$vendorD
47f00 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 ir.=.$vendorPathCode;.\$baseDir.
47f20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 =.$appBaseDirCode;..return.array
47f40 28 0a 0a 45 4f 46 3b 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 (..EOF;..$packageMap.=.$this->bu
47f60 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ildPackageMap($installationManag
47f80 65 72 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 er,.$mainPackage,.$localRepo->ge
47fa0 74 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 tPackages());.$autoloads.=.$this
47fc0 2d 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 29 3b 0a 0a ->parseAutoloads($packageMap);..
47fe0 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 61 73 20 foreach.($autoloads['psr-0'].as.
48000 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 $namespace.=>.$paths).{.$exporte
48020 64 50 61 74 68 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 74 68 dPaths.=.array();.foreach.($path
48040 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d s.as.$path).{.$exportedPaths[].=
48060 20 24 74 68 69 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 .$this->getPathCode($filesystem,
48080 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 .$relVendorPath,.$vendorPath,.$p
480a0 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 ath);.}.$exportedPrefix.=.var_ex
480c0 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 port($namespace,.true);.$namespa
480e0 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 cesFile..=."....$exportedPrefix.
48100 3d 3e 20 22 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 20 =>.";.if.(count($exportedPaths).
48120 3e 20 31 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 >.1).{.$namespacesFile..=."array
48140 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 64 50 61 74 68 73 29 (".implode(',.',.$exportedPaths)
48160 2e 22 29 2c 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c ."),\n";.}.else.{.$namespacesFil
48180 65 20 2e 3d 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 30 5d 2e 22 2c 5c 6e 22 3b 0a 7d 0a e..=.$exportedPaths[0].",\n";.}.
481a0 7d 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 63 }.$namespacesFile..=.");\n";..$c
481c0 6c 61 73 73 6d 61 70 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 lassmapFile.=.<<<EOF.<?php..//.a
481e0 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 utoload_classmap.php.generated.b
48200 79 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 y.Composer..\$vendorDir.=.$vendo
48220 72 50 61 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 rPathCode;.\$baseDir.=.$appBaseD
48240 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 0a 20 irCode;..return.array(..EOF;....
48260 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 $targetDirLoader.=.null;.$mainAu
48280 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f toload.=.$mainPackage->getAutolo
482a0 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 ad();.if.($mainPackage->getTarge
482c0 74 44 69 72 28 29 20 26 26 20 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d tDir().&&.$mainAutoload['psr-0']
482e0 29 20 7b 0a 24 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 ).{.$levels.=.count(explode('/',
48300 20 74 72 69 6d 28 73 74 72 74 72 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 .trim(strtr($mainPackage->getTar
48320 67 65 74 44 69 72 28 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 29 3b 0a 24 70 getDir(),.'\\',.'/'),.'/')));.$p
48340 72 65 66 69 78 65 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 refixes.=.implode(',.',.array_ma
48360 70 28 66 75 6e 63 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 p(function.($prefix).{.return.va
48380 72 5f 65 78 70 6f 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 r_export($prefix,.true);.},.arra
483a0 79 5f 6b 65 79 73 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 y_keys($mainAutoload['psr-0'])))
483c0 3b 0a 24 62 61 73 65 44 69 72 46 72 6f 6d 56 65 6e 64 6f 72 44 69 72 43 6f 64 65 20 3d 20 24 66 ;.$baseDirFromVendorDirCode.=.$f
483e0 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 43 6f 64 65 28 ilesystem->findShortestPathCode(
48400 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 67 65 74 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 0a 24 $vendorPath,.getcwd(),.true);..$
48420 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 20 20 20 20 73 70 6c targetDirLoader.=.<<<EOF.....spl
48440 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 66 75 6e 63 74 69 6f 6e 28 5c 24 63 6c _autoload_register(function(\$cl
48460 61 73 73 29 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 ass).{.........\$dir.=.$baseDirF
48480 72 6f 6d 56 65 6e 64 6f 72 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 romVendorDirCode...'/';.........
484a0 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);..
484c0 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.\$
484e0 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.!==.
48500 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)).{....
48520 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;..........
48540 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.
48560 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
48580 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)).'
485a0 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.=
485c0 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
485e0 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
48600 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;.............}.............
48620 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
48640 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 29 3b 0a 0a 0a 45 4f urn.true;.........}.....});...EO
48660 46 3b 0a 7d 0a 0a 0a 20 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 3d F;.}....$autoloads['classmap'].=
48680 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 72 28 .new.\RecursiveIteratorIterator(
486a0 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 75 74 new.\RecursiveArrayIterator($aut
486c0 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 28 24 oloads['classmap']));.foreach.($
486e0 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 20 7b autoloads['classmap'].as.$dir).{
48700 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 72 65 .foreach.(ClassMapGenerator::cre
48720 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 68 29 ateMap($dir).as.$class.=>.$path)
48740 20 7b 0a 24 70 61 74 68 20 3d 20 27 2f 27 2e 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 .{.$path.=.'/'.$filesystem->find
48760 53 68 6f 72 74 65 73 74 50 61 74 68 28 67 65 74 63 77 64 28 29 2c 20 24 70 61 74 68 2c 20 74 72 ShortestPath(getcwd(),.$path,.tr
48780 75 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 ue);.$classmapFile..=.'....'.var
487a0 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 24 62 61 73 65 _export($class,.true).'.=>.$base
487c0 44 69 72 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 2e Dir...'.var_export($path,.true).
487e0 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c ",\n";.}.}.$classmapFile..=.");\
48800 6e 22 3b 0a 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 22 22 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 n";..$filesCode.=."";.$autoloads
48820 5b 27 66 69 6c 65 73 27 5d 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 ['files'].=.new.\RecursiveIterat
48840 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 41 72 72 61 79 49 74 orIterator(new.\RecursiveArrayIt
48860 65 72 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 29 29 3b 0a 66 6f erator($autoloads['files']));.fo
48880 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 20 61 73 20 24 66 reach.($autoloads['files'].as.$f
488a0 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 72 65 unctionFile).{.$filesCode..=.'re
488c0 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f quire.__DIR__...'..var_export('/
488e0 27 2e 24 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 '.$filesystem->findShortestPath(
48900 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2c 20 74 72 75 $vendorPath,.$functionFile),.tru
48920 65 29 2e 22 3b 5c 6e 22 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 e).";\n";.}..file_put_contents($
48940 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e targetDir.'/autoload_namespaces.
48960 70 68 70 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 php',.$namespacesFile);.file_put
48980 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 6c 6f 61 64 5f _contents($targetDir.'/autoload_
489a0 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 classmap.php',.$classmapFile);.i
489c0 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 f.($includePathFile.=.$this->get
489e0 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 IncludePathsFile($packageMap,.$f
48a00 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 ilesystem,.$relVendorPath,.$vend
48a20 6f 72 50 61 74 68 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 73 orPath,.$vendorPathCode,.$appBas
48a40 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 eDirCode)).{.file_put_contents($
48a60 74 61 72 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 targetDir.'/include_paths.php',.
48a80 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f $includePathFile);.}.file_put_co
48aa0 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 ntents($vendorPath.'/autoload.ph
48ac0 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 p',.$this->getAutoloadFile($vend
48ae0 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 74 72 75 65 2c 20 74 72 75 orPathToTargetDirCode,.true,.tru
48b00 65 2c 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c 20 24 e,.(Boolean).$includePathFile,.$
48b20 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 29 29 3b 0a 63 targetDirLoader,.$filesCode));.c
48b40 6f 70 79 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 opy(__DIR__.'/ClassLoader.php',.
48b60 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 29 3b 0a $targetDir.'/ClassLoader.php');.
48b80 0a 0a 20 69 66 20 28 24 62 63 4c 69 6e 6b 73 29 20 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e ...if.($bcLinks).{.$filesystem->
48ba0 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 76 65 6e 64 6f 72 50 61 74 ensureDirectoryExists($vendorPat
48bc0 68 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 29 3b 0a 24 64 65 70 72 65 63 61 74 65 64 20 3d 20 22 h.'/.composer');.$deprecated.=."
48be0 2f 2f 20 44 65 70 72 65 63 61 74 65 64 20 66 69 6c 65 2c 20 75 73 65 20 74 68 65 20 6f 6e 65 20 //.Deprecated.file,.use.the.one.
48c00 69 6e 20 72 6f 6f 74 20 6f 66 20 76 65 6e 64 6f 72 20 64 69 72 5c 6e 22 2e 0a 22 74 72 69 67 67 in.root.of.vendor.dir\n".."trigg
48c20 65 72 5f 65 72 72 6f 72 28 5f 5f 46 49 4c 45 5f 5f 2e 27 20 69 73 20 64 65 70 72 65 63 61 74 65 er_error(__FILE__.'.is.deprecate
48c40 64 2c 20 70 6c 65 61 73 65 20 75 73 65 20 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 d,.please.use.vendor/autoload.ph
48c60 70 20 6f 72 20 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 2a 20 p.or.vendor/composer/autoload_*.
48c80 69 6e 73 74 65 61 64 27 2e 50 48 50 5f 45 4f 4c 2e 27 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 72 instead'.PHP_EOL.'See.https://gr
48ca0 6f 75 70 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 66 6f 72 75 6d 2f 23 21 6d 73 67 2f 63 6f 6d 70 oups.google.com/forum/#!msg/comp
48cc0 6f 73 65 72 2d 64 65 76 2f 66 57 49 73 33 4b 6f 63 77 6f 41 2f 6e 55 33 61 4c 6b 6f 39 4c 68 51 oser-dev/fWIs3KocwoA/nU3aLko9LhQ
48ce0 4a 20 66 6f 72 20 64 65 74 61 69 6c 73 27 2c 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 J.for.details',.E_USER_DEPRECATE
48d00 44 29 3b 5c 6e 22 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f D);\n";.file_put_contents($vendo
48d20 72 50 61 74 68 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 rPath.'/.composer/autoload_names
48d40 70 61 63 65 73 2e 70 68 70 27 2c 20 22 3c 3f 70 68 70 5c 6e 7b 24 64 65 70 72 65 63 61 74 65 64 paces.php',."<?php\n{$deprecated
48d60 7d 5c 6e 72 65 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f }\nreturn.include.dirname(__DIR_
48d80 5f 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 _).'/composer/autoload_namespace
48da0 73 2e 70 68 70 27 3b 5c 6e 22 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 s.php';\n");.file_put_contents($
48dc0 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f vendorPath.'/.composer/autoload_
48de0 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 22 3c 3f 70 68 70 5c 6e 7b 24 64 65 70 72 65 63 61 classmap.php',."<?php\n{$depreca
48e00 74 65 64 7d 5c 6e 72 65 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 64 69 72 6e 61 6d 65 28 5f 5f 44 ted}\nreturn.include.dirname(__D
48e20 49 52 5f 5f 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d IR__).'/composer/autoload_classm
48e40 61 70 2e 70 68 70 27 3b 5c 6e 22 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 ap.php';\n");.file_put_contents(
48e60 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 $vendorPath.'/.composer/autoload
48e80 2e 70 68 70 27 2c 20 22 3c 3f 70 68 70 5c 6e 7b 24 64 65 70 72 65 63 61 74 65 64 7d 5c 6e 72 65 .php',."<?php\n{$deprecated}\nre
48ea0 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 2e 27 2f turn.include.dirname(__DIR__).'/
48ec0 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 3b 5c 6e 22 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e autoload.php';\n");.file_put_con
48ee0 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 2e 63 6f 6d 70 6f 73 65 72 2f 43 6c tents($vendorPath.'/.composer/Cl
48f00 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 22 3c 3f 70 68 70 5c 6e 7b 24 64 65 70 72 65 63 assLoader.php',."<?php\n{$deprec
48f20 61 74 65 64 7d 5c 6e 72 65 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 64 69 72 6e 61 6d 65 28 5f 5f ated}\nreturn.include.dirname(__
48f40 44 49 52 5f 5f 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 DIR__).'/composer/ClassLoader.ph
48f60 70 27 3b 5c 6e 22 29 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 29 20 7b p';\n");.if.($includePathFile).{
48f80 0a 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 .file_put_contents($vendorPath.'
48fa0 2f 2e 63 6f 6d 70 6f 73 65 72 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 22 /.composer/include_paths.php',."
48fc0 3c 3f 70 68 70 5c 6e 7b 24 64 65 70 72 65 63 61 74 65 64 7d 5c 6e 72 65 74 75 72 6e 20 69 6e 63 <?php\n{$deprecated}\nreturn.inc
48fe0 6c 75 64 65 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 lude.dirname(__DIR__).'/composer
49000 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 5c 6e 22 29 3b 0a 7d 0a 7d 0a 7d 0a /include_paths.php';\n");.}.}.}.
49020 0a 70 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 .public.function.buildPackageMap
49040 28 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 (InstallationManager.$installati
49060 6f 6e 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 onManager,.PackageInterface.$mai
49080 6e 50 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 nPackage,.array.$packages).{...$
490a0 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 packageMap.=.array();....$packag
490c0 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 27 27 29 eMap[].=.array($mainPackage,.'')
490e0 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 24 70 61 63 6b 61 67 ;..foreach.($packages.as.$packag
49100 65 29 20 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 e).{.if.($package.instanceof.Ali
49120 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 24 70 61 63 6b 61 67 asPackage).{.continue;.}.$packag
49140 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2c 0a 24 69 6e 73 74 61 eMap[].=.array(.$package,.$insta
49160 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 llationManager->getInstallPath($
49180 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 package).);.}..return.$packageMa
491a0 70 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 61 72 73 p;.}........public.function.pars
491c0 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a eAutoloads(array.$packageMap).{.
491e0 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e $autoloads.=.array('classmap'.=>
49200 20 61 72 72 61 79 28 29 2c 20 27 70 73 72 2d 30 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 20 27 66 .array(),.'psr-0'.=>.array(),.'f
49220 69 6c 65 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 24 70 61 63 iles'.=>.array());.foreach.($pac
49240 6b 61 67 65 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 kageMap.as.$item).{.list($packag
49260 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e e,.$installPath).=.$item;..if.(n
49280 75 6c 6c 20 21 3d 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 ull.!==.$package->getTargetDir()
492a0 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 ).{.$installPath.=.substr($insta
492c0 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d llPath,.0,.-strlen('/'.$package-
492e0 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 >getTargetDir()));.}..foreach.($
49300 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 70 65 20 package->getAutoload().as.$type.
49320 3d 3e 20 24 6d 61 70 70 69 6e 67 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 =>.$mapping).{...if.(!is_array($
49340 6d 61 70 70 69 6e 67 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 mapping)).{.continue;.}.foreach.
49360 28 24 6d 61 70 70 69 6e 67 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 ($mapping.as.$namespace.=>.$path
49380 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 s).{.foreach.((array).$paths.as.
493a0 24 70 61 74 68 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 $path).{.$autoloads[$type][$name
493c0 73 70 61 63 65 5d 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f space][].=.empty($installPath).?
493e0 20 24 70 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 3b .$path.:.$installPath.'/'.$path;
49400 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 .}.}.}.}..foreach.($autoloads.as
49420 20 24 74 79 70 65 20 3d 3e 20 24 6d 61 70 73 29 20 7b 0a 6b 72 73 6f 72 74 28 24 61 75 74 6f 6c .$type.=>.$maps).{.krsort($autol
49440 6f 61 64 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 74 6f 6c 6f 61 oads[$type]);.}..return.$autoloa
49460 64 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 63 72 65 ds;.}........public.function.cre
49480 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 0a 7b 0a 24 6c ateLoader(array.$autoloads).{.$l
494a0 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 0a 69 66 20 28 oader.=.new.ClassLoader();..if.(
494c0 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 20 7b 0a 66 6f isset($autoloads['psr-0'])).{.fo
494e0 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 61 73 20 24 6e reach.($autoloads['psr-0'].as.$n
49500 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 72 2d 3e 61 64 amespace.=>.$path).{.$loader->ad
49520 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 72 65 74 75 72 d($namespace,.$path);.}.}..retur
49540 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 63 74 69 6f 6e n.$loader;.}..protected.function
49560 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 24 70 61 63 6b .getIncludePathsFile(array.$pack
49580 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 74 65 6d 2c 20 ageMap,.Filesystem.$filesystem,.
495a0 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 $relVendorPath,.$vendorPath,.$ve
495c0 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).{
495e0 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
49600 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
49620 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
49640 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
49660 67 65 74 44 69 72 28 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 getDir()).{.$installPath.=.subst
49680 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 2f 27 2e 24 r($installPath,.0,.-strlen('/'.$
496a0 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 0a 0a 66 6f package->getTargetDir()));.}..fo
496c0 72 65 61 63 68 20 28 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 reach.($package->getIncludePaths
496e0 28 29 20 61 73 20 24 69 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 ().as.$includePath).{.$includePa
49700 74 68 20 3d 20 74 72 69 6d 28 24 69 6e 63 6c 75 64 65 50 61 74 68 2c 20 27 2f 27 29 3b 0a 24 69 th.=.trim($includePath,.'/');.$i
49720 6e 63 6c 75 64 65 50 61 74 68 73 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 ncludePaths[].=.empty($installPa
49740 74 68 29 20 3f 20 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 th).?.$includePath.:.$installPat
49760 68 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 h.'/'.$includePath;.}.}..if.(!$i
49780 6e 63 6c 75 64 65 50 61 74 68 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 ncludePaths).{.return;.}..$inclu
497a0 64 65 50 61 74 68 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 69 dePathsFile.=.<<<EOF.<?php..//.i
497c0 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f nclude_paths.php.generated.by.Co
497e0 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
49800 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
49820 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 66 6f 72 65 61 63 de;..return.array(..EOF;..foreac
49840 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
49860 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 22 20 2e 20 24 74 68 69 73 cludePathsFile..=."...."...$this
49880 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 72 65 6c 56 ->getPathCode($filesystem,.$relV
498a0 65 6e 64 6f 72 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 endorPath,.$vendorPath,.$path)..
498c0 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 46 .",\n";.}..return.$includePathsF
498e0 69 6c 65 20 2e 20 22 29 3b 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ile...");\n";.}..protected.funct
49900 69 6f 6e 20 67 65 74 50 61 74 68 43 6f 64 65 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 ion.getPathCode(Filesystem.$file
49920 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 system,.$relVendorPath,.$vendorP
49940 61 74 68 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 74 ath,.$path).{.$path.=.strtr($pat
49960 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 h,.'\\',.'/');.$baseDir.=.'';.if
49980 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 68 28 24 .(!$filesystem->isAbsolutePath($
499a0 70 61 74 68 29 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2c 20 24 72 65 6c 56 path)).{.if.(strpos($path,.$relV
499c0 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 24 70 61 74 68 20 3d 20 73 75 endorPath).===.0).{...$path.=.su
499e0 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 bstr($path,.strlen($relVendorPat
49a00 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 20 2e 20 27 3b h));.$baseDir.=.'$vendorDir...';
49a20 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 27 2f 27 2e 24 70 61 74 68 3b 0a 24 62 61 .}.else.{.$path.=.'/'.$path;.$ba
49a40 73 65 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 seDir.=.'$baseDir...';.}.}.elsei
49a60 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d f.(strpos($path,.$vendorPath).==
49a80 3d 20 30 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 =.0).{.$path.=.substr($path,.str
49aa0 6c 65 6e 28 24 76 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 len($vendorPath));.$baseDir.=.'$
49ac0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 61 73 65 44 69 vendorDir...';.}..return.$baseDi
49ae0 72 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 72 r.var_export($path,.true);.}..pr
49b00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 otected.function.getAutoloadFile
49b20 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 2c 20 24 75 73 ($vendorPathToTargetDirCode,.$us
49b40 65 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 ePSR0,.$useClassMap,.$useInclude
49b60 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f Path,.$targetDirLoader,.$filesCo
49b80 64 65 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f de).{.if.($filesCode).{.$filesCo
49ba0 64 65 20 3d 20 22 5c 6e 22 2e 24 66 69 6c 65 73 43 6f 64 65 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d de.=."\n".$filesCode;.}..$file.=
49bc0 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 2e 70 68 .<<<HEADER.<?php..//.autoload.ph
49be0 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 69 66 20 28 21 63 6c 61 p.generated.by.Composer.if.(!cla
49c00 73 73 5f 65 78 69 73 74 73 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 5c 5c 41 75 74 6f 6c 6f 61 64 5c ss_exists('Composer\\\\Autoload\
49c20 5c 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 2c 20 66 61 6c 73 65 29 29 20 7b 0a 20 20 20 20 72 \\\ClassLoader',.false)).{.....r
49c40 65 71 75 69 72 65 20 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 equire.$vendorPathToTargetDirCod
49c60 65 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 24 66 69 6c 65 73 e...'/ClassLoader.php';.}.$files
49c80 43 6f 64 65 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 66 75 6e 63 74 Code.return.call_user_func(funct
49ca0 69 6f 6e 28 29 20 7b 0a 20 20 20 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 5c 43 6f 6d ion().{.....\$loader.=.new.\\Com
49cc0 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a poser\\Autoload\\ClassLoader();.
49ce0 20 20 20 20 5c 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 54 ....\$composerDir.=.$vendorPathT
49d00 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 3b 0a 0a 0a 48 45 41 44 45 52 3b 0a 0a 69 66 20 28 24 oTargetDirCode;...HEADER;..if.($
49d20 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 useIncludePath).{.$file..=.<<<'I
49d40 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d NCLUDE_PATH'.....$includePaths.=
49d60 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 69 6e 63 6c 75 64 .require.$composerDir...'/includ
49d80 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 20 20 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 e_paths.php';.....array_unshift(
49da0 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 28 $includePaths,.get_include_path(
49dc0 29 29 3b 0a 20 20 20 20 73 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 ));.....set_include_path(join(PA
49de0 54 48 5f 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 TH_SEPARATOR,.$includePaths));..
49e00 0a 49 4e 43 4c 55 44 45 5f 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 50 53 52 30 29 20 .INCLUDE_PATH;.}..if.($usePSR0).
49e20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 24 6d 61 70 20 3d 20 {.$file..=.<<<'PSR0'.....$map.=.
49e40 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 require.$composerDir...'/autoloa
49e60 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 d_namespaces.php';.....foreach.(
49e80 24 6d 61 70 20 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 20 $map.as.$namespace.=>.$path).{..
49ea0 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 .......$loader->add($namespace,.
49ec0 24 70 61 74 68 29 3b 0a 20 20 20 20 7d 0a 0a 0a 50 53 52 30 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 $path);.....}...PSR0;.}..if.($us
49ee0 65 43 6c 61 73 73 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 eClassMap).{.$file..=.<<<'CLASSM
49f00 41 50 27 0a 20 20 20 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d AP'.....$classMap.=.require.$com
49f20 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 poserDir...'/autoload_classmap.p
49f40 68 70 27 3b 0a 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 hp';.....if.($classMap).{.......
49f60 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 70 ..$loader->addClassMap($classMap
49f80 29 3b 0a 20 20 20 20 7d 0a 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d );.....}...CLASSMAP;.}..$file..=
49fa0 20 24 74 61 72 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 .$targetDirLoader;..return.$file
49fc0 20 2e 20 3c 3c 3c 27 46 4f 4f 54 45 52 27 0a 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 ...<<<'FOOTER'.....$loader->regi
49fe0 73 74 65 72 28 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 29 3b ster();......return.$loader;.});
4a000 0a 0a 46 4f 4f 54 45 52 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..FOOTER;.}.}.<?php.............
4a020 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 0a 0a namespace.Composer\Autoload;....
4a040 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a ...class.ClassMapGenerator.{....
4a060 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 28 24 ...public.static.function.dump($
4a080 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a dirs,.$file).{.$maps.=.array();.
4a0a0 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 24 6d 61 70 73 .foreach.($dirs.as.$dir).{.$maps
4a0c0 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 73 74 61 74 69 63 3a 3a 63 72 .=.array_merge($maps,.static::cr
4a0e0 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 eateMap($dir));.}..file_put_cont
4a100 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c 3f 70 68 70 20 72 65 74 75 72 ents($file,.sprintf('<?php.retur
4a120 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 70 73 2c 20 74 72 75 65 29 29 n.%s;',.var_export($maps,.true))
4a140 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 66 75 6e 63 74 );.}.........public.static.funct
4a160 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 ion.createMap($dir).{.if.(is_str
4a180 69 6e 67 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 64 69 72 29 29 20 ing($dir)).{.if.(is_file($dir)).
4a1a0 7b 0a 24 64 69 72 20 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 {.$dir.=.array(new.\SplFileInfo(
4a1c0 24 64 69 72 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 6e 65 77 20 5c 52 65 63 $dir));.}.else.{.$dir.=.new.\Rec
4a1e0 75 72 73 69 76 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 ursiveIteratorIterator(new.\Recu
4a200 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 29 29 3b 0a 7d rsiveDirectoryIterator($dir));.}
4a220 0a 7d 0a 0a 24 6d 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 64 .}..$map.=.array();..foreach.($d
4a240 69 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c ir.as.$file).{.if.(!$file->isFil
4a260 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 66 69 6c e()).{.continue;.}..$path.=.$fil
4a280 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 70 61 74 68 69 6e 66 6f 28 e->getRealPath();..if.(pathinfo(
4a2a0 24 70 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 20 21 3d 3d 20 27 $path,.PATHINFO_EXTENSION).!==.'
4a2c0 70 68 70 27 29 20 7b 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 php').{.continue;.}..$classes.=.
4a2e0 73 65 6c 66 3a 3a 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 3b 0a 0a 66 6f 72 65 61 self::findClasses($path);..forea
4a300 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 24 6d 61 70 5b 24 ch.($classes.as.$class).{.$map[$
4a320 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 0a 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 class].=.$path;.}..}..return.$ma
4a340 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
4a360 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 63 6f 6e 74 65 tion.findClasses($path).{.$conte
4a380 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 61 74 68 29 3b 0a nts.=.file_get_contents($path);.
4a3a0 74 72 79 20 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 74 6f 6b 65 6e 5f 67 65 74 5f 61 6c 6c 28 24 63 try.{.$tokens.=.token_get_all($c
4a3c0 6f 6e 74 65 6e 74 73 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 ontents);.}.catch.(\Exception.$e
4a3e0 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 28 27 ).{.throw.new.RuntimeException('
4a400 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 6e 73 69 64 Could.not.scan.for.classes.insid
4a420 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 73 61 67 65 28 e.'.$path.":.\n".$e->getMessage(
4a440 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 24 54 5f 54 52 41 49 54 20 3d 20 76 65 72 73 69 6f 6e 5f ),.0,.$e);.}.$T_TRAIT.=.version_
4a460 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 27 2c 20 27 3c 27 29 compare(PHP_VERSION,.'5.4',.'<')
4a480 20 3f 20 2d 31 20 3a 20 54 5f 54 52 41 49 54 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 .?.-1.:.T_TRAIT;..$classes.=.arr
4a4a0 61 79 28 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 ay();..$namespace.=.'';.for.($i.
4a4c0 3d 20 30 2c 20 24 6d 61 78 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 3b 20 24 69 20 3c =.0,.$max.=.count($tokens);.$i.<
4a4e0 20 24 6d 61 78 3b 20 24 69 2b 2b 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b .$max;.$i++).{.$token.=.$tokens[
4a500 24 69 5d 3b 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 $i];..if.(is_string($token)).{.c
4a520 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 27 27 3b 0a 0a 73 77 69 74 63 68 ontinue;.}..$class.=.'';..switch
4a540 20 28 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 61 73 65 20 54 5f 4e 41 4d 45 53 50 41 43 45 3a .($token[0]).{.case.T_NAMESPACE:
4a560 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 20 77 68 69 6c 65 20 28 28 24 74 20 3d .$namespace.=.'';...while.(($t.=
4a580 20 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 74 29 29 .$tokens[++$i]).&&.is_array($t))
4a5a0 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 5b 30 5d 2c 20 61 72 72 61 79 28 54 5f 53 .{.if.(in_array($t[0],.array(T_S
4a5c0 54 52 49 4e 47 2c 20 54 5f 4e 53 5f 53 45 50 41 52 41 54 4f 52 29 29 29 20 7b 0a 24 6e 61 6d 65 TRING,.T_NS_SEPARATOR))).{.$name
4a5e0 73 70 61 63 65 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 20 2e space..=.$t[1];.}.}.$namespace..
4a600 3d 20 27 5c 5c 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 54 5f 43 4c 41 53 53 3a 0a 63 61 73 =.'\\';.break;.case.T_CLASS:.cas
4a620 65 20 54 5f 49 4e 54 45 52 46 41 43 45 3a 0a 63 61 73 65 20 24 54 5f 54 52 41 49 54 3a 0a 0a 20 e.T_INTERFACE:.case.$T_TRAIT:...
4a640 77 68 69 6c 65 20 28 28 24 74 20 3d 20 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 69 while.(($t.=.$tokens[++$i]).&&.i
4a660 73 5f 61 72 72 61 79 28 24 74 29 29 20 7b 0a 69 66 20 28 54 5f 53 54 52 49 4e 47 20 3d 3d 3d 20 s_array($t)).{.if.(T_STRING.===.
4a680 24 74 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 20 65 6c 73 65 $t[0]).{.$class..=.$t[1];.}.else
4a6a0 69 66 20 28 24 63 6c 61 73 73 20 21 3d 3d 20 27 27 20 26 26 20 54 5f 57 48 49 54 45 53 50 41 43 if.($class.!==.''.&&.T_WHITESPAC
4a6c0 45 20 3d 3d 20 24 74 5b 30 5d 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 63 6c 61 73 73 E.==.$t[0]).{.break;.}.}..$class
4a6e0 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 63 6c 61 73 73 es[].=.ltrim($namespace...$class
4a700 2c 20 27 5c 5c 27 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a ,.'\\');.break;.default:.break;.
4a720 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a }.}..return.$classes;.}.}.<?php.
4a740 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
4a760 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 67 65 5c wnloader;..use.Composer\Package\
4a780 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 44 PackageInterface;.use.Composer\D
4a7a0 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 ownloader\DownloaderInterface;.u
4a7c0 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 0a 0a 0a se.Composer\Util\Filesystem;....
4a7e0 0a 0a 0a 63 6c 61 73 73 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 ...class.DownloadManager.{.priva
4a800 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 70 72 69 76 61 74 te.$preferSource.=.false;.privat
4a820 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 77 6e 6c 6f 61 64 e.$filesystem;.private.$download
4a840 65 72 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 ers.=.array();.......public.func
4a860 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 6f 75 72 63 65 20 3d tion.__construct($preferSource.=
4a880 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 79 73 74 65 6d 20 3d .false,.Filesystem.$filesystem.=
4a8a0 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 72 63 65 20 3d 20 24 .null).{.$this->preferSource.=.$
4a8c0 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 73 79 73 74 65 6d 20 preferSource;.$this->filesystem.
4a8e0 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 73 79 73 74 65 6d 28 =.$filesystem.?:.new.Filesystem(
4a900 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 50 72 );.}.......public.function.setPr
4a920 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 7b 0a 24 74 68 69 eferSource($preferSource).{.$thi
4a940 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b s->preferSource.=.$preferSource;
4a960 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 70 75 62 6c 69 63 20 ..return.$this;.}........public.
4a980 66 75 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 function.setDownloader($type,.Do
4a9a0 77 6e 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 wnloaderInterface.$downloader).{
4a9c0 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 24 74 68 69 .$type.=.strtolower($type);.$thi
4a9e0 73 2d 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 s->downloaders[$type].=.$downloa
4aa00 64 65 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 der;..return.$this;.}...........
4aa20 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 72 28 24 74 public.function.getDownloader($t
4aa40 79 70 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 ype).{.$type.=.strtolower($type)
4aa60 3b 0a 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 ;.if.(!isset($this->downloaders[
4aa80 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 61 6c 69 64 41 72 67 $type])).{.throw.new.\InvalidArg
4aaa0 75 6d 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 umentException('Unknown.download
4aac0 65 72 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 er.type:.'.$type);.}..return.$th
4aae0 69 73 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 is->downloaders[$type];.}.......
4ab00 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 6f 77 6e 6c 6f 61 ......public.function.getDownloa
4ab20 64 65 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 derForInstalledPackage(PackageIn
4ab40 74 65 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 terface.$package).{.$installatio
4ab60 6e 53 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 nSource.=.$package->getInstallat
4ab80 69 6f 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 ionSource();..if.('dist'.===.$in
4aba0 73 74 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 stallationSource).{.$downloader.
4abc0 3d 20 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 =.$this->getDownloader($package-
4abe0 3e 67 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 >getDistType());.}.elseif.('sour
4ac00 63 65 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 ce'.===.$installationSource).{.$
4ac20 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 6f 61 64 65 downloader.=.$this->getDownloade
4ac40 72 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 29 3b 0a 7d 20 r($package->getSourceType());.}.
4ac60 65 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 else.{.throw.new.\InvalidArgumen
4ac80 74 45 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 tException(.'Package.'.$package.
4aca0 27 20 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 '.seems.not.been.installed.prope
4acc0 72 6c 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 rly'.);.}..if.($installationSour
4ace0 63 65 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 ce.!==.$downloader->getInstallat
4ad00 69 6f 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 ionSource()).{.throw.new.\LogicE
4ad20 78 63 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 xception(sprintf(.'Downloader."%
4ad40 73 22 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 s".is.a.%s.type.downloader.and.c
4ad60 61 6e 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 an.not.be.used.to.download.%s',.
4ad80 67 65 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 get_class($downloader),.$downloa
4ada0 64 65 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 der->getInstallationSource(),.$i
4adc0 6e 73 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 nstallationSource.));.}..return.
4ade0 24 64 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 $downloader;.}...........public.
4ae00 66 75 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 function.download(PackageInterfa
4ae20 63 65 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 ce.$package,.$targetDir,.$prefer
4ae40 53 6f 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 Source.=.null).{.$preferSource.=
4ae60 20 6e 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 .null.!==.$preferSource.?.$prefe
4ae80 72 53 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 rSource.:.$this->preferSource;.$
4aea0 73 6f 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 sourceType.=.$package->getSource
4aec0 54 79 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 Type();.$distType.=.$package->ge
4aee0 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 tDistType();..if.(!$package->isD
4af00 65 76 28 29 20 26 26 20 21 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 24 73 6f 75 72 ev().&&.!($preferSource.&&.$sour
4af20 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 63 6b 61 67 65 ceType).&&.$distType).{.$package
4af40 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 73 74 27 29 3b ->setInstallationSource('dist');
4af60 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 70 61 63 6b 61 .}.elseif.($sourceType).{.$packa
4af80 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 73 6f 75 72 63 ge->setInstallationSource('sourc
4afa0 65 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 e');.}.elseif.($package->isDev()
4afc0 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
4afe0 63 65 70 74 69 6f 6e 28 27 44 65 76 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e ception('Dev.package.'.$package.
4b000 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 73 70 65 63 69 66 69 65 64 27 29 '.must.have.a.source.specified')
4b020 3b 0a 7d 20 65 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 ;.}.else.{.throw.new.\InvalidArg
4b040 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 70 61 63 6b 61 umentException('Package.'.$packa
4b060 67 65 2e 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 6f 72 20 64 69 73 74 20 ge.'.must.have.a.source.or.dist.
4b080 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 specified');.}..$this->filesyste
4b0a0 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 24 74 61 72 67 65 74 m->ensureDirectoryExists($target
4b0c0 44 69 72 29 3b 0a 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 Dir);..$downloader.=.$this->getD
4b0e0 6f 77 6e 6c 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 70 61 ownloaderForInstalledPackage($pa
4b100 63 6b 61 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 ckage);.$downloader->download($p
4b120 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ackage,.$targetDir);.}..........
4b140 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 65 49 .public.function.update(PackageI
4b160 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 72 66 nterface.$initial,.PackageInterf
4b180 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e ace.$target,.$targetDir).{.$down
4b1a0 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 6f 72 loader.=.$this->getDownloaderFor
4b1c0 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 69 6e 73 InstalledPackage($initial);.$ins
4b1e0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 tallationSource.=.$initial->getI
4b200 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 nstallationSource();..if.('dist'
4b220 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 69 6e 69 .===.$installationSource).{.$ini
4b240 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 tialType.=.$initial->getDistType
4b260 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 44 69 ();.$targetType.=.$target->getDi
4b280 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 stType();.}.else.{.$initialType.
4b2a0 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 74 61 =.$initial->getSourceType();.$ta
4b2c0 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 rgetType.=.$target->getSourceTyp
4b2e0 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 e();.}....if.($target->isDev().&
4b300 26 20 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
4b320 29 20 7b 0a 24 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 ).{.$downloader->remove($initial
4b340 2c 20 24 74 61 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 ,.$targetDir);.$this->download($
4b360 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a target,.$targetDir);..return;.}.
4b380 0a 69 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 .if.($initialType.===.$targetTyp
4b3a0 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 e).{.$target->setInstallationSou
4b3c0 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c rce($installationSource);.$downl
4b3e0 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c oader->update($initial,.$target,
4b400 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 .$targetDir);.}.else.{.$download
4b420 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 er->remove($initial,.$targetDir)
4b440 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 ;.$this->download($target,.$targ
4b460 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f etDir,.'source'.===.$installatio
4b480 6e 53 6f 75 72 63 65 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 nSource);.}.}........public.func
4b4a0 74 69 6f 6e 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 tion.remove(PackageInterface.$pa
4b4c0 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 ckage,.$targetDir).{.$downloader
4b4e0 20 3d 20 24 74 68 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 .=.$this->getDownloaderForInstal
4b500 6c 65 64 50 61 63 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 ledPackage($package);.$downloade
4b520 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b r->remove($package,.$targetDir);
4b540 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.
4b560 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
4b580 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\
4b5a0 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
4b5c0 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 43 6f 6d 70 mposer\Util\Filesystem;.use.Comp
4b5e0 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 0a oser\Util\RemoteFilesystem;.....
4b600 0a 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 ....class.FileDownloader.impleme
4b620 6e 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 6f 74 65 63 nts.DownloaderInterface.{.protec
4b640 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 63 74 ted.$io;.protected.$rfs;.protect
4b660 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ed.$filesystem;.......public.fun
4b680 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 20 24 69 ction.__construct(IOInterface.$i
4b6a0 6f 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 2c o,.RemoteFilesystem.$rfs.=.null,
4b6c0 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).
4b6e0 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 72 66 73 20 3d 20 {.$this->io.=.$io;.$this->rfs.=.
4b700 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 6d 28 24 69 6f $rfs.?:.new.RemoteFilesystem($io
4b720 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 65 73 79 73 74 );.$this->filesystem.=.$filesyst
4b740 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 em.?:.new.Filesystem();.}.....pu
4b760 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 74 69 6f 6e 53 6f 75 blic.function.getInstallationSou
4b780 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rce().{.return.'dist';.}.....pub
4b7a0 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 65 49 6e 74 lic.function.download(PackageInt
4b7c0 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 72 6c 20 3d erface.$package,.$path).{.$url.=
4b7e0 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 69 66 20 28 21 24 75 .$package->getDistUrl();.if.(!$u
4b800 72 6c 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 rl).{.throw.new.\InvalidArgument
4b820 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 Exception('The.given.package.is.
4b840 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 missing.url.information');.}..$t
4b860 68 69 73 2d 3e 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 his->filesystem->ensureDirectory
4b880 45 78 69 73 74 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 Exists($path);..$fileName.=.$thi
4b8a0 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 24 70 61 74 68 29 3b s->getFileName($package,.$path);
4b8c0 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 74 61 6c 6c 69 ..$this->io->write("..-.Installi
4b8e0 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 61 6d 65 28 29 ng.<info>"...$package->getName()
4b900 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 24 70 61 63 6b 61 ..."</info>.(<comment>"...$packa
4b920 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d ge->getPrettyVersion()..."</comm
4b940 65 6e 74 3e 29 22 29 3b 0a 0a 24 70 72 6f 63 65 73 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 70 ent>)");..$processUrl.=.$this->p
4b960 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 rocessUrl($url);..try.{.$this->r
4b980 66 73 2d 3e 63 6f 70 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 fs->copy($package->getSourceUrl(
4b9a0 29 2c 20 24 70 72 6f 63 65 73 73 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 69 66 20 ),.$processUrl,.$fileName);..if.
4b9c0 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 7b 0a 74 68 72 6f (!file_exists($fileName)).{.thro
4b9e0 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(
4ba00 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 74 6f 20 27 2e 24 $url.'.could.not.be.saved.to.'.$
4ba20 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 0a 2e 27 20 64 69 fileName.',.make.sure.the'..'.di
4ba40 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 75 20 68 61 76 65 rectory.is.writable.and.you.have
4ba60 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 7d 0a 0a 24 63 68 .internet.connectivity');.}..$ch
4ba80 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 53 68 61 31 43 68 ecksum.=.$package->getDistSha1Ch
4baa0 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 20 68 61 73 68 5f ecksum();.if.($checksum.&&.hash_
4bac0 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 3d 20 24 63 68 65 file('sha1',.$fileName).!==.$che
4bae0 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 63 74 65 64 56 61 cksum).{.throw.new.\UnexpectedVa
4bb00 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 20 76 65 72 69 66 lueException('The.checksum.verif
4bb20 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 20 28 64 6f 77 6e ication.of.the.file.failed.(down
4bb40 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 0a 7d 20 63 61 74 loaded.from.'.$url.')');.}.}.cat
4bb60 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 69 73 2d 3e 66 69 ch.(\Exception.$e).{...$this->fi
4bb80 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 29 lesystem->removeDirectory($path)
4bba0 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ;.throw.$e;.}.}.....public.funct
4bbc0 69 6f 6e 20 75 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 69 ion.update(PackageInterface.$ini
4bbe0 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 20 tial,.PackageInterface.$target,.
4bc00 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c $path).{.$this->remove($initial,
4bc20 20 24 70 61 74 68 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 74 .$path);.$this->download($target
4bc40 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 6f 6e 20 ,.$path);.}.....public.function.
4bc60 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 65 remove(PackageInterface.$package
4bc80 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 2d ,.$path).{.$this->io->write("..-
4bca0 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 65 .Removing.<info>"...$package->ge
4bcc0 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 2e tName()..."</info>.(<comment>"..
4bce0 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 20 .$package->getPrettyVersion()...
4bd00 22 3c 2f 63 6f 6d 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 "</comment>)");.if.(!$this->file
4bd20 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 29 29 20 system->removeDirectory($path)).
4bd40 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 43 {.throw.new.\RuntimeException('C
4bd60 6f 75 6c 64 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 ould.not.completely.delete.'.$pa
4bd80 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 th.',.aborting.');.}.}.........p
4bda0 72 6f 74 65 63 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 rotected.function.getFileName(Pa
4bdc0 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).
4bde0 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 {.return.$path.'/'.pathinfo($pac
4be00 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 4f 5f 42 41 53 kage->getDistUrl(),.PATHINFO_BAS
4be20 45 4e 41 4d 45 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 ENAME);.}..........protected.fun
4be40 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 78 ction.processUrl($url).{.if.(!ex
4be60 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 20 3d tension_loaded('openssl').&&.0.=
4be80 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 68 72 ==.strpos($url,.'https:')).{.thr
4bea0 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 6d 75 ow.new.\RuntimeException('You.mu
4bec0 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 6e 20 st.enable.the.openssl.extension.
4bee0 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 0a 7d to.download.files.via.https');.}
4bf00 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ..return.$url;.}.}.<?php........
4bf20 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 64 65 ....namespace.Composer\Downloade
4bf40 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 65 r;..use.Composer\Package\Package
4bf60 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 64 65 Interface;.....class.HgDownloade
4bf80 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 75 62 r.extends.VcsDownloader.{....pub
4bfa0 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 65 49 lic.function.doDownload(PackageI
4bfc0 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 72 6c nterface.$package,.$path).{.$url
4bfe0 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 74 53 .=.escapeshellarg($package->getS
4c000 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 6c 61 ourceUrl());.$ref.=.escapeshella
4c020 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 65 28 rg($package->getSourceReference(
4c040 29 29 3b 0a 24 70 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 ));.$path.=.escapeshellarg($path
4c060 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 69 6e 67 );.$this->io->write("....Cloning
4c080 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 63 65 28 .".$package->getSourceReference(
4c0a0 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 6f 6e 65 ));.$command.=.sprintf('hg.clone
4c0c0 20 25 73 20 25 73 20 26 26 20 63 64 20 25 32 24 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 .%s.%s.&&.cd.%2$s.&&.hg.up.%s',.
4c0e0 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 $url,.$path,.$ref);.if.(0.!==.$t
4c100 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 64 2c 20 his->process->execute($command,.
4c120 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 75 $ignoredOutput)).{.throw.new.\Ru
4c140 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 78 65 63 75 74 ntimeException('Failed.to.execut
4c160 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 74 68 69 73 2d e.'...$command..."\n\n"...$this-
4c180 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 7d >process->getErrorOutput());.}.}
4c1a0 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 65 28 50 61 .....public.function.doUpdate(Pa
4c1c0 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
4c1e0 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 24 75 72 6c Interface.$target,.$path).{.$url
4c200 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f .=.escapeshellarg($target->getSo
4c220 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 6c 61 72 urceUrl());.$ref.=.escapeshellar
4c240 67 28 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 65 28 29 29 g($target->getSourceReference())
4c260 3b 0a 24 70 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b ;.$path.=.escapeshellarg($path);
4c280 0a 24 74 68 69 73 2d 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 .$this->io->write("....Updating.
4c2a0 74 6f 20 22 2e 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 65 to.".$target->getSourceReference
4c2c0 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 63 64 20 25 73 20 26 ());.$command.=.sprintf('cd.%s.&
4c2e0 26 20 68 67 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 70 61 74 68 &.hg.pull.%s.&&.hg.up.%s',.$path
4c300 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e ,.$url,.$ref);.if.(0.!==.$this->
4c320 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 69 67 6e 6f process->execute($command,.$igno
4c340 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 75 6e 74 69 6d 65 redOutput)).{.throw.new.\Runtime
4c360 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 20 27 20 2e Exception('Failed.to.execute.'..
4c380 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 70 72 6f 63 .$command..."\n\n"...$this->proc
4c3a0 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 0a 0a 0a 0a ess->getErrorOutput());.}.}.....
4c3c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 protected.function.enforceCleanD
4c3e0 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 irectory($path).{.$this->process
4c400 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 73 ->execute(sprintf('cd.%s.&&.hg.s
4c420 74 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 2c 20 24 6f 75 74 t',.escapeshellarg($path)),.$out
4c440 70 75 74 29 3b 0a 69 66 20 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 put);.if.(trim($output)).{.throw
4c460 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 .new.\RuntimeException('Source.d
4c480 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d irectory.'...$path...'.has.uncom
4c4a0 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a mitted.changes');.}.}.}.<?php...
4c4c0 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 6e .........namespace.Composer\Down
4c4e0 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 44 6f 77 6e 6c 6f 61 loader;........class.PearDownloa
4c500 64 65 72 20 65 78 74 65 6e 64 73 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 der.extends.TarDownloader.{....p
4c520 72 6f 74 65 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 rotected.function.extract($file,
4c540 20 24 70 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c .$path).{.parent::extract($file,
4c560 20 24 70 61 74 68 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 70 61 74 68 20 2e .$path);.if.(file_exists($path..
4c580 20 27 2f 70 61 63 6b 61 67 65 2e 73 69 67 27 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 70 61 74 68 .'/package.sig')).{.unlink($path
4c5a0 20 2e 20 27 2f 70 61 63 6b 61 67 65 2e 73 69 67 27 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 ...'/package.sig');.}.if.(file_e
4c5c0 78 69 73 74 73 28 24 70 61 74 68 20 2e 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 20 7b xists($path...'/package.xml')).{
4c5e0 0a 75 6e 6c 69 6e 6b 28 24 70 61 74 68 20 2e 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 3b .unlink($path...'/package.xml');
4c600 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 63 .}.}.}.<?php............namespac
4c620 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 6d 70 e.Composer\Downloader;..use.Comp
4c640 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 61 63 65 3b 0a 0a oser\Package\PackageInterface;..
4c660 0a 0a 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 .......abstract.class.ArchiveDow
4c680 6e 6c 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 nloader.extends.FileDownloader.{
4c6a0 0a 0a 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 ....public.function.download(Pac
4c6c0 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 7b kageInterface.$package,.$path).{
4c6e0 0a 70 61 72 65 6e 74 3a 3a 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 .parent::download($package,.$pat
4c700 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 74 46 69 6c 65 4e h);..$fileName.=.$this->getFileN
4c720 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 24 74 68 69 73 2d ame($package,.$path);.if.($this-
4c740 3e 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 >io->isVerbose()).{.$this->io->w
4c760 72 69 74 65 28 27 20 20 20 20 55 6e 70 61 63 6b 69 6e 67 20 61 72 63 68 69 76 65 27 29 3b 0a 7d rite('....Unpacking.archive');.}
4c780 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,
4c7a0 20 24 70 61 74 68 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 .$path);..if.($this->io->isVerbo
4c7c0 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 20 20 43 6c se()).{.$this->io->write('....Cl
4c7e0 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 eaning.up');.}.unlink($fileName)
4c800 3b 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 67 6c 6f 62 28 24 70 61 74 68 20 2e 20 ;....$contentDir.=.glob($path...
4c820 27 2f 2a 27 29 3b 0a 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 '/*');.if.(1.===.count($contentD
4c840 69 72 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 63 6f 6e 74 65 6e 74 44 69 72 ir)).{.$contentDir.=.$contentDir
4c860 5b 30 5d 3b 0a 0a 0a 20 0a 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 20 3d 20 6d 64 35 28 74 [0];......$temporaryName.=.md5(t
4c880 69 6d 65 28 29 2e 72 61 6e 64 28 29 29 3b 0a 72 65 6e 61 6d 65 28 24 63 6f 6e 74 65 6e 74 44 69 ime().rand());.rename($contentDi
4c8a0 72 2c 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 29 3b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 r,.$temporaryName);.$contentDir.
4c8c0 3d 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 =.$temporaryName;..foreach.(arra
4c8e0 79 5f 6d 65 72 67 65 28 67 6c 6f 62 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 2e 20 27 2f 2e 2a 27 y_merge(glob($contentDir...'/.*'
4c900 29 2c 20 67 6c 6f 62 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 2e 20 27 2f 2a 27 29 29 20 61 73 20 ),.glob($contentDir...'/*')).as.
4c920 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 74 72 69 6d 28 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 $file).{.if.(trim(basename($file
4c940 29 2c 20 27 2e 27 29 29 20 7b 0a 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 2e ),.'.')).{.rename($file,.$path..
4c960 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 7d 0a 72 6d 64 .'/'...basename($file));.}.}.rmd
4c980 69 72 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 ir($contentDir);.}.}.catch.(\Exc
4c9a0 65 70 74 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 eption.$e).{...$this->filesystem
4c9c0 2d 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 74 68 72 6f 77 20 ->removeDirectory($path);.throw.
4c9e0 24 65 3b 0a 7d 0a 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 $e;.}..$this->io->write('');.}..
4ca00 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 46 69 6c 65 4e 61 6d ...protected.function.getFileNam
4ca20 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 2c 20 24 70 61 e(PackageInterface.$package,.$pa
4ca40 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 th).{.return.rtrim($path.'/'.md5
4ca60 28 24 70 61 74 68 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 ($path.spl_object_hash($package)
4ca80 29 2e 27 2e 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 ).'.'.pathinfo($package->getDist
4caa0 55 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 Url(),.PATHINFO_EXTENSION),.'.')
4cac0 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 6f 63 65 ;.}.....protected.function.proce
4cae0 73 73 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 ssUrl($url).{.if.(!extension_loa
4cb00 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 ded('openssl').&&.(0.===.strpos(
4cb20 24 75 72 6c 2c 20 27 68 74 74 70 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 $url,.'https:').||.0.===.strpos(
4cb40 24 75 72 6c 2c 20 27 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 0a $url,.'http://github.com'))).{..
4cb60 20 69 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 67 69 74 .if.(preg_match('{^https?://(git
4cb80 68 75 62 2e 63 6f 6d 2f 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c hub.com/[^/]+/[^/]+/(zip|tar)bal
4cba0 6c 2f 5b 5e 2f 5d 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 l/[^/]+)$}i',.$url,.$match)).{.$
4cbc0 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 2e 27 2e 24 6d 61 74 63 68 5b url.=.'http://nodeload.'.$match[
4cbe0 31 5d 3b 0a 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 1];.}.else.{.throw.new.\RuntimeE
4cc00 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 20 6f 70 xception('You.must.enable.the.op
4cc20 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 66 69 6c 65 enssl.extension.to.download.file
4cc40 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b s.via.https');.}.}..return.$url;
4cc60 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
4cc80 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 7d unction.extract($file,.$path);.}
4cca0 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
4ccc0 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 5c 50 oser\Downloader;..use.Composer\P
4cce0 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;........
4cd00 69 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a interface.DownloaderInterface.{.
4cd20 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
4cd40 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tionSource();........public.func
4cd60 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 20 24 tion.download(PackageInterface.$
4cd80 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 70 75 62 6c 69 63 20 package,.$path);.........public.
4cda0 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 function.update(PackageInterface
4cdc0 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 61 72 .$initial,.PackageInterface.$tar
4cde0 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 get,.$path);........public.funct
4ce00 69 6f 6e 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 ion.remove(PackageInterface.$pac
4ce20 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kage,.$path);.}.<?php...........
4ce40 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 3b 0a .namespace.Composer\Downloader;.
4ce60 0a 0a 0a 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 ......class.PharDownloader.exten
4ce80 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 63 ds.ArchiveDownloader.{....protec
4cea0 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
4cec0 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 28 24 66 69 6c h).{...$archive.=.new.\Phar($fil
4cee0 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 74 68 2c 20 6e e);.$archive->extractTo($path,.n
4cf00 75 6c 6c 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 ull,.true);......}.}.<?php......
4cf20 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
4cf40 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 69 6f der;.....class.TransportExceptio
4cf60 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 68 70 0a 0a n.extends.\Exception.{.}.<?php..
4cf80 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
4cfa0 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 5c 50 72 6f 63 nloader;..use.Composer\Util\Proc
4cfc0 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 4f 49 essExecutor;.use.Composer\IO\IOI
4cfe0 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 63 6c nterface;.use.ZipArchive;.....cl
4d000 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 69 76 ass.ZipDownloader.extends.Archiv
4d020 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 73 73 eDownloader.{.protected.$process
4d040 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 49 ;..public.function.__construct(I
4d060 4f 49 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 OInterface.$io,.ProcessExecutor.
4d080 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 70 72 6f 63 65 73 $process.=.null).{.$this->proces
4d0a0 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 75 s.=.$process.?:.new.ProcessExecu
4d0c0 74 6f 72 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 29 3b 0a 7d tor;.parent::__construct($io);.}
4d0e0 0a 0a 70 72 6f 74 65 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 ..protected.function.extract($fi
4d100 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 le,.$path).{.if.(!class_exists('
4d120 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 27 59 6f 75 20 6e 65 ZipArchive')).{.$error.=.'You.ne
4d140 65 64 20 74 68 65 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 65 6e 61 62 6c 65 64 20 74 6f 20 ed.the.zip.extension.enabled.to.
4d160 75 73 65 20 74 68 65 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 27 3b 0a 0a 0a 20 69 66 20 28 21 use.the.ZipDownloader';....if.(!
4d180 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 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
4d1a0 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 73 63 61 LD')).{.$command.=.'unzip.'.esca
4d1c0 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 70 65 73 peshellarg($file).'.-d.'.escapes
4d1e0 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d hellarg($path);.if.(0.===.$this-
4d200 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 69 67 6e >process->execute($command,.$ign
4d220 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 72 72 6f 72 oredOutput)).{.return;.}..$error
4d240 20 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 .=."Could.not.decompress.the.arc
4d260 68 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 hive,.enable.the.PHP.zip.extensi
4d280 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 2e 0a 27 46 61 69 6c 65 64 on.or.install.unzip.\n"..'Failed
4d2a0 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 5c 6e .to.execute.'...$command..."\n\n
4d2c0 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 74 70 "...$this->process->getErrorOutp
4d2e0 75 74 28 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 ut();.}..throw.new.\RuntimeExcep
4d300 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e tion($error);.}..$zipArchive.=.n
4d320 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 ew.ZipArchive();..if.(true.!==.(
4d340 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c $retval.=.$zipArchive->open($fil
4d360 65 29 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 e))).{.throw.new.\UnexpectedValu
4d380 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 eException($this->getErrorMessag
4d3a0 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 e($retval,.$file));.}..$zipArchi
4d3c0 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 29 3b 0a 24 7a 69 70 41 72 63 68 69 76 ve->extractTo($path);.$zipArchiv
4d3e0 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 74 65 64 20 e->close();.}.........protected.
4d400 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 74 76 61 6c function.getErrorMessage($retval
4d420 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 7b 0a 63 61 ,.$file).{.switch.($retval).{.ca
4d440 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 74 75 72 6e se.ZipArchive::ER_EXISTS:.return
4d460 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 65 78 69 73 .sprintf("File.'%s'.already.exis
4d480 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 65 3a 3a 45 ts.",.$file);.case.ZipArchive::E
4d4a0 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 70 20 61 72 R_INCONS:.return.sprintf("Zip.ar
4d4c0 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 2c 20 24 66 chive.'%s'.is.inconsistent.",.$f
4d4e0 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 56 41 4c 3a ile);.case.ZipArchive::ER_INVAL:
4d500 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 75 6d 65 6e .return.sprintf("Invalid.argumen
4d520 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 68 69 76 65 t.(%s)",.$file);.case.ZipArchive
4d540 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 22 4d 61 6c ::ER_MEMORY:.return.sprintf("Mal
4d560 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 61 73 65 20 loc.failure.(%s)",.$file);.case.
4d580 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 20 73 70 72 ZipArchive::ER_NOENT:.return.spr
4d5a0 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 22 2c 20 24 intf("No.such.zip.file:.'%s'",.$
4d5c0 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 4f 5a 49 50 file);.case.ZipArchive::ER_NOZIP
4d5e0 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 74 20 61 20 :.return.sprintf("'%s'.is.not.a.
4d600 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 5a 69 70 41 zip.archive.",.$file);.case.ZipA
4d620 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 6e 74 66 28 rchive::ER_OPEN:.return.sprintf(
4d640 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 66 69 6c 65 "Can't.open.zip.file:.%s",.$file
4d660 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 0a 72 65 74 );.case.ZipArchive::ER_READ:.ret
4d680 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 28 25 73 29 urn.sprintf("Zip.read.error.(%s)
4d6a0 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 53 ",.$file);.case.ZipArchive::ER_S
4d6c0 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 6b 20 65 72 EEK:.return.sprintf("Zip.seek.er
4d6e0 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 72 65 74 75 ror.(%s)",.$file);.default:.retu
4d700 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 6c 69 64 20 rn.sprintf("'%s'.is.not.a.valid.
4d720 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 20 25 73 22 zip.archive,.got.error.code:.%s"
4d740 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 68 70 0a 0a ,.$file,.$retval);.}.}.}.<?php..
4d760 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
4d780 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
4d7a0 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 55 74 ackageInterface;.use.Composer\Ut
4d7c0 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 il\Svn.as.SvnUtil;......class.Sv
4d7e0 6e 44 6f 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 nDownloader.extends.VcsDownloade
4d800 72 0a 7b 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 6f 61 r.{....public.function.doDownloa
4d820 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 70 61 d(PackageInterface.$package,.$pa
4d840 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 53 6f 75 72 63 65 th).{.$url.=.$package->getSource
4d860 55 72 6c 28 29 3b 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 Url();.$ref.=.$package->getSourc
4d880 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 eReference();..$this->io->write(
4d8a0 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 "....Checking.out.".$package->ge
4d8c0 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 3e 65 78 65 63 tSourceReference());.$this->exec
4d8e0 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 63 6f 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f ute($url,."svn.co",.sprintf("%s/
4d900 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 68 29 3b 0a %s",.$url,.$ref),.null,.$path);.
4d920 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 65 28 50 }.....public.function.doUpdate(P
4d940 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 67 ackageInterface.$initial,.Packag
4d960 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 24 75 72 eInterface.$target,.$path).{.$ur
4d980 6c 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 l.=.$target->getSourceUrl();.$re
4d9a0 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 72 65 6e 63 65 28 f.=.$target->getSourceReference(
4d9c0 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 );..$this->io->write("....Checki
4d9e0 6e 67 20 6f 75 74 20 22 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 ng.out."...$ref);.$this->execute
4da00 28 24 75 72 6c 2c 20 22 73 76 6e 20 73 77 69 74 63 68 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 ($url,."svn.switch",.sprintf("%s
4da20 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a /%s",.$url,.$ref),.$path);.}....
4da40 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e .protected.function.enforceClean
4da60 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 Directory($path).{.$this->proces
4da80 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d s->execute('svn.status.--ignore-
4daa0 65 78 74 65 72 6e 61 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 externals',.$output,.$path);.if.
4dac0 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 (preg_match('{^.*[^X.].+}m',.$ou
4dae0 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
4db00 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 2e 20 24 70 61 74 68 tion('Source.directory.'...$path
4db20 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 67 65 73 3a 27 2e 22 ...'.has.uncommitted.changes:'."
4db40 5c 6e 5c 6e 22 2e 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a \n\n".rtrim($output));.}.}......
4db60 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
4db80 74 65 28 24 62 61 73 65 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 te($baseUrl,.$command,.$url,.$cw
4dba0 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 d.=.null,.$path.=.null).{.$util.
4dbc0 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 =.new.SvnUtil($baseUrl,.$this->i
4dbe0 6f 29 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 o);.try.{.return.$util->execute(
4dc00 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 $command,.$url,.$cwd,.$path,.$th
4dc20 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c is->io->isVerbose());.}.catch.(\
4dc40 52 75 6e 74 69 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 RuntimeException.$e).{.throw.new
4dc60 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 .\RuntimeException(.'Package.cou
4dc80 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d ld.not.be.downloaded,.'.$e->getM
4dca0 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a essage().);.}.}.}.<?php.........
4dcc0 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
4dce0 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 49 ;..use.Composer\Package\PackageI
4dd00 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
4dd20 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 4f 49 essExecutor;.use.Composer\IO\IOI
4dd40 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 46 69 6c 65 nterface;.use.Composer\Util\File
4dd60 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 6f system;.....abstract.class.VcsDo
4dd80 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e wnloader.implements.DownloaderIn
4dda0 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 terface.{.protected.$io;.protect
4ddc0 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 73 74 ed.$process;.protected.$filesyst
4dde0 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 63 74 em;..public.function.__construct
4de00 28 49 4f 49 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 (IOInterface.$io,.ProcessExecuto
4de20 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 r.$process.=.null,.Filesystem.$f
4de40 73 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 24 74 68 s.=.null).{.$this->io.=.$io;.$th
4de60 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 50 72 is->process.=.$process.?:.new.Pr
4de80 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ocessExecutor;.$this->filesystem
4dea0 20 3d 20 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a .=.$fs.?:.new.Filesystem;.}.....
4dec0 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 74 69 6f 6e 53 public.function.getInstallationS
4dee0 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a ource().{.return.'source';.}....
4df00 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
4df20 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 69 66 eInterface.$package,.$path).{.if
4df40 20 28 21 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 .(!$package->getSourceReference(
4df60 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
4df80 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 xception('Package.'.$package->ge
4dfa0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 tPrettyName().'.is.missing.refer
4dfc0 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f ence.information');.}..$this->io
4dfe0 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 6e 66 6f 3e 22 20 ->write("..-.Installing.<info>".
4e000 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 6f 3e ..$package->getName()..."</info>
4e020 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 .(<comment>"...$package->getPret
4e040 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 tyVersion()..."</comment>)");.$t
4e060 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 79 his->filesystem->removeDirectory
4e080 28 24 70 61 74 68 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 ($path);.$this->doDownload($pack
4e0a0 61 67 65 2c 20 24 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 age,.$path);.$this->io->write(''
4e0c0 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 28 );.}.....public.function.update(
4e0e0 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
4e100 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 69 66 geInterface.$target,.$path).{.if
4e120 20 28 21 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 65 28 29 .(!$target->getSourceReference()
4e140 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
4e160 63 65 70 74 69 6f 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 ception('Package.'.$target->getP
4e180 72 65 74 74 79 4e 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 rettyName().'.is.missing.referen
4e1a0 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e ce.information');.}..$this->io->
4e1c0 77 72 69 74 65 28 22 20 20 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 write("..-.Updating.<info>"...$t
4e1e0 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f arget->getName()..."</info>.(<co
4e200 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 mment>"...$target->getPrettyVers
4e220 69 6f 6e 28 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 65 ion()..."</comment>)");.$this->e
4e240 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 nforceCleanDirectory($path);.$th
4e260 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 67 65 74 2c 20 is->doUpdate($initial,.$target,.
4e280 24 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 $path);.$this->io->write('');.}.
4e2a0 0a 0a 0a 0a 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 ....public.function.remove(Packa
4e2c0 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).{.$
4e2e0 74 68 69 73 2d 3e 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 this->enforceCleanDirectory($pat
4e300 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 h);.$this->io->write("..-.Removi
4e320 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 61 6d 65 28 29 ng.<info>"...$package->getName()
4e340 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 24 70 61 63 6b 61 ..."</info>.(<comment>"...$packa
4e360 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d ge->getPrettyVersion()..."</comm
4e380 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 2d ent>)");.if.(!$this->filesystem-
4e3a0 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 74 68 72 6f 77 >removeDirectory($path)).{.throw
4e3c0 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
4e3e0 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 2c 20 61 t.completely.delete.'.$path.',.a
4e400 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 borting.');.}.}........abstract.
4e420 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 protected.function.doDownload(Pa
4e440 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 3b ckageInterface.$package,.$path);
4e460 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 75 6e 63 .........abstract.protected.func
4e480 74 69 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 tion.doUpdate(PackageInterface.$
4e4a0 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 61 72 67 65 initial,.PackageInterface.$targe
4e4c0 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 t,.$path);.......abstract.protec
4e4e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f ted.function.enforceCleanDirecto
4e500 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ry($path);.}.<?php............na
4e520 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;....
4e540 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 6e 64 73 20 41 ...class.TarDownloader.extends.A
4e560 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 20 rchiveDownloader.{....protected.
4e580 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 7b function.extract($file,.$path).{
4e5a0 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 28 24 66 69 6c ...$archive.=.new.\PharData($fil
4e5c0 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 74 68 2c 20 6e e);.$archive->extractTo($path,.n
4e5e0 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 0a 0a 0a 0a 0a ull,.true);.}.}.<?php...........
4e600 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 3b 0a .namespace.Composer\Downloader;.
4e620 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
4e640 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 erface;.....class.GitDownloader.
4e660 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 75 62 6c 69 extends.VcsDownloader.{....publi
4e680 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 65 49 6e 74 c.function.doDownload(PackageInt
4e6a0 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 72 65 66 20 3d erface.$package,.$path).{.$ref.=
4e6c0 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 28 29 3b .$package->getSourceReference();
4e6e0 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 26 20 .$command.=.'git.clone.%s.%s.&&.
4e700 63 64 20 25 32 24 73 20 26 26 20 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 33 24 73 20 26 26 20 cd.%2$s.&&.git.checkout.%3$s.&&.
4e720 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 33 24 73 20 26 26 20 67 69 74 20 72 65 6d git.reset.--hard.%3$s.&&.git.rem
4e740 6f 74 65 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 27 3b 0a 24 74 68 69 73 2d 3e 69 ote.add.composer.%1$s';.$this->i
4e760 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 70 61 63 6b 61 67 65 o->write("....Cloning.".$package
4e780 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 24 63 6f 6d 6d 61 ->getSourceReference());..$comma
4e7a0 6e 64 43 61 6c 6c 61 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 ndCallable.=.function($url).use.
4e7c0 28 24 72 65 66 2c 20 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 ($ref,.$path,.$command).{.return
4e7e0 20 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 .sprintf($command,.escapeshellar
4e800 67 28 24 75 72 6c 29 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 g($url),.escapeshellarg($path),.
4e820 65 73 63 61 70 65 73 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 escapeshellarg($ref));.};..$this
4e840 2d 3e 72 75 6e 43 6f 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 ->runCommand($commandCallable,.$
4e860 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b package->getSourceUrl(),.$path);
4e880 0a 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 .$this->setPushUrl($package,.$pa
4e8a0 74 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 64 6f 55 70 64 th);.}.....public.function.doUpd
4e8c0 61 74 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 ate(PackageInterface.$initial,.P
4e8e0 61 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 70 61 74 68 29 0a ackageInterface.$target,.$path).
4e900 7b 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 72 {.$ref.=.$target->getSourceRefer
4e920 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 68 ence();.$this->io->write("....Ch
4e940 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 ecking.out.".$target->getSourceR
4e960 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 63 64 20 25 73 20 26 eference());.$command.=.'cd.%s.&
4e980 26 20 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 &.git.remote.set-url.composer.%s
4e9a0 20 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 .&&.git.fetch.composer.&&.git.fe
4e9c0 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 67 69 74 20 63 68 65 63 6b tch.--tags.composer.&&.git.check
4e9e0 6f 75 74 20 25 33 24 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 33 24 out.%3$s.&&.git.reset.--hard.%3$
4ea00 73 27 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 73 s';....$this->process->execute(s
4ea20 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 2d 76 27 2c printf('cd.%s.&&.git.remote.-v',
4ea40 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 2c 20 24 6f 75 74 70 75 74 .escapeshellarg($path)),.$output
4ea60 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 5c 73 2b );.if.(preg_match('{^composer\s+
4ea80 68 74 74 70 73 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 67 69 74 68 75 62 2e 63 6f 6d 2f 7d 69 6d https://(.+):(.+)@github.com/}im
4eaa0 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ',.$output,.$match)).{.$this->io
4eac0 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c ->setAuthorization('github.com',
4eae0 20 24 6d 61 74 63 68 5b 31 5d 2c 20 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 0a 0a 0a 20 24 74 68 .$match[1],.$match[2]);.}....$th
4eb00 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 27 63 64 is->process->execute(sprintf('cd
4eb20 20 25 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 .%s.&&.git.remote.add.composer.%
4eb40 73 27 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 s',.escapeshellarg($path),.escap
4eb60 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c eshellarg($initial->getSourceUrl
4eb80 28 29 29 29 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 ())),.$ignoredOutput);..$command
4eba0 43 61 6c 6c 61 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 Callable.=.function($url).use.($
4ebc0 72 65 66 2c 20 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 ref,.$path,.$command).{.return.s
4ebe0 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 28 printf($command,.escapeshellarg(
4ec00 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 2c 20 65 73 $path),.escapeshellarg($url),.es
4ec20 63 61 70 65 73 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 capeshellarg($ref));.};..$this->
4ec40 72 75 6e 43 6f 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 74 61 runCommand($commandCallable,.$ta
4ec60 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f rget->getSourceUrl());.}.....pro
4ec80 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 tected.function.enforceCleanDire
4eca0 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 ctory($path).{.$command.=.sprint
4ecc0 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 f('cd.%s.&&.git.status.--porcela
4ece0 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 2c 20 65 73 63 61 70 65 in.--untracked-files=no',.escape
4ed00 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 shellarg($path));.if.(0.!==.$thi
4ed20 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 6f s->process->execute($command,.$o
4ed40 75 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 utput)).{.throw.new.\RuntimeExce
4ed60 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 6f ption('Failed.to.execute.'...$co
4ed80 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 2d mmand..."\n\n"...$this->process-
4eda0 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 >getErrorOutput());.}..if.(trim(
4edc0 24 6f 75 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 $output)).{.throw.new.\RuntimeEx
4ede0 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 2e 20 24 70 ception('Source.directory.'...$p
4ee00 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 67 65 73 27 ath...'.has.uncommitted.changes'
4ee20 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 6e 63 74 69 );.}.}..........protected.functi
4ee40 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 61 62 6c 65 2c 20 on.runCommand($commandCallable,.
4ee60 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 68 61 6e 64 6c 65 72 20 3d $url,.$path.=.null).{.$handler.=
4ee80 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 72 27 29 3b 0a .array($this,.'outputHandler');.
4eea0 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 67 ...if.(preg_match('{^(?:https?|g
4eec0 69 74 29 28 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 it)(://github.com/.*)}',.$url,.$
4eee0 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 61 72 72 61 79 28 27 67 69 match)).{.$protocols.=.array('gi
4ef00 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 68 74 74 70 27 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 t',.'https',.'http');.$messages.
4ef20 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 6f 63 6f 6c 73 20 61 =.array();.foreach.($protocols.a
4ef40 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 6f 74 6f 63 6f 6c 20 s.$protocol).{.$url.=.$protocol.
4ef60 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 68 69 73 2d 3e 70 72 ..$match[1];.if.(0.===.$this->pr
4ef80 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 66 75 6e 63 28 24 63 ocess->execute(call_user_func($c
4efa0 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 68 61 6e 64 6c 65 72 29 ommandCallable,.$url),.$handler)
4efc0 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 27 ).{.return;.}.$messages[].=.'-.'
4efe0 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 ...$url..."\n"...preg_replace('#
4f000 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 ^#m',.'..',.$this->process->getE
4f020 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 rrorOutput());.if.(null.!==.$pat
4f040 68 29 20 7b 0a 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 h).{.$this->filesystem->removeDi
4f060 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 rectory($path);.}.}....$this->th
4f080 72 6f 77 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 20 rowException('Failed.to.clone.'.
4f0a0 2e 20 24 75 72 6c 20 2e 27 20 76 69 61 20 67 69 74 2c 20 68 74 74 70 73 20 61 6e 64 20 68 74 74 ..$url..'.via.git,.https.and.htt
4f0c0 70 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 p.protocols,.aborting.'..."\n\n"
4f0e0 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c 20 24 75 72 ...implode("\n",.$messages),.$ur
4f100 6c 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 l);.}..$command.=.call_user_func
4f120 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 ($commandCallable,.$url);.if.(0.
4f140 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 6d !==.$this->process->execute($com
4f160 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 mand,.$handler)).{.if.(preg_matc
4f180 68 28 27 7b 5e 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d h('{^git@github.com:(.+?)\.git$}
4f1a0 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e i',.$url,.$match).&&.$this->io->
4f1c0 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 isInteractive()).{...$retries.=.
4f1e0 33 3b 0a 24 72 65 74 72 79 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 64 6f 20 7b 0a 69 66 20 28 24 3;.$retrying.=.false;.do.{.if.($
4f200 72 65 74 72 79 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e retrying).{.$this->io->write('In
4f220 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 27 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 valid.credentials');.}.if.(!$thi
4f240 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e s->io->hasAuthorization('github.
4f260 63 6f 6d 27 29 20 7c 7c 20 24 72 65 74 72 79 69 6e 67 29 20 7b 0a 24 75 73 65 72 6e 61 6d 65 20 com').||.$retrying).{.$username.
4f280 3d 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 =.$this->io->ask('Username:.');.
4f2a0 24 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 $password.=.$this->io->askAndHid
4f2c0 65 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 eAnswer('Password:.');.$this->io
4f2e0 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c ->setAuthorization('github.com',
4f300 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 24 61 75 74 68 .$username,.$password);.}..$auth
4f320 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 .=.$this->io->getAuthorization('
4f340 67 69 74 68 75 62 2e 63 6f 6d 27 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 2e github.com');.$url.=.'https://'.
4f360 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b $auth['username']...':'...$auth[
4f380 27 70 61 73 73 77 6f 72 64 27 5d 20 2e 20 27 40 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 'password']...'@github.com/'.$ma
4f3a0 74 63 68 5b 31 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 5f tch[1].'.git';..$command.=.call_
4f3c0 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
4f3e0 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
4f400 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 72 65 74 75 cute($command,.$handler)).{.retu
4f420 72 6e 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 rn;.}.if.(null.!==.$path).{.$thi
4f440 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 24 s->filesystem->removeDirectory($
4f460 70 61 74 68 29 3b 0a 7d 0a 24 72 65 74 72 79 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 20 77 68 69 path);.}.$retrying.=.true;.}.whi
4f480 6c 65 20 28 2d 2d 24 72 65 74 72 69 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d le.(--$retries);.}..if.(null.!==
4f4a0 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d .$path).{.$this->filesystem->rem
4f4c0 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 oveDirectory($path);.}.$this->th
4f4e0 72 6f 77 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 20 rowException('Failed.to.execute.
4f500 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 70 '...$command..."\n\n"...$this->p
4f520 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 75 72 6c 29 3b rocess->getErrorOutput(),.$url);
4f540 0a 7d 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 .}.}..public.function.outputHand
4f560 6c 65 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 79 70 65 20 ler($type,.$buffer).{.if.($type.
4f580 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 !==.'out').{.return;.}.if.($this
4f5a0 2d 3e 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 ->io->isVerbose()).{.$this->io->
4f5c0 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 write($buffer,.false);.}.}..prot
4f5e0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 24 6d ected.function.throwException($m
4f600 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d essage,.$url).{.if.(0.!==.$this-
4f620 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 73 69 6f 6e >process->execute('git.--version
4f640 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 6e 65 77 20 ',.$ignoredOutput)).{.throw.new.
4f660 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 63 6c 6f \RuntimeException('Failed.to.clo
4f680 6e 65 20 27 2e 24 75 72 6c 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 ne.'.$url.',.git.was.not.found,.
4f6a0 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 64 20 69 check.that.it.is.installed.and.i
4f6c0 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 24 74 68 n.your.PATH.env.'..."\n\n"...$th
4f6e0 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 3b 0a is->process->getErrorOutput());.
4f700 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 28 24 }..throw.new.\RuntimeException($
4f720 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 74 69 6f 6e 20 message);.}..protected.function.
4f740 73 65 74 50 75 73 68 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 setPushUrl(PackageInterface.$pac
4f760 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 kage,.$path).{...if.(preg_match(
4f780 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 28 '{^(?:https?|git)://github.com/(
4f7a0 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 70 [^/]+)/([^/]+?)(?:\.git)?$}',.$p
4f7c0 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 6d 61 74 63 68 29 29 ackage->getSourceUrl(),.$match))
4f7e0 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e .{.$pushUrl.=.'git@github.com:'.
4f800 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a $match[1].'/'.$match[2].'.git';.
4f820 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 $cmd.=.sprintf('git.remote.set-u
4f840 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c rl.--push.origin.%s',.escapeshel
4f860 6c 61 72 67 28 24 70 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d larg($pushUrl));.$this->process-
4f880 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 >execute($cmd,.$ignoredOutput,.$
4f8a0 70 61 74 68 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 66 path);.}.}.}.<?php../*..*.This.f
4f8c0 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 0a 20 2a 20 28 ile.is.part.of.Composer...*..*.(
4f8e0 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 6e 61 64 65 72 c).Nils.Adermann.<naderman@nader
4f900 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 6e 6f 20 3c 6a man.de>..*.....Jordi.Boggiano.<j
4f920 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 72 20 74 68 65 .boggiano@seld.be>..*..*.For.the
4f940 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 20 69 6e 66 6f .full.copyright.and.license.info
4f960 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 20 4c 49 43 45 4e 53 45 rmation,.please.view.the.LICENSE
4f980 0a 20 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 ..*.file.that.was.distributed.wi
4f9a0 74 68 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 6d 65 73 70 th.this.source.code...*/..namesp
4f9c0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 ace.Composer\Autoload;../**..*.C
4f9e0 6c 61 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 50 53 52 2d 30 20 63 6c lassLoader.implements.a.PSR-0.cl
4fa00 61 73 73 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 ass.loader..*..*.See.https://git
4fa20 68 75 62 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 69 67 2d 73 74 61 6e 64 61 72 64 73 2f 62 6c hub.com/php-fig/fig-standards/bl
4fa40 6f 62 2f 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 64 2f 50 53 52 2d 30 2e 6d 64 0a 20 2a 0a 20 ob/master/accepted/PSR-0.md..*..
4fa60 2a 20 20 20 20 20 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 *.....$loader.=.new.\Composer\Au
4fa80 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 toload\ClassLoader();..*..*.....
4faa0 2f 2f 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 20 6e 61 6d 65 73 70 61 //.register.classes.with.namespa
4fac0 63 65 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 ces..*.....$loader->add('Symfony
4fae0 5c 43 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 6f 6d 70 6f 6e 65 6e 74 \Component',.__DIR__.'/component
4fb00 27 29 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 ');..*.....$loader->add('Symfony
4fb20 27 2c 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 72 61 6d 65 77 6f 72 6b ',...........__DIR__.'/framework
4fb40 27 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 61 75 ');..*..*.....//.activate.the.au
4fb60 74 6f 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 toloader..*.....$loader->registe
4fb80 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 62 6c 65 20 73 65 61 72 r();..*..*.....//.to.enable.sear
4fba0 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 65 67 2e 20 66 6f 72 20 ching.the.include.path.(eg..for.
4fbc0 50 45 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 PEAR.packages)..*.....$loader->s
4fbe0 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 20 2a 0a 20 2a 20 49 6e etUseIncludePath(true);..*..*.In
4fc00 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 79 20 74 6f 20 75 73 65 .this.example,.if.you.try.to.use
4fc20 20 61 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e .a.class.in.the.Symfony\Componen
4fc40 74 0a 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 63 68 69 t..*.namespace.or.one.of.its.chi
4fc60 6c 64 72 65 6e 20 28 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 ldren.(Symfony\Component\Console
4fc80 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 .for.instance),..*.the.autoloade
4fca0 72 20 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 63 6c 61 73 73 20 r.will.first.look.for.the.class.
4fcc0 75 6e 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 64 69 72 65 63 74 6f 72 under.the.component/..*.director
4fce0 79 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 y,.and.it.will.then.fallback.to.
4fd00 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 0a the.framework/.directory.if.not.
4fd20 20 2a 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 70 2e 0a 20 2a 0a 20 2a .*.found.before.giving.up...*..*
4fd40 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 .This.class.is.loosely.based.on.
4fd60 74 68 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 73 73 4c 6f 61 64 65 72 the.Symfony.UniversalClassLoader
4fd80 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 ...*..*.@author.Fabien.Potencier
4fda0 20 3c 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a 20 40 61 75 74 68 6f 72 .<fabien@symfony.com>..*.@author
4fdc0 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 .Jordi.Boggiano.<j.boggiano@seld
4fde0 2e 62 65 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 20 20 20 .be>..*/.class.ClassLoader.{....
4fe00 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 .private.$prefixes.=.array();...
4fe20 20 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 28 ..private.$fallbackDirs.=.array(
4fe40 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d );.....private.$useIncludePath.=
4fe60 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 .false;.....private.$classMap.=.
4fe80 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 array();......public.function.ge
4fea0 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e tPrefixes().....{.........return
4fec0 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 .$this->prefixes;.....}......pub
4fee0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 20 lic.function.getFallbackDirs()..
4ff00 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 66 61 6c 6c 62 ...{.........return.$this->fallb
4ff20 61 63 6b 44 69 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 ackDirs;.....}......public.funct
4ff40 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ion.getClassMap().....{.........
4ff60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 return.$this->classMap;.....}...
4ff80 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 63 6c 61 73 .../**......*.@param.array.$clas
4ffa0 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e 61 6d 65 20 6d 61 70 0a 20 20 20 20 20 sMap.Class.to.filename.map......
4ffc0 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d */.....public.function.addClassM
4ffe0 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ap(array.$classMap).....{.......
50000 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 ..if.($this->classMap).{........
50020 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 .....$this->classMap.=.array_mer
50040 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a ge($this->classMap,.$classMap);.
50060 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 20 20 24 74 68 ........}.else.{.............$th
50080 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 20 20 20 20 20 20 is->classMap.=.$classMap;.......
500a0 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 52 65 67 69 73 74 ..}.....}....../**......*.Regist
500c0 65 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 ers.a.set.of.classes......*.....
500e0 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 .*.@param.string.......$prefix.T
50100 68 65 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 he.classes.prefix......*.@param.
50120 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 54 68 65 20 6c 6f 63 61 74 69 6f array|string.$paths..The.locatio
50140 6e 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 n(s).of.the.classes......*/.....
50160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 public.function.add($prefix,.$pa
50180 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 ths).....{.........if.(!$prefix)
501a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 .{.............foreach.((array).
501c0 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 $paths.as.$path).{..............
501e0 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 ...$this->fallbackDirs[].=.$path
50200 3b 0a 20 20 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 ;.............}..............ret
50220 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 urn;.........}.........if.(isset
50240 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 ($this->prefixes[$prefix])).{...
50260 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 70 72 65 66 69 ..........$this->prefixes[$prefi
50280 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 20 x].=.array_merge(...............
502a0 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 ..$this->prefixes[$prefix],.....
502c0 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 0a 20 20 20 20 20 ............(array).$paths......
502e0 20 20 20 20 20 20 20 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 .......);.........}.else.{......
50300 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 .......$this->prefixes[$prefix].
50320 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 =.(array).$paths;.........}.....
50340 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 }....../**......*.Turns.on.searc
50360 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 hing.the.include.path.for.class.
50380 66 69 6c 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 42 6f 6f 6c files.......*......*.@param.Bool
503a0 65 61 6e 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 ean.$useIncludePath......*/.....
503c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 public.function.setUseIncludePat
503e0 68 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 h($useIncludePath).....{........
50400 20 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 63 .$this->useIncludePath.=.$useInc
50420 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 ludePath;.....}....../**......*.
50440 43 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 61 75 74 6f Can.be.used.to.check.if.the.auto
50460 6c 6f 61 64 65 72 20 75 73 65 73 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 74 6f 20 loader.uses.the.include.path.to.
50480 63 68 65 63 6b 0a 20 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 73 73 65 73 2e 0a 20 20 20 20 20 2a check......*.for.classes.......*
504a0 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 42 6f 6f 6c 65 61 6e 0a 20 20 20 20 20 2a 2f 0a ......*.@return.Boolean......*/.
504c0 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 ....public.function.getUseInclud
504e0 65 50 61 74 68 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ePath().....{.........return.$th
50500 69 73 2d 3e 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 2f is->useIncludePath;.....}....../
50520 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 **......*.Registers.this.instanc
50540 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 e.as.an.autoloader.......*......
50560 2a 20 40 70 61 72 61 6d 20 42 6f 6f 6c 65 61 6e 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 *.@param.Boolean.$prepend.Whethe
50580 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 20 6f 72 20 6e r.to.prepend.the.autoloader.or.n
505a0 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 69 6f 6e 20 72 ot......*/.....public.function.r
505c0 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 20 20 20 7b 0a egister($prepend.=.false).....{.
505e0 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 65 72 28 61 72 ........spl_autoload_register(ar
50600 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 75 65 2c 20 24 ray($this,.'loadClass'),.true,.$
50620 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 20 20 20 2a 20 prepend);.....}....../**......*.
50640 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 73 20 61 6e 20 Unregisters.this.instance.as.an.
50660 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 6c 69 63 20 66 autoloader.......*/.....public.f
50680 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 20 20 20 20 20 unction.unregister().....{......
506a0 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 61 72 72 61 79 ...spl_autoload_unregister(array
506c0 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 7d 0a 0a 20 20 ($this,.'loadClass'));.....}....
506e0 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 6e 20 63 6c 61 ../**......*.Loads.the.given.cla
50700 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 20 20 2a 20 40 ss.or.interface.......*......*.@
50720 70 61 72 61 6d 20 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 20 6e param..string.......$class.The.n
50740 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 6e 20 ame.of.the.class......*.@return.
50760 42 6f 6f 6c 65 61 6e 7c 6e 75 6c 6c 20 54 72 75 65 2c 20 69 66 20 6c 6f 61 64 65 64 0a 20 20 20 Boolean|null.True,.if.loaded....
50780 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 6c 6f 61 64 43 6c 61 ..*/.....public.function.loadCla
507a0 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 ss($class).....{.........if.($fi
507c0 6c 65 20 3d 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 le.=.$this->findFile($class)).{.
507e0 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 20 20 20 20 ............include.$file;......
50800 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ........return.true;.........}..
50820 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 ...}....../**......*.Finds.the.p
50840 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 ath.to.the.file.where.the.class.
50860 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d is.defined.......*......*.@param
50880 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 .string.$class.The.name.of.the.c
508a0 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e lass......*......*.@return.strin
508c0 67 7c 6e 75 6c 6c 20 54 68 65 20 70 61 74 68 2c 20 69 66 20 66 6f 75 6e 64 0a 20 20 20 20 20 2a g|null.The.path,.if.found......*
508e0 2f 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 /.....public.function.findFile($
50900 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 class).....{.........if.(isset($
50920 74 68 69 73 2d 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 this->classMap[$class])).{......
50940 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 4d 61 70 5b 24 63 .......return.$this->classMap[$c
50960 6c 61 73 73 5d 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 27 5c lass];.........}..........if.('\
50980 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 20 24 \'.==.$class[0]).{.............$
509a0 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 20 20 class.=.substr($class,.1);......
509c0 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 3d 3d 20 24 70 6f 73 ...}..........if.(false.!==.$pos
509e0 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 20 7b 0a 20 20 20 20 .=.strrpos($class,.'\\')).{.....
50a00 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 73 73 20 6e 61 6d 65 ........//.namespaced.class.name
50a20 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 20 73 74 72 5f 72 65 .............$classPath.=.str_re
50a40 70 6c 61 63 65 28 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 2c place('\\',.DIRECTORY_SEPARATOR,
50a60 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 70 6f 73 29 29 20 2e 20 44 49 52 45 .substr($class,.0,.$pos))...DIRE
50a80 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 6c CTORY_SEPARATOR;.............$cl
50aa0 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 20 assName.=.substr($class,.$pos.+.
50ac0 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 20 1);.........}.else.{............
50ae0 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 20 .//.PEAR-like.class.name........
50b00 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 20 .....$classPath.=.null;.........
50b20 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 20 ....$className.=.$class;........
50b40 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 5f 72 65 .}..........$classPath..=.str_re
50b60 70 6c 61 63 65 28 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 place('_',.DIRECTORY_SEPARATOR,.
50b80 24 63 6c 61 73 73 4e 61 6d 65 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 66 $className)...'.php';..........f
50ba0 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 20 61 73 20 24 70 72 65 66 oreach.($this->prefixes.as.$pref
50bc0 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 ix.=>.$dirs).{.............if.(0
50be0 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a .===.strpos($class,.$prefix)).{.
50c00 20 20 20 20 20 20 20 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 ................foreach.($dirs.a
50c20 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 s.$dir).{.....................if
50c40 20 28 66 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 .(file_exists($dir...DIRECTORY_S
50c60 45 50 41 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 EPARATOR...$classPath)).{.......
50c80 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 20 ..................return.$dir...
50ca0 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 68 DIRECTORY_SEPARATOR...$classPath
50cc0 3b 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 20 20 20 20 20 20 ;.....................}.........
50ce0 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 ........}.............}.........
50d00 7d 0a 0a 20 20 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 }..........foreach.($this->fallb
50d20 61 63 6b 44 69 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 ackDirs.as.$dir).{.............i
50d40 66 20 28 66 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 f.(file_exists($dir...DIRECTORY_
50d60 53 45 50 41 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 SEPARATOR...$classPath)).{......
50d80 20 20 20 20 20 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 ...........return.$dir...DIRECTO
50da0 52 59 5f 53 45 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 RY_SEPARATOR...$classPath;......
50dc0 20 20 20 20 20 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 .......}.........}..........if.(
50de0 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.=
50e00 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
50e20 61 73 73 50 61 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 assPath)).{.............return.$
50e40 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 7b 0a 20 20 20 20 22 6e file;.........}.....}.}.{....."n
50e60 61 6d 65 22 3a 20 22 50 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 ame":."Package",....."type":."ob
50e80 6a 65 63 74 22 2c 0a 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 ject",....."additionalProperties
50ea0 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 ":.false,....."properties":.{...
50ec0 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 20 20 22 74 79 70 ......"name":.{............."typ
50ee0 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 64 65 73 63 72 e":."string",............."descr
50f00 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e iption":."Package.name,.includin
50f20 67 20 27 76 65 6e 64 6f 72 2d 6e 61 6d 65 2f 27 20 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 g.'vendor-name/'.prefix.",......
50f40 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 ......."required":.true.........
50f60 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 },........."type":.{............
50f80 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 74 79 70 65 2c 20 65 ."description":."Package.type,.e
50fa0 69 74 68 65 72 20 27 6c 69 62 72 61 72 79 27 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 ither.'library'.for.common.packa
50fc0 67 65 73 2c 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 66 6f 72 20 63 75 ges,.'composer-installer'.for.cu
50fe0 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2c 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 66 stom.installers,.'metapackage'.f
51000 6f 72 20 65 6d 70 74 79 20 70 61 63 6b 61 67 65 73 2c 20 6f 72 20 61 20 63 75 73 74 6f 6d 20 74 or.empty.packages,.or.a.custom.t
51020 79 70 65 20 64 65 66 69 6e 65 64 20 62 79 20 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 ype.defined.by.whatever.project.
51040 74 68 69 73 20 70 61 63 6b 61 67 65 20 61 70 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 this.package.applies.to.",......
51060 20 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 ......."type":."string".........
51080 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 61 72 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 },........."target-dir":.{......
510a0 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 6f 72 63 65 73 20 74 68 ......."description":."Forces.th
510c0 65 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 e.package.to.be.installed.into.t
510e0 68 65 20 67 69 76 65 6e 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 he.given.subdirectory.path..This
51100 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 .is.used.for.autoloading.PSR-0.p
51120 61 63 6b 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 ackages.that.do.not.contain.thei
51140 72 20 66 75 6c 6c 20 70 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 r.full.path..Use.forward.slashes
51160 20 66 6f 72 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 .for.cross-platform.compatibilit
51180 79 2e 22 2c 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 y.",............."type":."string
511a0 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f ".........},........."descriptio
511c0 6e 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 n":.{............."type":."strin
511e0 67 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 g",............."description":."
51200 53 68 6f 72 74 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 2c 0a 20 20 20 Short.package.description.",....
51220 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 ........."required":.true.......
51240 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 20 20 20 20 ..},........."keywords":.{......
51260 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 ......."type":."array",.........
51280 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 22 ...."items":.{................."
512a0 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 20 20 type":."string",................
512c0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 ."description":."A.tag/keyword.t
512e0 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 hat.this.package.relates.to."...
51300 20 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 ..........}.........},........."
51320 68 6f 6d 65 70 61 67 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 homepage":.{............."type":
51340 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."string",............."descript
51360 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 70 72 6f 6a ion":."Homepage.URL.for.the.proj
51380 65 63 74 2e 22 2c 0a 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 ect.",............."format":."ur
513a0 69 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a i".........},........."version":
513c0 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 22 2c .{............."type":."string",
513e0 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 61 63 ............."description":."Pac
51400 6b 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 kage.version,.see.http://getcomp
51420 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f oser.org/doc/04-schema.md#versio
51440 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 n.for.more.info.on.valid.schemes
51460 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a .".........},........."time":.{.
51480 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 20 ............"type":."string",...
514a0 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 61 63 6b 61 67 .........."description":."Packag
514c0 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 20 e.release.date,.in.'YYYY-MM-DD'.
514e0 6f 72 20 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 66 6f 72 6d 61 74 2e or.'YYYY-MM-DD.HH:MM:SS'.format.
51500 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 ".........},........."license":.
51520 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 69 6e 67 22 2c {............."type":.["string",
51540 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 65 73 63 72 69 70 74 ."array"],............."descript
51560 69 6f 6e 22 3a 20 22 4c 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 ion":."License.name..Or.an.array
51580 20 6f 66 20 6c 69 63 65 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 .of.license.names.".........},..
515a0 20 20 20 20 20 20 20 22 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......."authors":.{.............
515c0 22 74 79 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 22 64 65 "type":."array",............."de
515e0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 scription":."List.of.authors.tha
51600 74 20 63 6f 6e 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 t.contributed.to.the.package..Th
51620 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 is.is.typically.the.main.maintai
51640 6e 65 72 73 2c 20 6e 6f 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 ners,.not.the.full.list.",......
51660 20 20 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 ......."items":.{...............
51680 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 20 20 20 20 20 .."type":."object",.............
516a0 20 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 66 61 6c 73 ...."additionalProperties":.fals
516c0 65 2c 0a 20 20 20 20 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 e,................."properties":
516e0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b .{....................."name":.{
51700 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 3a ........................."type":
51720 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 20 ."string",......................
51740 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 ..."description":."Full.name.of.
51760 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 20 20 20 20 20 the.author.",...................
51780 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 ......"required":.true..........
517a0 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 20 20 ...........},...................
517c0 20 20 22 65 6d 61 69 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 .."email":.{....................
517e0 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",..........
51800 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 45 ..............."description":."E
51820 6d 61 69 6c 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 mail.address.of.the.author.",...
51840 20 20 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 3a 20 ......................"format":.
51860 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 "email".....................},..
51880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b ..................."homepage":.{
518a0 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 3a ........................."type":
518c0 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 20 ."string",......................
518e0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 ..."description":."Homepage.URL.
51900 66 6f 72 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 20 for.the.author.",...............
51920 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 0a 20 20 20 20 20 20 .........."format":."uri".......
51940 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 ..............},................
51960 20 20 20 20 20 22 72 6f 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."role":.{..................
51980 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",........
519a0 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":.
519c0 22 41 75 74 68 6f 72 27 73 20 72 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a "Author's.role.in.the.project.".
519e0 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 20 20 20 20 20 20 20 ....................}...........
51a00 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 7d 2c ......}.............}.........},
51a20 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ........."require":.{...........
51a40 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 20 20 20 20 20 .."type":."object",.............
51a60 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 20 68 61 73 68 20 6f "description":."This.is.a.hash.o
51a80 66 20 70 61 63 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 f.package.name.(keys).and.versio
51aa0 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 n.constraints.(values).that.are.
51ac0 72 65 71 75 69 72 65 64 20 74 6f 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a required.to.run.this.package.",.
51ae0 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
51b00 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 70 s":.true.........},........."rep
51b20 6c 61 63 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 6f 62 lace":.{............."type":."ob
51b40 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 6e 22 ject",............."description"
51b60 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 61 6d :."This.is.a.hash.of.package.nam
51b80 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 74 73 e.(keys).and.version.constraints
51ba0 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 .(values).that.can.be.replaced.b
51bc0 79 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 20 22 61 y.this.package.",............."a
51be0 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 20 20 dditionalProperties":.true......
51c00 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 ...},........."conflict":.{.....
51c20 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 20 20 ........"type":."object",.......
51c40 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 61 20 ......"description":."This.is.a.
51c60 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 64 20 hash.of.package.name.(keys).and.
51c80 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 68 61 version.constraints.(values).tha
51ca0 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a t.conflict.with.this.package.",.
51cc0 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
51ce0 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 70 72 6f s":.true.........},........."pro
51d00 76 69 64 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 6f 62 vide":.{............."type":."ob
51d20 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 6e 22 ject",............."description"
51d40 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 61 6d :."This.is.a.hash.of.package.nam
51d60 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 74 73 e.(keys).and.version.constraints
51d80 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 70 72 6f 76 .(values).that.this.package.prov
51da0 69 64 65 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 ides.in.addition.to.this.package
51dc0 27 73 20 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 's.name.",............."addition
51de0 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 7d 2c 0a 20 alProperties":.true.........},..
51e00 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ......."require-dev":.{.........
51e20 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 20 20 20 ...."type":."object",...........
51e40 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 20 68 61 73 68 .."description":."This.is.a.hash
51e60 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 64 20 76 65 72 73 .of.package.name.(keys).and.vers
51e80 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 68 61 74 20 74 68 ion.constraints.(values).that.th
51ea0 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 is.package.requires.for.developi
51ec0 6e 67 20 69 74 20 28 74 65 73 74 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 ng.it.(testing.tools.and.such)."
51ee0 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 74 ,............."additionalPropert
51f00 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 73 ies":.true.........},........."s
51f20 75 67 67 65 73 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 uggest":.{............."type":."
51f40 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
51f60 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
51f80 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c ame.(keys).and.descriptions.(val
51fa0 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 ues).that.this.package.suggests.
51fc0 77 6f 72 6b 20 77 65 6c 6c 20 77 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 work.well.with.it.(this.will.be.
51fe0 73 75 67 67 65 73 74 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 suggested.to.the.user.during.ins
52000 74 61 6c 6c 61 74 69 6f 6e 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 tallation).",............."addit
52020 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 7d ionalProperties":.true.........}
52040 2c 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ,........."config":.{...........
52060 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 20 20 .."type":.["object"],...........
52080 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f .."description":."Composer.optio
520a0 6e 73 2e 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 ns.",............."properties":.
520c0 7b 0a 20 20 20 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 {................."vendor-dir":.
520e0 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
52100 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
52120 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 20 61 cription":."The.location.where.a
52140 6c 6c 20 70 61 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 ll.packages.are.installed,.defau
52160 6c 74 73 20 74 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 lts.to.\"vendor\".".............
52180 20 20 20 20 7d 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 ....},................."bin-dir"
521a0 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":.
521c0 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
521e0 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
52200 20 61 6c 6c 20 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 .all.binaries.are.linked,.defaul
52220 74 73 20 74 6f 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 ts.to.\"vendor/bin\"."..........
52240 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 7d .......}.............}.........}
52260 2c 0a 20 20 20 20 20 20 20 20 22 65 78 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ,........."extra":.{............
52280 20 22 74 79 70 65 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 ."type":.["object",."array"],...
522a0 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 72 62 69 74 72 .........."description":."Arbitr
522c0 61 72 79 20 65 78 74 72 61 20 64 61 74 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 ary.extra.data.that.can.be.used.
522e0 62 79 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c by.custom.installers,.for.exampl
52300 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 e,.package.of.type.composer-inst
52320 61 6c 6c 65 72 20 6d 75 73 74 20 68 61 76 65 20 61 20 27 63 6c 61 73 73 27 20 6b 65 79 20 64 65 aller.must.have.a.'class'.key.de
52340 66 69 6e 69 6e 67 20 74 68 65 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c 61 73 73 20 6e 61 6d 65 2e fining.the.installer.class.name.
52360 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
52380 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.........},........."
523a0 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 79 70 65 22 3a autoload":.{............."type":
523c0 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
523e0 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 68 65 20 70 61 ion":."Description.of.how.the.pa
52400 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 20 20 20 20 20 ckage.can.be.autoloaded.",......
52420 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 20 ......."properties":.{..........
52440 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 20 20 20 20 20 ......."psr-0":.{...............
52460 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 20 ......"type":."object",.........
52480 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 68 69 73 ............"description":."This
524a0 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 65 79 73 29 20 .is.a.hash.of.namespaces.(keys).
524c0 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 6e 20 62 65 20 and.the.directories.they.can.be.
524e0 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 61 72 72 61 79 found.into.(values,.can.be.array
52500 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 65 72 2e 22 2c s.of.paths).by.the.autoloader.",
52520 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 69 6f 6e 61 6c ....................."additional
52540 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 20 20 20 20 20 Properties":.true...............
52560 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 6d 61 70 22 3a ..},................."classmap":
52580 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 22 .{....................."type":."
525a0 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 73 array",....................."des
525c0 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 79 20 6f 66 20 cription":."This.is.an.array.of.
525e0 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 61 73 73 65 73 directories.that.contain.classes
52600 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 73 2d 6d 61 70 .to.be.included.in.the.class-map
52620 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 20 20 20 20 20 .generation.process."...........
52640 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 69 6c 65 73 22 ......},................."files"
52660 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":.
52680 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
526a0 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 79 20 6f 66 scription":."This.is.an.array.of
526c0 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 69 72 65 64 20 .files.that.are.always.required.
526e0 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 20 20 20 20 20 on.every.request."..............
52700 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 2c 0a 20 20 ...}.............}.........},...
52720 20 20 20 20 20 20 22 72 65 70 6f 73 69 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ......"repositories":.{.........
52740 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c ...."type":.["object",."array"],
52760 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 41 20 73 ............."description":."A.s
52780 65 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 et.of.additional.repositories.wh
527a0 65 72 65 20 70 61 63 6b 61 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 ere.packages.can.be.found.",....
527c0 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 73 22 3a ........."additionalProperties":
527e0 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 6d 69 6e 69 6d 75 .true.........},........."minimu
52800 6d 2d 73 74 61 62 69 6c 69 74 79 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 m-stability":.{............."typ
52820 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 e":.["string"],............."des
52840 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 cription":."The.minimum.stabilit
52860 79 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 y.the.packages.must.have.to.be.i
52880 6e 73 74 61 6c 6c 2d 61 62 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 nstall-able..Possible.values.are
528a0 3a 20 64 65 76 2c 20 61 6c 70 68 61 2c 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 :.dev,.alpha,.beta,.RC,.stable."
528c0 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 20 20 20 .........},........."bin":.{....
528e0 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 20 20 20 ........."type":.["array"],.....
52900 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 20 6f 66 ........"description":."A.set.of
52920 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 20 61 73 .files.that.should.be.treated.as
52940 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 62 69 6e .binaries.and.symlinked.into.bin
52960 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 20 20 20 -dir.(from.config).",...........
52980 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
529a0 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".............}.....
529c0 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 3a 20 7b ....},........."include-path":.{
529e0 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 5d 2c 0a ............."type":.["array"],.
52a00 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 45 50 52 ............"description":."DEPR
52a20 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 20 77 68 ECATED:.A.list.of.directories.wh
52a40 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 20 69 6e ich.should.get.added.to.PHP's.in
52a60 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 65 6e 74 clude.path..This.is.only.present
52a80 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 61 6e 64 .to.support.legacy.projects,.and
52aa0 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 6c 79 20 .all.new.code.should.preferably.
52ac0 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 20 20 22 use.autoloading.",............."
52ae0 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 70 65 22 items":.{................."type"
52b00 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 20 20 20 :."string".............}........
52b20 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 20 20 20 .},........."scripts":.{........
52b40 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 20 20 20 ....."type":.["object"],........
52b60 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 6c 69 73 ....."description":."Scripts.lis
52b80 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 62 65 66 teners.that.will.be.executed.bef
52ba0 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 20 20 20 ore/after.some.events.",........
52bc0 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":.{............
52be0 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 20 20 20 ....."pre-install-cmd":.{.......
52c00 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 20 .............."type":.["array",.
52c20 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 22 "string"],....................."
52c40 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 74 68 65 description":."Occurs.before.the
52c60 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
52c80 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
52ca0 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a .callables.".................},.
52cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d ................"post-install-cm
52ce0 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 65 22 d":.{....................."type"
52d00 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"],..........
52d20 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
52d40 73 20 61 66 74 65 72 20 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 s.after.the.install.command.is.e
52d60 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 6c xecuted,.contains.one.or.more.Cl
52d80 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 ass::method.callables.".........
52da0 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 72 65 2d ........},................."pre-
52dc0 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 20 20 20 update-cmd":.{..................
52de0 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 5d 2c 0a ..."type":.["array",."string"],.
52e00 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 6e ...................."description
52e20 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 61 74 65 20 63 6f 6d ":."Occurs.before.the.update.com
52e40 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 20 6f mand.is.executed,.contains.one.o
52e60 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 2e 22 r.more.Class::method.callables."
52e80 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 .................},.............
52ea0 20 20 20 20 22 70 6f 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 ...."post-update-cmd":.{........
52ec0 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 20 22 ............."type":.["array",."
52ee0 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 22 64 string"],....................."d
52f00 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 20 75 escription":."Occurs.after.the.u
52f20 70 64 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 pdate.command.is.executed,.conta
52f40 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 61 ins.one.or.more.Class::method.ca
52f60 6c 6c 61 62 6c 65 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 llables.".................},....
52f80 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 6c ............."pre-package-instal
52fa0 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"
52fc0 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"],..........
52fe0 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
53000 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 2c s.before.a.package.is.installed,
53020 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
53040 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hod.callables.".................
53060 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
53080 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 20 20 20 -install":.{....................
530a0 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 5d 2c 0a 20 20 ."type":.["array",."string"],...
530c0 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 3a .................."description":
530e0 20 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 69 6e 73 74 ."Occurs.after.a.package.is.inst
53100 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 73 alled,.contains.one.or.more.Clas
53120 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 s::method.callables."...........
53140 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 72 65 2d 70 61 ......},................."pre-pa
53160 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 20 20 20 20 20 ckage-update":.{................
53180 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 5d ....."type":.["array",."string"]
531a0 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 69 ,....................."descripti
531c0 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 67 65 20 69 73 on":."Occurs.before.a.package.is
531e0 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 6f 72 65 20 43 .updated,.contains.one.or.more.C
53200 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 lass::method.callables."........
53220 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
53240 74 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 20 t-package-update":.{............
53260 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 69 ........."type":.["array",."stri
53280 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 72 ng"],....................."descr
532a0 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 iption":."Occurs.after.a.package
532c0 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 6f 72 .is.updated,.contains.one.or.mor
532e0 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 2e 22 0a 20 20 20 20 e.Class::method.callables.".....
53300 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 ............},................."
53320 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 pre-package-uninstall":.{.......
53340 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 20 .............."type":.["array",.
53360 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 22 "string"],....................."
53380 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 61 20 70 description":."Occurs.before.a.p
533a0 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e ackage.has.been.uninstalled,.con
533c0 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 20 tains.one.or.more.Class::method.
533e0 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 callables.".................},..
53400 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 2d 75 6e 69 ..............."post-package-uni
53420 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 20 20 20 20 22 nstall":.{....................."
53440 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 20 type":.["array",."string"],.....
53460 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 22 ................"description":."
53480 4f 63 63 75 72 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 Occurs.after.a.package.has.been.
534a0 75 6e 69 6e 73 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 uninstalled,.contains.one.or.mor
534c0 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 2e 22 0a 20 20 20 20 e.Class::method.callables.".....
534e0 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 7d 0a 20 20 20 20 ............}.............}.....
53500 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 22 3a 20 7b 0a 20 20 20 20 ....},........."support":.{.....
53520 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 20 20 ........"type":."object",.......
53540 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 20 20 ......"properties":.{...........
53560 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"email":.{................
53580 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",..........
535a0 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 45 6d 61 69 6c ..........."description":."Email
535c0 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 .address.for.support.",.........
535e0 20 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 ............"format":."email"...
53600 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 ..............},................
53620 20 22 69 73 73 75 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 ."issues":.{....................
53640 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",..............
53660 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 6f 20 74 68 ......."description":."URL.to.th
53680 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e.Issue.Tracker.",..............
536a0 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 20 ......."format":."uri"..........
536c0 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 6f 72 75 6d .......},................."forum
536e0 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":
53700 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 22 ."string",....................."
53720 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 46 6f 72 75 6d 2e description":."URL.to.the.Forum.
53740 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 3a ",....................."format":
53760 20 22 75 72 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 ."uri".................},.......
53780 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .........."wiki":.{.............
537a0 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 20 20 20 20 20 ........"type":."string",.......
537c0 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 55 52 .............."description":."UR
537e0 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 L.to.the.Wiki.",................
53800 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"............
53820 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 69 72 63 22 3a 20 7b .....},................."irc":.{
53840 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
53860 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
53880 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e 65 6c 20 66 6f 72 20 73 75 70 70 6f ription":."IRC.channel.for.suppo
538a0 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f 63 68 61 6e 6e 65 6c 2e 22 2c 0a 20 rt,.as.irc://server/channel.",..
538c0 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
538e0 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".................},...........
53900 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"source":.{...............
53920 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 20 ......"type":."string",.........
53940 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 55 52 4c 20 ............"description":."URL.
53960 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 73 6f 75 72 63 65 to.browse.or.download.the.source
53980 73 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 s.",....................."format
539a0 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 0a 20 20 20 20 20 ":."uri".................}......
539c0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 .......}.........}.....}.}.[....
539e0 20 22 41 46 4c 2d 31 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 ."AFL-1.1",."AFL-1.2",."AFL-2.0"
53a00 2c 20 22 41 46 4c 2d 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c 20 22 41 50 4c 2d 31 2e 30 ,."AFL-2.1",."AFL-3.0",."APL-1.0
53a20 22 2c 0a 20 20 20 20 22 41 4e 54 4c 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 22 2c ",....."ANTLR-PD",."Apache-1.0",
53a40 20 22 41 70 61 63 68 65 2d 31 2e 31 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 22 2c 20 22 41 50 ."Apache-1.1",."Apache-2.0",."AP
53a60 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 41 50 53 4c 2d 31 2e 31 22 2c 20 22 41 50 53 4c 2d 31 SL-1.0",....."APSL-1.1",."APSL-1
53a80 2e 32 22 2c 20 22 41 50 53 4c 2d 32 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c .2",."APSL-2.0",."Artistic-1.0",
53aa0 20 22 41 72 74 69 73 74 69 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 53 4c ."Artistic-2.0",."AAL",....."BSL
53ac0 2d 31 2e 30 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 32 2d 43 6c -1.0",."BSD-2-Clause",."BSD-2-Cl
53ae0 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 ause-NetBSD",."BSD-2-Clause-Free
53b00 42 53 44 22 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 BSD",....."BSD-3-Clause",."BSD-4
53b20 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 43 45 -Clause",."BSD-4-Clause-UC",."CE
53b40 43 49 4c 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 CILL-1.0",....."CECILL-1.1",."CE
53b60 43 49 4c 4c 2d 32 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 CILL-2.0",."CECILL-B",."CECILL-C
53b80 22 2c 20 22 43 6c 41 72 74 69 73 74 69 63 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f ",."ClArtistic",....."CNRI-Pytho
53ba0 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 n-GPL-Compatible",."CNRI-Python"
53bc0 2c 20 22 43 44 44 4c 2d 31 2e 30 22 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 ,."CDDL-1.0",."CDDL-1.1",....."C
53be0 50 41 4c 2d 31 2e 30 22 2c 20 22 43 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 PAL-1.0",."CPL-1.0",."CATOSL-1.1
53c00 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 20 22 43 43 ",."CC-BY-1.0",."CC-BY-2.0",."CC
53c20 2d 42 59 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 43 2d 42 -BY-2.5",....."CC-BY-3.0",."CC-B
53c40 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
53c60 59 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 Y-ND-2.5",."CC-BY-ND-3.0",....."
53c80 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",."
53ca0 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 22 2c 0a 20 CC-BY-NC-2.5",."CC-BY-NC-3.0",..
53cc0 20 20 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-
53ce0 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 20 22 43 43 2d ND-2.0",."CC-BY-NC-ND-2.5",."CC-
53d00 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d BY-NC-ND-3.0",....."CC-BY-NC-SA-
53d20 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-
53d40 4e 43 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 22 2c 0a 20 NC-SA-2.5",."CC-BY-NC-SA-3.0",..
53d60 20 20 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
53d80 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 ",."CC-BY-SA-2.5",."CC-BY-SA-3.0
53da0 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c ",."CC0-1.0",....."CUA-OPL-1.0",
53dc0 20 22 45 50 4c 2d 31 2e 30 22 2c 20 22 65 43 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 ."EPL-1.0",."eCos-2.0",."ECL-1.0
53de0 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 45 46 ",."ECL-2.0",."EFL-1.0",....."EF
53e00 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 L-2.0",."Entessa",."ErlPL-1.1",.
53e20 22 45 55 44 61 74 61 67 72 69 64 22 2c 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d "EUDatagrid",."EUPL-1.0",."EUPL-
53e40 31 2e 31 22 2c 0a 20 20 20 20 22 46 61 69 72 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 1.1",....."Fair",."Frameworx-1.0
53e60 22 2c 20 22 41 47 50 4c 2d 33 2e 30 22 2c 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c ",."AGPL-3.0",."GFDL-1.1",."GFDL
53e80 2d 31 2e 32 22 2c 20 22 47 46 44 4c 2d 31 2e 33 22 2c 0a 20 20 20 20 22 47 50 4c 2d 31 2e 30 22 -1.2",."GFDL-1.3",....."GPL-1.0"
53ea0 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e ,."GPL-1.0+",."GPL-2.0",."GPL-2.
53ec0 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 0+",....."GPL-2.0-with-autoconf-
53ee0 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d exception",."GPL-2.0-with-bison-
53f00 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c exception",....."GPL-2.0-with-cl
53f20 61 73 73 70 61 74 68 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 asspath-exception",."GPL-2.0-wit
53f40 68 2d 66 6f 6e 74 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d h-font-exception",....."GPL-2.0-
53f60 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 20 with-GCC-exception",."GPL-3.0",.
53f80 22 47 50 4c 2d 33 2e 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 "GPL-3.0+",....."GPL-3.0-with-au
53fa0 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 toconf-exception",."GPL-3.0-with
53fc0 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 0a 20 20 20 -GCC-exception",."LGPL-2.1",....
53fe0 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d ."LGPL-2.1+",."LGPL-3.0",."LGPL-
54000 33 2e 30 2b 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 20 3.0+",."LGPL-2.0",."LGPL-2.0+",.
54020 22 67 53 4f 41 50 2d 31 2e 33 62 22 2c 0a 20 20 20 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 "gSOAP-1.3b",....."HPND",."IPL-1
54040 2e 30 22 2c 20 22 49 50 41 22 2c 20 22 49 53 43 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 2c 20 22 .0",."IPA",."ISC",."LPPL-1.0",."
54060 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 4c 50 50 4c LPPL-1.1",."LPPL-1.2",....."LPPL
54080 2d 31 2e 33 63 22 2c 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 -1.3c",."Libpng",."LPL-1.0",."LP
540a0 4c 2d 31 2e 30 32 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f L-1.02",."MS-PL",."MS-RL",."MirO
540c0 53 22 2c 0a 20 20 20 20 22 4d 49 54 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d S",....."MIT",."Motosoto",."MPL-
540e0 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 20 22 4d 75 6c 1.0",."MPL-1.1",."MPL-2.0",."Mul
54100 74 69 63 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 22 2c 0a 20 20 20 20 22 4e 61 75 6d 65 6e 22 2c tics",."NASA-1.3",....."Naumen",
54120 20 22 4e 47 50 4c 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 ."NGPL",."Nokia",."NPOSL-3.0",."
54140 4e 54 50 22 2c 20 22 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 0a 20 20 NTP",."OCLC-2.0",."ODbL-1.0",...
54160 20 20 22 50 44 44 4c 2d 31 2e 30 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 .."PDDL-1.0",."OGTSL",."OSL-1.0"
54180 2c 20 22 4f 53 4c 2d 32 2e 30 22 2c 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 ,."OSL-2.0",."OSL-2.1",."OSL-3.0
541a0 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 38 22 2c 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 ",....."OLDAP-2.8",."OpenSSL",."
541c0 50 48 50 2d 33 2e 30 22 2c 20 22 50 48 50 2d 33 2e 30 31 22 2c 20 22 50 6f 73 74 67 72 65 53 51 PHP-3.0",."PHP-3.01",."PostgreSQ
541e0 4c 22 2c 20 22 50 79 74 68 6f 6e 2d 32 2e 30 22 2c 0a 20 20 20 20 22 51 50 4c 2d 31 2e 30 22 2c L",."Python-2.0",....."QPL-1.0",
54200 20 22 52 50 53 4c 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d ."RPSL-1.0",."RPL-1.5",."RHeCos-
54220 31 2e 31 22 2c 20 22 52 53 43 50 4c 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 1.1",."RSCPL",."Ruby",."SAX-PD",
54240 0a 20 20 20 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 ....."OFL-1.0",."OFL-1.1",."SimP
54260 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 75 67 61 72 43 52 4d 2d 31 L-2.0",."Sleepycat",."SugarCRM-1
54280 2e 31 2e 33 22 2c 20 22 53 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 57 61 74 63 6f 6d 2d 31 2e .1.3",."SPL-1.0",....."Watcom-1.
542a0 30 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 20 22 57 33 43 22 2c 20 22 57 0",."NCSA",."VSL-1.0",."W3C",."W
542c0 58 77 69 6e 64 6f 77 73 22 2c 20 22 58 6e 65 74 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 Xwindows",."Xnet",."XFree86-1.1"
542e0 2c 0a 20 20 20 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 69 6d ,....."YPL-1.0",."YPL-1.1",."Zim
54300 62 72 61 2d 31 2e 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 bra-1.3",."Zlib",."ZPL-1.1",."ZP
54320 4c 2d 32 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a 5d 4d 5a 90 00 03 00 00 00 04 00 00 00 ff L-2.0",."ZPL-2.1".]MZ...........
54340 ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........@....................
54360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd ...........................!..L.
54380 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 !This.program.cannot.be.run.in.D
543a0 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b OS.mode....$.........,.;.B.;.B.;
543c0 a7 42 9e 32 df d7 9e 3a a7 42 9e 32 df c1 9e 2d a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f .B.2...:.B.2...-.B.2...9.B.2...?
543e0 a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b a7 43 9e 08 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a .B..a9.8.B.;.C...B.2...:.B.2...:
54400 a7 42 9e 32 df d3 9e 3a a7 42 9e 52 69 63 68 3b a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c .B.2...:.B.Rich;.B.........PE..L
54420 01 05 00 ac 4d 6f 4f 00 00 00 00 00 00 00 00 e0 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 ....MoO.........................
54440 00 00 00 38 13 00 00 00 10 00 00 00 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 ...8.............@..............
54460 00 00 00 05 00 00 00 00 00 00 00 00 60 00 00 00 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 ............`......?.....@......
54480 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 ............................"..P
544a0 00 00 00 00 40 00 00 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 ....@.......................P..p
544c0 01 00 00 00 21 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....!...........................
544e0 00 00 00 38 21 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 ...8!..@........................
54500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 ....................text........
54520 10 00 00 00 0a 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 ..........................`.rdat
54540 61 00 00 ce 09 00 00 00 20 00 00 00 0a 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 a..............................@
54560 00 00 40 2e 64 61 74 61 00 00 00 90 03 00 00 00 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 ..@.data........0...............
54580 00 00 00 00 00 00 00 40 00 00 c0 2e 72 73 72 63 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 .......@....rsrc........@.......
545a0 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 ...............@..@.reloc.......
545c0 50 00 00 00 02 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 P......."..............@..B.....
545e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
546e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
54720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a ...................j$...@..x...j
54740 f6 ff 15 08 20 40 00 83 65 d0 00 8b f0 8d 45 d0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 .....@..e.....E.PV....@..E....PV
54760 ff 15 04 20 40 00 8d 4d d4 ff 15 58 20 40 00 83 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c ....@..M...X.@..e...E.P.5H.@...L
54780 20 40 00 59 59 ff 35 5c 20 40 00 8d 45 d4 50 ff 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff .@.YY.5\.@..E.P.5`.@...D.@.YY...
547a0 15 50 20 40 00 83 4d fc ff 8d 4d d4 ff 15 54 20 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 .P.@..M...M...T.@.3..H....;..0@.
547c0 75 02 f3 c3 e9 ac 02 00 00 68 80 15 40 00 e8 a3 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff u........h..@.......l3@...$40@..
547e0 35 68 33 40 00 a3 34 30 40 00 68 24 30 40 00 68 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 5h3@..40@.h$0@.h(0@.h.0@.....@..
54800 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 08 e8 b9 03 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 ...00@...}.j......Y.j.h."@......
54820 33 db 89 5d fc 64 a1 18 00 00 00 8b 70 04 89 5d e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b 3..].d......p..]...3@.SVW..0.@.;
54840 c3 74 19 3b c6 75 08 33 f6 46 89 75 e4 eb 10 68 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 .t.;.u.3.F.u...h......4.@...3.F.
54860 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c 03 00 00 59 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 |3@.;.u.j..\...Y.;.|3@...u,.5|3@
54880 00 68 f0 20 40 00 68 e4 20 40 00 e8 a7 05 00 00 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 .h..@.h..@......YY..t..E........
548a0 00 00 e9 dd 00 00 00 89 35 3c 30 40 00 a1 7c 33 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 ........5<0@..|3@.;.u.h..@.h..@.
548c0 e8 6c 05 00 00 59 59 c7 05 7c 33 40 00 02 00 00 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d .l...YY..|3@.....9].u.SW..8.@.9.
548e0 8c 33 40 00 74 19 68 8c 33 40 00 e8 83 04 00 00 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 .3@.t.h.3@......Y..t.Sj.S...3@..
54900 24 30 40 00 8b 0d bc 20 40 00 89 01 ff 35 24 30 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 $0@.....@....5$0@..5(0@..5.0@...
54920 fe ff ff 83 c4 0c a3 38 30 40 00 39 1d 2c 30 40 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b .......80@.9.,0@.u7P....@..E....
54940 09 89 4d e0 50 51 e8 8e 03 00 00 59 59 c3 8b 65 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 ..M.PQ.....YY..e..E..80@.3.9.,0@
54960 00 75 07 50 ff 15 68 20 40 00 39 1d 3c 30 40 00 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 .u.P..h.@.9.<0@.u.....@..E......
54980 38 30 40 00 e8 fb 04 00 00 c3 b8 4d 5a 00 00 66 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 80@........MZ..f9...@.t.3..M.<.@
549a0 00 8d 80 00 00 40 00 81 38 50 45 00 00 75 e9 0f b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 .....@..8PE..u...H.......t......
549c0 00 75 d5 83 b8 84 00 00 00 0e 76 cc 33 c9 39 88 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 .u........v.3.9........xt.v.3.9.
549e0 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 2c 30 40 00 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 .........j..,0@...p.@.j...l.@.YY
54a00 a3 84 33 40 00 a3 88 33 40 00 ff 15 cc 20 40 00 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d ..3@...3@.....@...t3@.......@...
54a20 70 33 40 00 89 08 a1 a8 20 40 00 8b 00 a3 78 33 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 p3@......@....x3@..V.........=.0
54a40 40 00 00 75 0c 68 b5 17 40 00 ff 15 ac 20 40 00 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a @..u.h..@.....@.Y.g....=.0@..u.j
54a60 ff ff 15 b0 20 40 00 59 33 c0 c3 e8 7b 04 00 00 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 .....@.Y3...{..........U....(...
54a80 a3 48 31 40 00 89 0d 44 31 40 00 89 15 40 31 40 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 .H1@...D1@...@1@...<1@..581@..=4
54aa0 31 40 00 66 8c 15 60 31 40 00 66 8c 0d 54 31 40 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 1@.f..`1@.f..T1@.f..01@.f..,1@.f
54ac0 8c 25 28 31 40 00 66 8c 2d 24 31 40 00 9c 8f 05 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 .%(1@.f.-$1@....X1@..E..L1@..E..
54ae0 50 31 40 00 8d 45 08 a3 5c 31 40 00 8b 85 e0 fc ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 P1@..E..\1@..........0@......P1@
54b00 00 a3 4c 30 40 00 c7 05 40 30 40 00 09 04 00 c0 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 ..L0@...@0@.......D0@.......0@..
54b20 85 d8 fc ff ff a1 04 30 40 00 89 85 dc fc ff ff ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 .......0@...........@...0@.j..?.
54b40 00 00 59 6a 00 ff 15 20 20 40 00 68 1c 21 40 00 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a ..Yj.....@.h.!@...$.@..=.0@..u.j
54b60 01 e8 1b 04 00 00 59 68 09 04 00 c0 ff 15 28 20 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec ......Yh......(.@.P..,.@.....U..
54b80 8b 45 08 8b 00 81 38 63 73 6d e0 75 2a 83 78 10 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 .E....8csm.u*.x..u$.@.=....t.=!.
54ba0 93 19 74 0e 3d 22 05 93 19 74 07 3d 00 40 99 01 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 ..t.="...t.=.@..u......3.]...hH.
54bc0 40 00 ff 15 20 20 40 00 33 c0 c3 ff 25 a4 20 40 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 @.....@.3...%..@.j.h("@..b....5.
54be0 33 40 00 8b 35 8c 20 40 00 ff d6 59 89 45 e4 83 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 3@..5..@...Y.E....u..u.....@.Y.g
54c00 6a 08 e8 92 03 00 00 59 83 65 fc 00 ff 35 88 33 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 j......Y.e...5.3@....E..5.3@...Y
54c20 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 ff 75 08 8b 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 Y.E..E.P.E.P.u..5l.@...YP.U....E
54c40 dc ff 75 e4 ff d6 a3 88 33 40 00 ff 75 e0 ff d6 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 ..u.....3@..u........3@..E......
54c60 09 00 00 00 8b 45 dc e8 18 02 00 00 c3 6a 08 e8 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e .....E.......j......Y...U...u..N
54c80 ff ff ff f7 d8 1b c0 f7 d8 59 48 5d c3 8b ff 56 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 .........YH]...V..!@...!@.W..;.s
54ca0 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 .....t......;.r._^...V.."@..."@.
54cc0 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc W..;.s.....t......;.r._^..%..@..
54ce0 cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 4d 5a 00 00 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 .....U...M..MZ..f9.t.3.]..A<...8
54d00 50 45 00 00 75 ef 33 d2 b9 0b 01 00 00 66 39 48 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc PE..u.3......f9H......].........
54d20 cc cc cc 8b ff 55 8b ec 8b 45 08 8b 48 3c 03 c8 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 .....U...E..H<....A.SV..q.3.W.D.
54d40 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b f9 72 09 8b 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 ...v..}..H.;.r..X...;.r.B..(;.r.
54d60 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 3._^[]...............U..j.hH"@.h
54d80 65 17 40 00 64 a1 00 00 00 00 50 83 ec 08 53 56 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 e.@.d.....P...SVW..0@.1E.3.P.E.d
54da0 a3 00 00 00 00 89 65 e8 c7 45 fc 00 00 00 00 68 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 ......e..E.....h..@..*........tU
54dc0 8b 45 08 2d 00 00 40 00 50 68 00 00 40 00 e8 50 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f .E.-..@.Ph..@..P........t;.@$...
54de0 f7 d0 83 e0 01 c7 45 fc fe ff ff ff 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ......E......M.d......Y_^[..]..E
54e00 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 0f 94 c2 8b c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d .....3.=...........e..E.....3..M
54e20 f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 .d......Y_^[..]...%..@..%..@...h
54e40 65 17 40 00 64 ff 35 00 00 00 00 8b 44 24 10 89 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 e.@.d.5.....D$..l$..l$.+.SVW..0@
54e60 00 31 45 fc 33 c5 50 89 65 e8 ff 75 f8 8b 45 fc c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 .1E.3.P.e..u..E..E......E..E.d..
54e80 00 00 00 c3 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 .....M.d......Y__^[..]Q...U...u.
54ea0 ff 75 10 ff 75 0c ff 75 08 68 87 10 40 00 68 00 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 .u..u..u.h..@.h.0@.........]...V
54ec0 68 00 00 03 00 68 00 00 01 00 33 f6 56 e8 d9 00 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 h....h....3.V..........t.VVVVV..
54ee0 00 00 00 83 c4 14 5e c3 33 c0 c3 8b ff 55 8b ec 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 ......^.3....U.......0@..e...e..
54f00 53 57 bf 4e e6 40 bb bb 00 00 ff ff 3b c7 74 0d 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 SW.N.@......;.t...t.....0@..`V.E
54f20 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 75 f8 ff 15 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 .P..<.@..u.3u.....@.3.....@.3...
54f40 14 20 40 00 33 f0 8d 45 f0 50 ff 15 18 20 40 00 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 ..@.3..E.P....@..E.3E.3.;.u..O.@
54f60 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 0b f0 89 35 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 .....u.........5.0@....5.0@.^_[.
54f80 c3 ff 25 74 20 40 00 ff 25 78 20 40 00 ff 25 7c 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff ..%t.@..%x.@..%|.@..%..@..%..@..
54fa0 25 90 20 40 00 ff 25 94 20 40 00 ff 25 98 20 40 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d %..@..%..@..%..@..%..@.Pd.5.....
54fc0 44 24 0c 2b 64 24 0c 53 56 57 89 28 8b e8 a1 00 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff D$.+d$.SVW.(....0@.3.P.E..u..E..
54fe0 ff ff ff 8d 45 f4 64 a3 00 00 00 00 c3 8b 4d f4 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 ....E.d.......M.d......Y__^[..]Q
55000 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 dd ff ff ff 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c ..M.3............M..%T.@..T$..B.
55020 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a fc 33 c8 e8 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 .J.3.......J.3.......l"@..s.....
55040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
550a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
550c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
550e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 ....................#...#...#...
55140 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 )..r)..b)..H)..4)...)...(...(...
55160 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a (...(...(...(...).......#...$...
55180 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 %...%...&..d&...&...$......('...
551a0 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 '...'...'...'...(..((..6(...'..H
551c0 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 (..Z(..t(...(...'...'...'...'...
551e0 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 '..l'..^'..R'..F'..>'..>(..0'...
55200 27 00 00 b8 29 00 00 00 00 00 00 00 00 00 00 96 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a '...)............@.........W.@..
55220 14 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 .@......................MoO.....
55240 00 00 00 6c 00 00 00 80 21 00 00 80 0f 00 00 40 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 ...l....!......@0@..0@.bad.alloc
55260 61 74 69 6f 6e 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ation......H....................
55280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
552a0 00 00 00 00 00 00 00 00 30 40 00 f0 21 40 00 02 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 ........0@..!@.....RSDS.......J.
552c0 21 f6 cc eb 4c 5a 00 01 00 00 00 63 3a 5c 75 73 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e !...LZ.....c:\users\seld\documen
552e0 74 73 5c 76 69 73 75 61 6c 20 73 74 75 64 69 6f 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 ts\visual.studio.2010\Projects\h
55300 69 64 64 65 6e 69 6e 70 5c 52 65 6c 65 61 73 65 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 iddeninp\Release\hiddeninp.pdb..
55320 00 00 00 65 17 00 00 e6 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 ...e............................
55340 00 00 00 d0 ff ff ff 00 00 00 00 fe ff ff ff 07 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 .................@...@..........
55360 00 00 00 cc ff ff ff 00 00 00 00 fe ff ff ff 00 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 ...................:.@..........
55380 00 00 00 d8 ff ff ff 00 00 00 00 fe ff ff ff cb 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 .................@...@.......@."
553a0 05 93 19 01 00 00 00 64 22 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 .......d"@......................
553c0 00 00 00 e0 22 00 00 00 00 00 00 00 00 00 00 ec 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 ...."...........#......$#.......
553e0 00 00 00 f4 26 00 00 44 20 00 00 48 23 00 00 00 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 ....&..D...H#...........(..h....
55400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 ....................#...#...#...
55420 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 )..r)..b)..H)..4)...)...(...(...
55440 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a (...(...(...(...).......#...$...
55460 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 %...%...&..d&...&...$......('...
55480 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 '...'...'...'...(..((..6(...'..H
554a0 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 (..Z(..t(...(...'...'...'...'...
554c0 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 '..l'..^'..R'..F'..>'..>(..0'...
554e0 27 00 00 b8 29 00 00 00 00 00 00 95 01 47 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 '...)........GetConsoleMode....S
55500 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 3b 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b etConsoleMode..;.GetStdHandle..K
55520 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 00 16 00 3f 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 ERNEL32.dll....??$?6DU?$char_tra
55540 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 31 40 40 73 74 64 its@D@std@@V?$allocator@D@1@@std
55560 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_
55580 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 traits@D@std@@@0@AAV10@ABV?$basi
555a0 63 5f 73 74 72 69 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 c_string@DU?$char_traits@D@std@@
555c0 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 V?$allocator@D@2@@0@@Z...?cout@s
555e0 74 64 40 40 33 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 74 td@@3V?$basic_ostream@DU?$char_t
55600 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 raits@D@std@@@1@A..J.?cin@std@@3
55620 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
55640 40 44 40 73 74 64 40 40 40 31 40 41 00 c2 00 3f 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 @D@std@@@1@A...??$getline@DU?$ch
55660 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 40 44 40 ar_traits@D@std@@V?$allocator@D@
55680 32 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 2@@std@@YAAAV?$basic_istream@DU?
556a0 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 $char_traits@D@std@@@0@AAV10@AAV
556c0 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 61 69 74 73 40 44 ?$basic_string@DU?$char_traits@D
556e0 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f @std@@V?$allocator@D@2@@0@@Z...?
55700 3f 36 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 74 72 61 69 74 ?6?$basic_ostream@DU?$char_trait
55720 73 40 44 40 73 74 64 40 40 40 73 74 64 40 40 51 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 s@D@std@@@std@@QAEAAV01@P6AAAV01
55740 40 41 41 56 30 31 40 40 5a 40 5a 00 00 5f 02 3f 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 @AAV01@@Z@Z.._.??1?$basic_string
55760 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 6f 63 @DU?$char_traits@D@std@@V?$alloc
55780 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 ator@D@2@@std@@QAE@XZ..{.??0?$ba
557a0 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 sic_string@DU?$char_traits@D@std
557c0 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 51 41 45 40 58 5a 00 @@V?$allocator@D@2@@std@@QAE@XZ.
557e0 00 b3 07 3f 65 6e 64 6c 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 ...?endl@std@@YAAAV?$basic_ostre
55800 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 41 56 am@DU?$char_traits@D@std@@@1@AAV
55820 32 31 40 40 5a 00 00 4d 53 56 43 50 39 30 2e 64 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 21@@Z..MSVCP90.dll..._amsg_exit.
55840 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 61 72 67 73 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 ...__getmainargs.,._cexit..|._ex
55860 69 74 00 66 00 5f 58 63 70 74 46 69 6c 74 65 72 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 it.f._XcptFilter...exit....__ini
55880 74 65 6e 76 00 04 02 5f 69 6e 69 74 74 65 72 6d 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c tenv..._initterm..._initterm_e.<
558a0 01 5f 63 6f 6e 66 69 67 74 68 72 65 61 64 6c 6f 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 ._configthreadlocale...__setuser
558c0 6d 61 74 68 65 72 72 00 00 0b 01 5f 61 64 6a 75 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f matherr...._adjust_fdiv....__p__
558e0 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f 5f 70 5f 5f 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 commode....__p__fmode..j._encode
55900 5f 70 6f 69 6e 74 65 72 00 e0 00 5f 5f 73 65 74 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 _pointer...__set_app_type..K._cr
55920 74 5f 64 65 62 75 67 67 65 72 5f 68 6f 6f 6b 00 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 t_debugger_hook..C.?terminate@@Y
55940 41 58 58 5a 00 4d 53 56 43 52 39 30 2e 64 6c 6c 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 AXXZ.MSVCR90.dll..._unlock...__d
55960 6c 6c 6f 6e 65 78 69 74 00 76 02 5f 6c 6f 63 6b 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 llonexit.v._lock..._onexit.`._de
55980 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 73 01 5f 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f code_pointer.s._except_handler4_
559a0 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e 76 6f 6b 65 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 common..._invoke_watson..?._cont
559c0 72 6f 6c 66 70 5f 73 00 00 bd 02 49 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 rolfp_s....InterlockedExchange.!
559e0 04 53 6c 65 65 70 00 ba 02 49 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 .Sleep...InterlockedCompareExcha
55a00 6e 67 65 00 00 2d 04 54 65 72 6d 69 6e 61 74 65 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 nge..-.TerminateProcess....GetCu
55a20 72 72 65 6e 74 50 72 6f 63 65 73 73 00 3e 04 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f rrentProcess.>.UnhandledExceptio
55a40 6e 46 69 6c 74 65 72 00 00 15 04 53 65 74 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e nFilter....SetUnhandledException
55a60 46 69 6c 74 65 72 00 d1 02 49 73 44 65 62 75 67 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 Filter...IsDebuggerPresent.T.Que
55a80 72 79 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f 75 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f ryPerformanceCounter.f.GetTickCo
55aa0 75 6e 74 00 00 ad 01 47 65 74 43 75 72 72 65 6e 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 unt....GetCurrentThreadId....Get
55ac0 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 64 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 CurrentProcessId.O.GetSystemTime
55ae0 41 73 46 69 6c 65 54 69 6d 65 00 73 00 5f 5f 43 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 AsFileTime.s.__CxxFrameHandler3.
55b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ...................N.@....D.....
55b40 ff ff ff fe ff ff ff 01 00 00 00 24 21 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...........$!@..................
55b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
55d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ................................
55d40 00 02 00 10 00 00 00 20 00 00 80 18 00 00 00 38 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 ...............8................
55d60 00 01 00 01 00 00 00 50 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 .......P.......................h
55d80 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 ................................
55da0 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 90 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 ....................@..(........
55dc0 00 00 00 c8 43 00 00 56 02 00 00 e4 04 00 00 00 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 ....C..V...........(.4...V.S._.V
55de0 00 45 00 52 00 53 00 49 00 4f 00 4e 00 5f 00 49 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 .E.R.S.I.O.N._.I.N.F.O..........
55e00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 ................................
55e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 .....................S.t.r.i.n.g
55e40 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 .F.i.l.e.I.n.f.o...b.....0.4.0.9
55e60 00 30 00 34 00 62 00 30 00 00 00 ca 00 51 00 01 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 .0.4.b.0.....Q...F.i.l.e.D.e.s.c
55e80 00 72 00 69 00 70 00 74 00 69 00 6f 00 6e 00 00 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 .r.i.p.t.i.o.n.....R.e.a.d.s...f
55ea0 00 72 00 6f 00 6d 00 20 00 73 00 74 00 64 00 69 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 .r.o.m...s.t.d.i.n...w.i.t.h.o.u
55ec0 00 74 00 20 00 6c 00 65 00 61 00 6b 00 69 00 6e 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 .t...l.e.a.k.i.n.g...i.n.f.o...t
55ee0 00 6f 00 20 00 74 00 68 00 65 00 20 00 74 00 65 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 .o...t.h.e...t.e.r.m.i.n.a.l...a
55f00 00 6e 00 64 00 20 00 6f 00 75 00 74 00 70 00 75 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 .n.d...o.u.t.p.u.t.s...b.a.c.k..
55f20 00 74 00 6f 00 20 00 73 00 74 00 64 00 6f 00 75 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 .t.o...s.t.d.o.u.t.....6.....F.i
55f40 00 6c 00 65 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c .l.e.V.e.r.s.i.o.n.....1.,...0.,
55f60 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 38 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e ...0.,...0.....8.....I.n.t.e.r.n
55f80 00 61 00 6c 00 4e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 .a.l.N.a.m.e...h.i.d.d.e.n.i.n.p
55fa0 00 75 00 74 00 00 00 50 00 16 00 01 00 4c 00 65 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 .u.t...P.....L.e.g.a.l.C.o.p.y.r
55fc0 00 69 00 67 00 68 00 74 00 00 00 4a 00 6f 00 72 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 .i.g.h.t...J.o.r.d.i...B.o.g.g.i
55fe0 00 61 00 6e 00 6f 00 20 00 2d 00 20 00 32 00 30 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 .a.n.o...-...2.0.1.2...H.....O.r
56000 00 69 00 67 00 69 00 6e 00 61 00 6c 00 46 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 .i.g.i.n.a.l.F.i.l.e.n.a.m.e...h
56020 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a .i.d.d.e.n.i.n.p.u.t...e.x.e...:
56040 00 0d 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 .....P.r.o.d.u.c.t.N.a.m.e.....H
56060 00 69 00 64 00 64 00 65 00 6e 00 20 00 49 00 6e 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 .i.d.d.e.n...I.n.p.u.t.....:....
56080 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 .P.r.o.d.u.c.t.V.e.r.s.i.o.n...1
560a0 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 .,...0.,...0.,...0.....D.....V.a
560c0 00 72 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 .r.F.i.l.e.I.n.f.o.....$.....T.r
560e0 00 61 00 6e 00 73 00 6c 00 61 00 74 00 69 00 6f 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 .a.n.s.l.a.t.i.o.n.........<asse
56100 6d 62 6c 79 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 6f 66 mbly.xmlns="urn:schemas-microsof
56120 74 2d 63 6f 6d 3a 61 73 6d 2e 76 31 22 20 6d 61 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 t-com:asm.v1".manifestVersion="1
56140 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 73 74 49 6e 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 .0">....<trustInfo.xmlns="urn:sc
56160 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 33 22 3e 0d 0a 20 20 hemas-microsoft-com:asm.v3">....
56180 20 20 3c 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 ..<security>........<requestedPr
561a0 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 ivileges>..........<requestedExe
561c0 63 75 74 69 6f 6e 4c 65 76 65 6c 20 6c 65 76 65 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 cutionLevel.level="asInvoker".ui
561e0 41 63 63 65 73 73 3d 22 66 61 6c 73 65 22 3e 3c 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 Access="false"></requestedExecut
56200 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 20 20 20 20 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 ionLevel>........</requestedPriv
56220 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 3c 2f 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 ileges>......</security>....</tr
56240 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 3c 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 ustInfo>....<dependency>......<d
56260 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 ependentAssembly>........<assemb
56280 6c 79 49 64 65 6e 74 69 74 79 20 74 79 70 65 3d 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 lyIdentity.type="win32".name="Mi
562a0 63 72 6f 73 6f 66 74 2e 56 43 39 30 2e 43 52 54 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 crosoft.VC90.CRT".version="9.0.2
562c0 31 30 32 32 2e 38 22 20 70 72 6f 63 65 73 73 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 1022.8".processorArchitecture="x
562e0 38 36 22 20 70 75 62 6c 69 63 4b 65 79 54 6f 6b 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 86".publicKeyToken="1fc8b3b9a1e1
56300 38 65 33 62 22 3e 3c 2f 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 8e3b"></assemblyIdentity>......<
56320 2f 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 /dependentAssembly>....</depende
56340 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 6d 62 6c 79 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 ncy>..</assembly>PAPADDINGXXPADD
56360 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56380 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
563a0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
563c0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
563e0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56400 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56420 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56440 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56460 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56480 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
564a0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
564c0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
564e0 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56500 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 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
56520 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 INGPADDINGXXPADDING....@....0.0!
56540 30 2f 30 38 30 46 30 4c 30 54 30 5e 30 64 30 6e 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 0/080F0L0T0^0d0n0{0.0.0.0.0.0.0.
56560 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 30 08 31 23 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 0.0.0.0.0.0.0.1#1-1@1J1O1T1v1{1.
56580 31 89 31 96 31 a7 31 ad 31 b4 31 c8 31 cd 31 d3 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 1.1.1.1.1.1.1.1.1.1.1.1.1.1.2"2*
565a0 32 33 32 39 32 41 32 4d 32 5f 32 6a 32 70 32 b9 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 23292A2M2_2j2p2.2.2.2.2.2.2.2.2.
565c0 32 f4 32 fb 32 0b 33 13 33 19 33 25 33 30 33 4e 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 2.2.2.3.3.3%303N3T3Z3`3f3l3s3z3.
565e0 33 88 33 8f 33 96 33 9d 33 a5 33 ad 33 b5 33 c1 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.
56600 34 14 34 19 34 1f 34 25 34 3b 34 42 34 8b 34 91 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 4.4.4.4%4;4B4.4.4.4.4.4.4.4.4.4.
56620 34 14 35 21 35 5e 35 63 35 84 35 89 35 a8 35 48 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 4.5!5^5c5.5.5.5H6M6_6}6.6.6.7.7.
56640 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 37 fd 37 05 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 7*7w7|7.7.7.7.7.8.8.8=8E8P8V8\8b
56660 38 68 38 6e 38 74 38 7a 38 80 38 9c 38 e2 38 02 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 8h8n8t8z8.8.8.8.9......$....0.0.
56680 30 1c 31 20 31 74 31 78 31 1c 32 20 32 40 32 5c 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 0.1.1t1x1.2.2@2\2`2h2t2.0.......
566a0 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0...............................
566c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ...................<?php........
56740 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
56760 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 0a 7b rocess;..........class.Process.{
56780 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 .const.ERR.=.'err';.const.OUT.=.
567a0 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 72 65 'out';..const.STATUS_READY.=.'re
567c0 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 73 74 ady';.const.STATUS_STARTED.=.'st
567e0 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 arted';.const.STATUS_TERMINATED.
56800 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 =.'terminated';..const.STDIN.=.0
56820 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 ;.const.STDOUT.=.1;.const.STDERR
56840 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 70 72 69 .=.2;..private.$commandline;.pri
56860 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 74 65 vate.$cwd;.private.$env;.private
56880 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 .$stdin;.private.$timeout;.priva
568a0 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 6f 64 65 3b 0a te.$options;.private.$exitcode;.
568c0 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
568e0 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
56900 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
56920 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 70 69 70 65 73 3b 0a 70 72 69 76 61 74 65 20 24 70 72 ity;.private.$pipes;.private.$pr
56940 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 ocess;.private.$status.=.self::S
56960 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 6e 64 6c TATUS_READY;..private.$fileHandl
56980 65 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 42 79 74 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a es;.private.$readBytes;.........
569a0 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 static.public.$exitCodes.=.array
569c0 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c 0a 31 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 (.0.=>.'OK',.1.=>.'General.error
569e0 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 75 73 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e ',.2.=>.'Misuse.of.shell.builtin
56a00 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 27 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e s',..126.=>.'Invoked.command.can
56a20 6e 6f 74 20 65 78 65 63 75 74 65 27 2c 0a 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f not.execute',.127.=>.'Command.no
56a40 74 20 66 6f 75 6e 64 27 2c 0a 31 32 38 20 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 t.found',.128.=>.'Invalid.exit.a
56a60 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 20 31 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 rgument',....129.=>.'Hangup',.13
56a80 30 20 3d 3e 20 27 49 6e 74 65 72 72 75 70 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 0.=>.'Interrupt',.131.=>.'Quit.a
56aa0 6e 64 20 64 75 6d 70 20 63 6f 72 65 27 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 nd.dump.core',.132.=>.'Illegal.i
56ac0 6e 73 74 72 75 63 74 69 6f 6e 27 2c 0a 31 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b nstruction',.133.=>.'Trace/break
56ae0 70 6f 69 6e 74 20 74 72 61 70 27 2c 0a 31 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f point.trap',.134.=>.'Process.abo
56b00 72 74 65 64 27 2c 0a 31 33 35 20 3d 3e 20 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 rted',.135.=>.'Bus.error:."acces
56b20 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 s.to.undefined.portion.of.memory
56b40 20 6f 62 6a 65 63 74 22 27 2c 0a 31 33 36 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e .object"',.136.=>.'Floating.poin
56b60 74 20 65 78 63 65 70 74 69 6f 6e 3a 20 22 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 t.exception:."erroneous.arithmet
56b80 69 63 20 6f 70 65 72 61 74 69 6f 6e 22 27 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 ic.operation"',.137.=>.'Kill.(te
56ba0 72 6d 69 6e 61 74 65 20 69 6d 6d 65 64 69 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 rminate.immediately)',.138.=>.'U
56bc0 73 65 72 2d 64 65 66 69 6e 65 64 20 31 27 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 ser-defined.1',.139.=>.'Segmenta
56be0 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 tion.violation',.140.=>.'User-de
56c00 66 69 6e 65 64 20 32 27 2c 0a 31 34 31 20 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 fined.2',.141.=>.'Write.to.pipe.
56c20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 72 65 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 with.no.one.reading',.142.=>.'Si
56c40 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 gnal.raised.by.alarm',.143.=>.'T
56c60 65 72 6d 69 6e 61 74 69 6f 6e 20 28 72 65 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 ermination.(request.to.terminate
56c80 29 27 2c 0a 0a 20 31 34 35 20 3d 3e 20 27 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d )',...145.=>.'Child.process.term
56ca0 69 6e 61 74 65 64 2c 20 73 74 6f 70 70 65 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 inated,.stopped.(or.continued*)'
56cc0 2c 0a 31 34 36 20 3d 3e 20 27 43 6f 6e 74 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a ,.146.=>.'Continue.if.stopped',.
56ce0 31 34 37 20 3d 3e 20 27 53 74 6f 70 20 65 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 147.=>.'Stop.executing.temporari
56d00 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 27 54 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 ly',.148.=>.'Terminal.stop.signa
56d20 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 l',.149.=>.'Background.process.a
56d40 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 72 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 ttempting.to.read.from.tty.("in"
56d60 29 27 2c 0a 31 35 30 20 3d 3e 20 27 42 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 )',.150.=>.'Background.process.a
56d80 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 ttempting.to.write.to.tty.("out"
56da0 29 27 2c 0a 31 35 31 20 3d 3e 20 27 55 72 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c )',.151.=>.'Urgent.data.availabl
56dc0 65 20 6f 6e 20 73 6f 63 6b 65 74 27 2c 0a 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c e.on.socket',.152.=>.'CPU.time.l
56de0 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a imit.exceeded',.153.=>.'File.siz
56e00 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 e.limit.exceeded',.154.=>.'Signa
56e20 6c 20 72 61 69 73 65 64 20 62 79 20 74 69 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 l.raised.by.timer.counting.virtu
56e40 61 6c 20 74 69 6d 65 3a 20 22 76 69 72 74 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 al.time:."virtual.timer.expired"
56e60 27 2c 0a 31 35 35 20 3d 3e 20 27 50 72 6f 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 ',.155.=>.'Profiling.timer.expir
56e80 65 64 27 2c 0a 0a 20 31 35 37 20 3d 3e 20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a ed',...157.=>.'Pollable.event',.
56ea0 0a 20 31 35 39 20 3d 3e 20 27 42 61 64 20 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a ..159.=>.'Bad.syscall',.);......
56ec0 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 6f 6e 73 ..........public.function.__cons
56ee0 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c truct($commandline,.$cwd.=.null,
56f00 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 64 69 6e 20 3d 20 6e 75 6c .array.$env.=.null,.$stdin.=.nul
56f20 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 l,.$timeout.=.60,.array.$options
56f40 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 .=.array()).{.if.(!function_exis
56f60 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ts('proc_open')).{.throw.new.\Ru
56f80 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 ntimeException('The.Process.clas
56fa0 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 72 6f 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 s.relies.on.proc_open,.which.is.
56fc0 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c not.available.on.your.PHP.instal
56fe0 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 lation.');.}..$this->commandline
57000 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 6e 75 .=.$commandline;.$this->cwd.=.nu
57020 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 3f 20 67 65 74 63 77 64 28 29 20 3a 20 24 63 77 64 3b 0a 69 ll.===.$cwd.?.getcwd().:.$cwd;.i
57040 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 65 6e 76 20 3d f.(null.!==.$env).{.$this->env.=
57060 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 24 6b 65 79 20 .array();.foreach.($env.as.$key.
57080 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 6e 61 72 79 29 =>.$value).{.$this->env[(binary)
570a0 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 0a 7d 20 65 6c .$key].=.(binary).$value;.}.}.el
570c0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 24 74 68 69 73 2d se.{.$this->env.=.null;.}.$this-
570e0 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 >stdin.=.$stdin;.$this->timeout.
57100 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 =.$timeout;.$this->enhanceWindow
57120 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 6f 70 sCompatibility.=.true;.$this->op
57140 74 69 6f 6e 73 20 3d 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 tions.=.array_replace(array('sup
57160 70 72 65 73 73 5f 65 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 press_errors'.=>.true,.'binary_p
57180 69 70 65 73 27 20 3d 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 ipes'.=>.true),.$options);.}..pu
571a0 62 6c 69 63 20 66 75 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 blic.function.__destruct().{...$
571c0 74 68 69 73 2d 3e 73 74 6f 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a this->stop();.}.................
571e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 ....public.function.run($callbac
57200 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 k.=.null).{.$this->start($callba
57220 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 74 28 24 63 61 6c 6c 62 61 ck);..return.$this->wait($callba
57240 63 6b 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 0a 0a 70 75 62 ck);.}.......................pub
57260 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e lic.function.start($callback.=.n
57280 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b ull).{.if.($this->isRunning()).{
572a0 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 50 72 .throw.new.\RuntimeException('Pr
572c0 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 ocess.is.already.running');.}..$
572e0 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 this->stdout.=.'';.$this->stderr
57300 20 3d 20 27 27 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 .=.'';.$callback.=.$this->buildC
57320 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 64 allback($callback);........if.(d
57340 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 42 55 49 4c efined('PHP_WINDOWS_VERSION_BUIL
57360 44 27 29 29 20 7b 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 D')).{.$this->fileHandles.=.arra
57380 79 28 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 6d 70 66 69 6c 65 28 29 2c 0a 29 3b y(.self::STDOUT.=>.tmpfile(),.);
573a0 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a .$this->readBytes.=.array(.self:
573c0 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 :STDOUT.=>.0,.);.$descriptors.=.
573e0 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 24 74 68 69 73 2d array(array('pipe',.'r'),.$this-
57400 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 2c 20 61 72 72 61 >fileHandles[self::STDOUT],.arra
57420 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 73 63 72 y('pipe',.'w'));.}.else.{.$descr
57440 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 iptors.=.array(array('pipe',.'r'
57460 29 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 61 72 72 61 79 28 27 70 69 ),.array('pipe',.'w'),.array('pi
57480 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 pe',.'w'));.}..$commandline.=.$t
574a0 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 his->commandline;..if.(defined('
574c0 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 26 26 20 24 PHP_WINDOWS_VERSION_BUILD').&&.$
574e0 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 74 this->enhanceWindowsCompatibilit
57500 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f y).{.$commandline.=.'cmd./V:ON./
57520 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 22 27 3b 0a 69 66 20 E:ON./C."'.$commandline.'"';.if.
57540 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 (!isset($this->options['bypass_s
57560 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 hell'])).{.$this->options['bypas
57580 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 s_shell'].=.true;.}.}..$this->pr
575a0 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 ocess.=.proc_open($commandline,.
575c0 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 2c 20 24 74 68 69 $descriptors,.$this->pipes,.$thi
575e0 73 2d 3e 63 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 s->cwd,.$this->env,.$this->optio
57600 6e 73 29 3b 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 ns);..if.(!is_resource($this->pr
57620 6f 63 65 73 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 ocess)).{.throw.new.\RuntimeExce
57640 70 74 69 6f 6e 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 ption('Unable.to.launch.a.new.pr
57660 6f 63 65 73 73 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 ocess.');.}.$this->status.=.self
57680 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ::STATUS_STARTED;..foreach.($thi
576a0 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f s->pipes.as.$pipe).{.stream_set_
576c0 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 6e blocking($pipe,.false);.}..if.(n
576e0 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 ull.===.$this->stdin).{.fclose($
57700 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 68 69 73 2d 3e 70 69 this->pipes[0]);.unset($this->pi
57720 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 74 65 50 69 70 65 73 pes[0]);..return;.}..$writePipes
57740 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 3b 0a 75 6e 73 65 74 .=.array($this->pipes[0]);.unset
57760 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 4c 65 6e 20 3d 20 73 ($this->pipes[0]);.$stdinLen.=.s
57780 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 3b 0a 24 73 74 64 69 6e 4f 66 66 73 65 trlen($this->stdin);.$stdinOffse
577a0 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 69 66 t.=.0;..while.($writePipes).{.if
577c0 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 42 .(defined('PHP_WINDOWS_VERSION_B
577e0 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 UILD')).{.$this->processFileHand
57800 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 les($callback);.}..$r.=.$this->p
57820 69 70 65 73 3b 0a 24 77 20 3d 20 24 77 72 69 74 65 50 69 70 65 73 3b 0a 24 65 20 3d 20 6e 75 6c ipes;.$w.=.$writePipes;.$e.=.nul
57840 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 l;..$n.=.@stream_select($r,.$w,.
57860 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 $e,.$this->timeout);..if.(false.
57880 3d 3d 3d 20 24 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6e 20 3d 3d 3d 20 30 29 ===.$n).{.break;.}.if.($n.===.0)
578a0 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 65 73 73 .{.proc_terminate($this->process
578c0 29 3b 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 28 );..throw.new.\RuntimeException(
578e0 27 54 68 65 20 70 72 6f 63 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e 27 29 3b 0a 7d 0a 0a 69 66 'The.process.timed.out.');.}..if
57900 20 28 24 77 29 20 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 .($w).{.$written.=.fwrite($write
57920 50 69 70 65 73 5b 30 5d 2c 20 28 62 69 6e 61 72 79 29 20 73 75 62 73 74 72 28 24 74 68 69 73 2d Pipes[0],.(binary).substr($this-
57940 3e 73 74 64 69 6e 2c 20 24 73 74 64 69 6e 4f 66 66 73 65 74 29 2c 20 38 31 39 32 29 3b 0a 69 66 >stdin,.$stdinOffset),.8192);.if
57960 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 72 69 74 74 65 6e 29 20 7b 0a 24 73 74 64 69 6e 4f 66 .(false.!==.$written).{.$stdinOf
57980 66 73 65 74 20 2b 3d 20 24 77 72 69 74 74 65 6e 3b 0a 7d 0a 69 66 20 28 24 73 74 64 69 6e 4f 66 fset.+=.$written;.}.if.($stdinOf
579a0 66 73 65 74 20 3e 3d 20 24 73 74 64 69 6e 4c 65 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 77 72 69 fset.>=.$stdinLen).{.fclose($wri
579c0 74 65 50 69 70 65 73 5b 30 5d 29 3b 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 6e 75 6c 6c 3b tePipes[0]);.$writePipes.=.null;
579e0 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 .}.}..foreach.($r.as.$pipe).{.$t
57a00 79 70 65 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d ype.=.array_search($pipe,.$this-
57a20 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 >pipes);.$data.=.fread($pipe,.81
57a40 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 63 61 92);.if.(strlen($data).>.0).{.ca
57a60 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 20 3d 3d ll_user_func($callback,.$type.==
57a80 20 31 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 .1.?.self::OUT.:.self::ERR,.$dat
57aa0 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 66 65 6f a);.}.if.(false.===.$data.||.feo
57ac0 66 28 24 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 75 6e 73 65 74 f($pipe)).{.fclose($pipe);.unset
57ae0 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 ($this->pipes[$type]);.}.}.}..$t
57b00 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f 63 5f 67 his->processInformation.=.proc_g
57b20 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 0a 0a et_status($this->process);.}....
57b40 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 77 61 69 74 28 ...........public.function.wait(
57b60 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 $callback.=.null).{.$this->proce
57b80 73 73 49 6e 66 6f 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 ssInformation.=.proc_get_status(
57ba0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 $this->process);.$callback.=.$th
57bc0 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 77 68 is->buildCallback($callback);.wh
57be0 69 6c 65 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 50 ile.($this->pipes.||.(defined('P
57c00 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 26 26 20 24 74 HP_WINDOWS_VERSION_BUILD').&&.$t
57c20 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 his->fileHandles)).{.if.(defined
57c40 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 20 26 26 ('PHP_WINDOWS_VERSION_BUILD').&&
57c60 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 .$this->fileHandles).{.$this->pr
57c80 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 21 24 74 68 ocessFileHandles($callback,.!$th
57ca0 69 73 2d 3e 70 69 70 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 is->pipes);.}..if.($this->pipes)
57cc0 20 7b 0a 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 .{.$r.=.$this->pipes;.$w.=.null;
57ce0 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 .$e.=.null;..$n.=.@stream_select
57d00 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 ($r,.$w,.$e,.$this->timeout);..i
57d20 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 f.(false.===.$n).{.$this->pipes.
57d40 3d 20 61 72 72 61 79 28 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 3d 3d =.array();..continue;.}.if.(0.==
57d60 3d 20 24 6e 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 =.$n).{.proc_terminate($this->pr
57d80 6f 63 65 73 73 29 3b 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 ocess);..throw.new.\RuntimeExcep
57da0 74 69 6f 6e 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e 27 29 3b 0a tion('The.process.timed.out.');.
57dc0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 79 70 65 }..foreach.($r.as.$pipe).{.$type
57de0 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 .=.array_search($pipe,.$this->pi
57e00 70 65 73 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 pes);.$data.=.fread($pipe,.8192)
57e20 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 63 61 6c 6c 5f ;.if.(strlen($data).>.0).{.call_
57e40 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 20 3d 3d 20 31 20 user_func($callback,.$type.==.1.
57e60 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b ?.self::OUT.:.self::ERR,.$data);
57e80 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 66 65 6f 66 28 24 .}.if.(false.===.$data.||.feof($
57ea0 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 75 6e 73 65 74 28 24 74 pipe)).{.fclose($pipe);.unset($t
57ec0 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 24 74 68 69 his->pipes[$type]);.}.}.}.}.$thi
57ee0 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 s->updateStatus();.if.($this->pr
57f00 6f 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 ocessInformation['signaled']).{.
57f20 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 70 72 69 throw.new.\RuntimeException(spri
57f40 6e 74 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 73 74 6f 70 70 65 64 20 62 65 63 61 75 73 65 ntf('The.process.stopped.because
57f60 20 6f 66 20 61 20 22 25 73 22 20 73 69 67 6e 61 6c 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 .of.a."%s".signal.',.$this->proc
57f80 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a essInformation['stopsig']));.}..
57fa0 24 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 $time.=.0;.while.($this->isRunni
57fc0 6e 67 28 29 20 26 26 20 24 74 69 6d 65 20 3c 20 31 30 30 30 30 30 30 29 20 7b 0a 24 74 69 6d 65 ng().&&.$time.<.1000000).{.$time
57fe0 20 2b 3d 20 31 30 30 30 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 24 65 78 69 74 .+=.1000;.usleep(1000);.}..$exit
58000 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
58020 29 3b 0a 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 61 74 69 6f );..if.($this->processInformatio
58040 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 n['signaled']).{.throw.new.\Runt
58060 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 70 72 6f 63 65 73 imeException(sprintf('The.proces
58080 73 20 73 74 6f 70 70 65 64 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 22 25 73 22 20 73 69 67 6e s.stopped.because.of.a."%s".sign
580a0 61 6c 2e 27 2c 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 al.',.$this->processInformation[
580c0 27 73 74 6f 70 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 'stopsig']));.}..return.$this->e
580e0 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 6f 72 6d 61 74 xitcode.=.$this->processInformat
58100 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 ion['running'].?.$exitcode.:.$th
58120 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 78 69 74 63 6f 64 65 is->processInformation['exitcode
58140 27 5d 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 '];.}.........public.function.ge
58160 74 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4f 75 74 70 75 74 28 tOutput().{.$this->updateOutput(
58180 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a );..return.$this->stdout;.}.....
581a0 0a 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 ....public.function.getErrorOutp
581c0 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 45 72 72 6f 72 4f 75 74 70 75 74 28 ut().{.$this->updateErrorOutput(
581e0 29 3b 0a 0a 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 );..return.$this->stderr;.}.....
58200 0a 0a 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 ....public.function.getExitCode(
58220 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 ).{.$this->updateStatus();..retu
58240 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;.}...........
58260 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
58280 74 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 29 3b 0a 0a 72 65 t().{.$this->updateStatus();..re
582a0 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 74 68 69 turn.isset(self::$exitCodes[$thi
582c0 73 2d 3e 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 s->exitcode]).?.self::$exitCodes
582e0 5b 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 [$this->exitcode].:.'Unknown.err
58300 6f 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 or';.}.........public.function.i
58320 73 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 sSuccessful().{.$this->updateSta
58340 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 tus();..return.0.==.$this->exitc
58360 6f 64 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 69 6f 6e ode;.}...........public.function
58380 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 .hasBeenSignaled().{.$this->upda
583a0 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 teStatus();..return.$this->proce
583c0 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 3b 0a 7d 0a 0a 0a 0a ssInformation['signaled'];.}....
583e0 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 65 72 6d 53 69 .......public.function.getTermSi
58400 67 6e 61 6c 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 29 3b 0a gnal().{.$this->updateStatus();.
58420 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 61 74 69 6f .return.$this->processInformatio
58440 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n['termsig'];.}...........public
58460 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 .function.hasBeenStopped().{.$th
58480 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->updateStatus();..return.$thi
584a0 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d s->processInformation['stopped']
584c0 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 67 65 ;.}...........public.function.ge
584e0 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 tStopSignal().{.$this->updateSta
58500 74 75 73 28 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 tus();..return.$this->processInf
58520 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ormation['stopsig'];.}.......pub
58540 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 66 20 28 73 lic.function.isRunning().{.if.(s
58560 65 6c 66 3a 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 elf::STATUS_STARTED.!==.$this->s
58580 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d tatus).{.return.false;.}..$this-
585a0 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >updateStatus();..return.$this->
585c0 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 3b 0a 7d processInformation['running'];.}
585e0 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 74 6f 70 28 ...........public.function.stop(
58600 24 74 69 6d 65 6f 75 74 3d 31 30 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 28 $timeout=10).{.$timeoutMicro.=.(
58620 69 6e 74 29 20 24 74 69 6d 65 6f 75 74 2a 31 30 45 36 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 int).$timeout*10E6;.if.($this->i
58640 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 sRunning()).{.proc_terminate($th
58660 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 is->process);.$time.=.0;.while.(
58680 31 20 3d 3d 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 24 74 69 6d 65 1.==.$this->isRunning().&&.$time
586a0 20 3c 20 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 .<.$timeoutMicro).{.$time.+=.100
586c0 30 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 0;.usleep(1000);.}..foreach.($th
586e0 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 is->pipes.as.$pipe).{.fclose($pi
58700 70 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a pe);.}.$this->pipes.=.array();..
58720 24 65 78 69 74 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 $exitcode.=.proc_close($this->pr
58740 6f 63 65 73 73 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 20 3d 3d 3d ocess);.$this->exitcode.=.-1.===
58760 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 65 78 69 74 .$this->processInformation['exit
58780 63 6f 64 65 27 5d 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 code'].?.$exitcode.:.$this->proc
587a0 65 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 3b 0a 0a 69 66 20 essInformation['exitcode'];..if.
587c0 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 42 55 (defined('PHP_WINDOWS_VERSION_BU
587e0 49 4c 44 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e ILD')).{.foreach.($this->fileHan
58800 64 6c 65 73 20 61 73 20 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 dles.as.$fileHandle).{.fclose($f
58820 69 6c 65 48 61 6e 64 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 ileHandle);.}.$this->fileHandles
58840 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 .=.array();.}.}.$this->status.=.
58860 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 0a 72 65 74 75 72 6e self::STATUS_TERMINATED;..return
58880 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$this->exitcode;.}..public.func
588a0 74 69 6f 6e 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 73 tion.addOutput($line).{.$this->s
588c0 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tdout..=.$line;.}..public.functi
588e0 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 on.addErrorOutput($line).{.$this
58900 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ->stderr..=.$line;.}..public.fun
58920 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.getCommandLine().{.return.
58940 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 $this->commandline;.}..public.fu
58960 6e 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 nction.setCommandLine($commandli
58980 6e 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 ne).{.$this->commandline.=.$comm
589a0 61 6e 64 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 andline;.}..public.function.getT
589c0 69 6d 65 6f 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 imeout().{.return.$this->timeout
589e0 3b 0a 7d 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 6f 75 74 28 ;.}..public.function.setTimeout(
58a00 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 20 24 74 69 $timeout).{.$this->timeout.=.$ti
58a20 6d 65 6f 75 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 57 6f 72 meout;.}..public.function.getWor
58a40 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e kingDirectory().{.return.$this->
58a60 63 77 64 3b 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 cwd;.}..public.function.setWorki
58a80 6e 67 44 69 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 ngDirectory($cwd).{.$this->cwd.=
58aa0 20 24 63 77 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 .$cwd;.}..public.function.getEnv
58ac0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 70 75 62 6c 69 ().{.return.$this->env;.}..publi
58ae0 63 20 66 75 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 c.function.setEnv(array.$env).{.
58b00 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 24 65 6e 76 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->env.=.$env;.}..public.fun
58b20 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 73 2d ction.getStdin().{.return.$this-
58b40 3e 73 74 64 69 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 53 74 >stdin;.}..public.function.setSt
58b60 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 din($stdin).{.$this->stdin.=.$st
58b80 64 69 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 4f 70 74 69 6f din;.}..public.function.getOptio
58ba0 6e 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 ns().{.return.$this->options;.}.
58bc0 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 61 72 72 61 .public.function.setOptions(arra
58be0 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 20 3d 20 24 y.$options).{.$this->options.=.$
58c00 6f 70 74 69 6f 6e 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 45 options;.}..public.function.getE
58c20 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 29 0a 7b 0a 72 nhanceWindowsCompatibility().{.r
58c40 65 74 75 72 6e 20 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 eturn.$this->enhanceWindowsCompa
58c60 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 tibility;.}..public.function.set
58c80 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 68 EnhanceWindowsCompatibility($enh
58ca0 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 6d ance).{.$this->enhanceWindowsCom
58cc0 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 3b patibility.=.(Boolean).$enhance;
58ce0 0a 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 .}............protected.function
58d00 20 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 .buildCallback($callback).{.$tha
58d20 74 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 65 72 t.=.$this;.$out.=.self::OUT;.$er
58d40 72 20 3d 20 73 65 6c 66 3a 3a 45 52 52 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 r.=.self::ERR;.$callback.=.funct
58d60 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 ion.($type,.$data).use.($that,.$
58d80 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 74 2c 20 24 65 72 72 29 20 7b 0a 69 66 20 28 24 6f 75 74 callback,.$out,.$err).{.if.($out
58da0 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f 75 74 70 75 74 28 24 64 .==.$type).{.$that->addOutput($d
58dc0 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 45 72 72 6f 72 4f 75 ata);.}.else.{.$that->addErrorOu
58de0 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 tput($data);.}..if.(null.!==.$ca
58e00 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 llback).{.call_user_func($callba
58e20 63 6b 2c 20 24 74 79 70 65 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 ck,.$type,.$data);.}.};..return.
58e40 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 $callback;.}.....protected.funct
58e60 69 6f 6e 20 75 70 64 61 74 65 53 74 61 74 75 73 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 ion.updateStatus().{.if.(self::S
58e80 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 73 29 TATUS_STARTED.!==.$this->status)
58ea0 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 49 6e 66 6f .{.return;.}..$this->processInfo
58ec0 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-
58ee0 3e 70 72 6f 63 65 73 73 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e >process);.if.(!$this->processIn
58f00 66 6f 72 6d 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 73 formation['running']).{.$this->s
58f20 74 61 74 75 73 20 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 3b tatus.=.self::STATUS_TERMINATED;
58f40 0a 69 66 20 28 2d 31 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d .if.(-1.!==.$this->processInform
58f60 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 ation['exitcode']).{.$this->exit
58f80 63 6f 64 65 20 3d 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 code.=.$this->processInformation
58fa0 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ['exitcode'];.}.}.}..protected.f
58fc0 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 unction.updateErrorOutput().{.if
58fe0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 .(isset($this->pipes[self::STDER
59000 52 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b R]).&&.is_resource($this->pipes[
59020 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f self::STDERR])).{.$this->addErro
59040 72 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 rOutput(stream_get_contents($thi
59060 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 s->pipes[self::STDERR]));.}.}..p
59080 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 rotected.function.updateOutput()
590a0 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 45 52 53 .{.if.(defined('PHP_WINDOWS_VERS
590c0 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 ION_BUILD').&&.isset($this->file
590e0 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 20 26 26 20 69 73 5f 72 65 73 Handles[self::STDOUT]).&&.is_res
59100 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 ource($this->fileHandles[self::S
59120 54 44 4f 55 54 5d 29 29 20 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 TDOUT])).{.fseek($this->fileHand
59140 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 les[self::STDOUT],.$this->readBy
59160 74 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 tes[self::STDOUT]);.$this->addOu
59180 74 70 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e tput(stream_get_contents($this->
591a0 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 20 65 fileHandles[self::STDOUT]));.}.e
591c0 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a lseif.(isset($this->pipes[self::
591e0 53 54 44 4f 55 54 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 STDOUT]).&&.is_resource($this->p
59200 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 ipes[self::STDOUT])).{.$this->ad
59220 64 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 dOutput(stream_get_contents($thi
59240 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 0a 7d 0a 0a 0a s->pipes[self::STDOUT]));.}.}...
59260 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 46 69 6c .....private.function.processFil
59280 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 6f 73 65 45 6d 70 74 79 48 eHandles($callback,.$closeEmptyH
592a0 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 andles.=.false).{.$fh.=.$this->f
592c0 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 ileHandles;.foreach.($fh.as.$typ
592e0 65 20 3d 3e 20 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 66 73 65 65 6b 28 24 66 69 6c 65 48 e.=>.$fileHandle).{.fseek($fileH
59300 61 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 3b andle,.$this->readBytes[$type]);
59320 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 38 31 39 32 .$data.=.fread($fileHandle,.8192
59340 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 );.if.(strlen($data).>.0).{.$thi
59360 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 20 2b 3d 20 73 74 72 6c 65 6e 28 24 64 s->readBytes[$type].+=.strlen($d
59380 61 74 61 29 3b 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 ata);.call_user_func($callback,.
593a0 24 74 79 70 65 20 3d 3d 20 31 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 $type.==.1.?.self::OUT.:.self::E
593c0 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 RR,.$data);.}.if.(false.===.$dat
593e0 61 20 7c 7c 20 28 24 63 6c 6f 73 65 45 6d 70 74 79 48 61 6e 64 6c 65 73 20 26 26 20 27 27 20 3d a.||.($closeEmptyHandles.&&.''.=
59400 3d 3d 20 24 64 61 74 61 20 26 26 20 66 65 6f 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 29 20 ==.$data.&&.feof($fileHandle))).
59420 7b 0a 66 63 6c 6f 73 65 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 {.fclose($fileHandle);.unset($th
59440 69 73 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 7d 0a 7d is->fileHandles[$type]);.}.}.}.}
59460 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
59480 6e 79 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 ny\Component\Process;........cla
594a0 73 73 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 ss.PhpExecutableFinder.{.private
594c0 20 24 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 .$executableFinder;..public.func
594e0 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 65 78 65 63 tion.__construct().{.$this->exec
59500 75 74 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 utableFinder.=.new.ExecutableFin
59520 64 65 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 der();.}.......public.function.f
59540 69 6e 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 ind().{...if.(defined('PHP_BINAR
59560 59 27 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 Y').&&.PHP_BINARY.&&.('cli'.===.
59580 50 48 50 5f 53 41 50 49 29 29 20 7b 0a 72 65 74 75 72 6e 20 50 48 50 5f 42 49 4e 41 52 59 3b 0a PHP_SAPI)).{.return.PHP_BINARY;.
595a0 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 41 54 48 27 29 }..if.($php.=.getenv('PHP_PATH')
595c0 29 20 7b 0a 69 66 20 28 21 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a ).{.if.(!is_executable($php)).{.
595e0 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 68 70 3b 0a 7d 0a return.false;.}..return.$php;.}.
59600 0a 24 73 75 66 66 69 78 65 73 20 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 .$suffixes.=.DIRECTORY_SEPARATOR
59620 20 3d 3d 20 27 5c 5c 27 20 3f 20 28 67 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 20 3f 20 .==.'\\'.?.(getenv('PATHEXT').?.
59640 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 74 65 6e 76 28 27 explode(PATH_SEPARATOR,.getenv('
59660 50 41 54 48 45 58 54 27 29 29 20 3a 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 PATHEXT')).:.array('.exe',.'.bat
59680 27 2c 20 27 2e 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 29 20 3a 20 61 72 72 61 79 28 27 27 29 3b ',.'.cmd',.'.com')).:.array('');
596a0 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 29 20 .foreach.($suffixes.as.$suffix).
596c0 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 20 3d 20 50 48 50 5f 42 {.if.(is_executable($php.=.PHP_B
596e0 49 4e 44 49 52 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2e 27 70 68 70 27 2e INDIR.DIRECTORY_SEPARATOR.'php'.
59700 24 73 75 66 66 69 78 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 7d 0a 0a 69 66 $suffix)).{.return.$php;.}.}..if
59720 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 45 41 52 5f 50 48 50 5f 42 49 .($php.=.getenv('PHP_PEAR_PHP_BI
59740 4e 27 29 29 20 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 N')).{.if.(is_executable($php)).
59760 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 {.return.$php;.}.}..return.$this
59780 2d 3e 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 29 3b ->executableFinder->find('php');
597a0 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
597c0 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 0a 0a 0a 0a 0a ymfony\Component\Process;.......
597e0 0a 63 6c 61 73 73 20 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 .class.ExecutableFinder.{.privat
59800 65 20 73 74 61 74 69 63 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 0a 70 72 69 76 61 74 65 20 24 73 e.static.$isWindows;..private.$s
59820 75 66 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 uffixes.=.array('.exe',.'.bat',.
59840 27 2e 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f '.cmd',.'.com');..public.functio
59860 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 73 n.__construct().{.if.(null.===.s
59880 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 elf::$isWindows).{.self::$isWind
598a0 6f 77 73 20 3d 20 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 50 48 50 5f 4f 53 2c 20 27 77 69 6e ows.=.0.===.stripos(PHP_OS,.'win
598c0 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 66 66 ');.}.}..public.function.setSuff
598e0 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 2d 3e 73 ixes(array.$suffixes).{.$this->s
59900 75 66 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 uffixes.=.$suffixes;.}..public.f
59920 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 73 75 66 66 69 78 29 0a 7b 0a 24 74 68 unction.addSuffix($suffix).{.$th
59940 69 73 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 75 66 66 69 78 3b 0a 7d 0a 0a 0a 0a 0a is->suffixes[].=.$suffix;.}.....
59960 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 28 24 6e 61 6d 65 2c .....public.function.find($name,
59980 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 .$default.=.null).{.if.(ini_get(
599a0 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 61 74 68 20 3d 'open_basedir')).{.$searchPath.=
599c0 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 74 65 6e 76 28 .explode(PATH_SEPARATOR,.getenv(
599e0 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 72 72 61 79 28 'open_basedir'));.$dirs.=.array(
59a00 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 24 70 61 74 68 );.foreach.($searchPath.as.$path
59a20 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 69 72 73 5b 5d ).{.if.(is_dir($path)).{.$dirs[]
59a40 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 73 74 72 5f 72 .=.$path;.}.else.{.$file.=.str_r
59a60 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 24 70 61 74 68 eplace(dirname($path),.'',.$path
59a80 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 5f 65 78 65 63 );.if.($file.==.$name.&&.is_exec
59aa0 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 74 68 3b 0a 7d utable($path)).{.return.$path;.}
59ac0 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 65 78 70 6c 6f 64 65 28 50 41 .}.}.}.else.{.$dirs.=.explode(PA
59ae0 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3f 20 67 TH_SEPARATOR,.getenv('PATH').?.g
59b00 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 29 3b etenv('PATH').:.getenv('Path'));
59b20 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 .}..$suffixes.=.DIRECTORY_SEPARA
59b40 54 4f 52 20 3d 3d 20 27 5c 5c 27 20 3f 20 28 67 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 TOR.==.'\\'.?.(getenv('PATHEXT')
59b60 20 3f 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 74 65 6e .?.explode(PATH_SEPARATOR,.geten
59b80 76 28 27 50 41 54 48 45 58 54 27 29 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 29 v('PATHEXT')).:.$this->suffixes)
59ba0 20 3a 20 61 72 72 61 79 28 27 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 66 66 69 78 65 73 .:.array('');.foreach.($suffixes
59bc0 20 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 .as.$suffix).{.foreach.($dirs.as
59be0 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 20 3d 20 24 64 69 .$dir).{.if.(is_file($file.=.$di
59c00 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2e 24 6e 61 6d 65 2e 24 73 75 66 r.DIRECTORY_SEPARATOR.$name.$suf
59c20 66 69 78 29 20 26 26 20 28 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 20 7c 7c 20 69 73 5f fix).&&.(self::$isWindows.||.is_
59c40 65 78 65 63 75 74 61 62 6c 65 28 24 66 69 6c 65 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 executable($file))).{.return.$fi
59c60 6c 65 3b 0a 7d 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 7d 0a le;.}.}.}..return.$default;.}.}.
59c80 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
59ca0 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 3b 0a 0a y\Component\Process\Exception;..
59cc0 0a 0a 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 .....class.RuntimeException.exte
59ce0 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 65 6d 65 6e 74 73 nds.\RuntimeException.implements
59d00 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 70 0a 0a 0a .ExceptionInterface.{.}.<?php...
59d20 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
59d40 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 6d 66 ent\Process\Exception;..use.Symf
59d60 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 0a ony\Component\Process\Process;..
59d80 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f .....class.ProcessFailedExceptio
59da0 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 0a 70 72 69 n.extends.RuntimeException.{.pri
59dc0 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 20 vate.$process;..public.function.
59de0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a __construct(Process.$process).{.
59e00 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a if.($process->isSuccessful()).{.
59e20 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
59e40 69 6f 6e 28 27 45 78 70 65 63 74 65 64 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 ion('Expected.a.failed.process,.
59e60 62 75 74 20 74 68 65 20 67 69 76 65 6e 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 but.the.given.process.was.succes
59e80 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 sful.');.}..parent::__construct(
59ea0 0a 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 66 61 69 6c .sprintf(.'The.command."%s".fail
59ec0 65 64 2e 27 2e 22 5c 6e 5c 6e 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ed.'."\n\nOutput:\n=============
59ee0 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2e 22 5c 6e ===\n".$process->getOutput()."\n
59f00 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d \nError.Output:\n===============
59f20 3d 5c 6e 22 2e 24 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 =\n".$process->getErrorOutput(),
59f40 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 29 0a 29 3b .$process->getCommandLine().).);
59f60 0a 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 3b 0a 7d 0a 0a ..$this->process.=.$process;.}..
59f80 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 28 29 0a 7b 0a 72 public.function.getProcess().{.r
59fa0 65 74 75 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 eturn.$this->process;.}.}.<?php.
59fc0 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
59fe0 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 0a 0a 0a 69 onent\Process\Exception;.......i
5a000 6e 74 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 nterface.ExceptionInterface.{.}.
5a020 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
5a040 79 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 0a 0a 0a 0a y\Component\Process;............
5a060 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 65 73 .class.PhpProcess.extends.Proces
5a080 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 0a 0a s.{.private.$executableFinder;..
5a0a0 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 6f 6e ...........public.function.__con
5a0c0 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 72 72 struct($script,.$cwd.=.null,.arr
5a0e0 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 36 30 ay.$env.=.array(),.$timeout.=.60
5a100 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 70 61 ,.array.$options.=.array()).{.pa
5a120 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 24 65 rent::__construct(null,.$cwd,.$e
5a140 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 73 29 nv,.$script,.$timeout,.$options)
5a160 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 65 77 ;..$this->executableFinder.=.new
5a180 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 0a 0a .PhpExecutableFinder();.}.......
5a1a0 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 70 68 public.function.setPhpBinary($ph
5a1c0 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 70 29 p).{.$this->setCommandLine($php)
5a1e0 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 6f 6e 20 72 ;.}............public.function.r
5a200 75 6e 28 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 un($callback.=.null).{.if.(null.
5a220 3d 3d 3d 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 ===.$this->getCommandLine()).{.i
5a240 66 20 28 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 f.(false.===.$php.=.$this->execu
5a260 74 61 62 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 tableFinder->find()).{.throw.new
5a280 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 66 69 .\RuntimeException('Unable.to.fi
5a2a0 6e 64 20 74 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 nd.the.PHP.executable.');.}.$thi
5a2c0 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 72 65 74 75 s->setCommandLine($php);.}..retu
5a2e0 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c rn.parent::run($callback);.}.}.<
5a300 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
5a320 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 63 6c 61 73 73 20 \Component\Process;.......class.
5a340 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 72 67 75 6d 65 ProcessBuilder.{.private.$argume
5a360 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 24 65 6e 76 3b nts;.private.$cwd;.private.$env;
5a380 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 69 6d 65 6f 75 .private.$stdin;.private.$timeou
5a3a0 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 65 20 24 69 6e t;.private.$options;.private.$in
5a3c0 68 65 72 69 74 45 6e 76 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e heritEnv;..public.function.__con
5a3e0 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(
5a400 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
5a420 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-
5a440 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.=
5a460 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
5a480 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
5a4a0 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())
5a4c0 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)
5a4e0 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 28 24 61 ;.}.......public.function.add($a
5a500 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 3d 20 rgument).{.$this->arguments[].=.
5a520 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 70 75 62 $argument;..return.$this;.}..pub
5a540 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 65 63 74 6f 72 79 lic.function.setWorkingDirectory
5a560 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 3b 0a 0a 72 65 74 ($cwd).{.$this->cwd.=.$cwd;..ret
5a580 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 69 6f 6e 20 69 6e urn.$this;.}..public.function.in
5a5a0 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 24 69 6e 68 65 72 heritEnvironmentVariables($inher
5a5c0 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 68 65 72 69 74 45 6e itEnv.=.true).{.$this->inheritEn
5a5e0 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 24 74 68 69 73 3b 0a v.=.$inheritEnv;..return.$this;.
5a600 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 28 24 6e 61 6d 65 2c }..public.function.setEnv($name,
5a620 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 6d 65 5d 20 3d 20 24 .$value).{.$this->env[$name].=.$
5a640 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 70 75 62 6c 69 63 20 value;..return.$this;.}..public.
5a660 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 0a 7b 0a 24 74 68 69 function.setInput($stdin).{.$thi
5a680 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 6e 20 24 74 68 69 73 s->stdin.=.$stdin;..return.$this
5a6a0 3b 0a 7d 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 6f 75 74 28 ;.}..public.function.setTimeout(
5a6c0 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 20 24 74 69 $timeout).{.$this->timeout.=.$ti
5a6e0 6d 65 6f 75 74 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 meout;..return.$this;.}..public.
5a700 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 75 65 function.setOption($name,.$value
5a720 29 0a 7b 0a 24 74 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 ).{.$this->options[$name].=.$val
5a740 75 65 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 ue;..return.$this;.}..public.fun
5a760 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 69 66 20 28 21 63 6f 75 6e 74 28 ction.getProcess().{.if.(!count(
5a780 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c $this->arguments)).{.throw.new.\
5a7a0 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 61 64 64 28 29 20 63 LogicException('You.must.add().c
5a7c0 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 ommand.arguments.before.calling.
5a7e0 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 getProcess().');.}..$options.=.$
5a800 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 6c 6f 64 this->options;..$script.=.implod
5a820 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 27 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 e('.',.array_map('escapeshellarg
5a840 27 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 ',.$this->arguments));..if.($thi
5a860 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 65 s->inheritEnv).{.$env.=.$this->e
5a880 6e 76 20 3f 20 24 74 68 69 73 2d 3e 65 6e 76 20 2b 20 24 5f 45 4e 56 20 3a 20 6e 75 6c 6c 3b 0a nv.?.$this->env.+.$_ENV.:.null;.
5a8a0 7d 20 65 6c 73 65 20 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 }.else.{.$env.=.$this->env;.}..r
5a8c0 65 74 75 72 6e 20 6e 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 eturn.new.Process($script,.$this
5a8e0 2d 3e 63 77 64 2c 20 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 ->cwd,.$env,.$this->stdin,.$this
5a900 2d 3e 74 69 6d 65 6f 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 ->timeout,.$options);.}.}.<?php.
5a920 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
5a940 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e onent\Console\Helper;.........in
5a960 74 65 72 66 61 63 65 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a terface.HelperInterface.{.......
5a980 0a 66 75 6e 63 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 .function.setHelperSet(HelperSet
5a9a0 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e .$helperSet.=.null);.........fun
5a9c0 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 66 75 ction.getHelperSet();.........fu
5a9e0 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 0a 0a 0a 0a 0a nction.getName();.}.<?php.......
5aa00 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\
5aa20 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 6f 6e 79 5c 43 6f 6d Console\Helper;..use.Symfony\Com
5aa40 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
5aa60 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 rface;.......class.DialogHelper.
5aa80 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 extends.Helper.{.private.$inputS
5aaa0 74 72 65 61 6d 3b 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 tream;.............public.functi
5aac0 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 2c 20 on.ask(OutputInterface.$output,.
5aae0 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 29 0a 7b 0a 24 6f $question,.$default.=.null).{.$o
5ab00 75 74 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 72 65 74 20 3d utput->write($question);..$ret.=
5ab20 20 66 67 65 74 73 28 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 .fgets($this->inputStream.?:.STD
5ab40 49 4e 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b IN,.4096);.if.(false.===.$ret).{
5ab60 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 41 62 .throw.new.\RuntimeException('Ab
5ab80 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 74 29 3b 0a 0a 72 orted');.}.$ret.=.trim($ret);..r
5aba0 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 eturn.strlen($ret).>.0.?.$ret.:.
5abc0 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $default;.}.............public.f
5abe0 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 4f 75 74 70 75 74 49 6e unction.askConfirmation(OutputIn
5ac00 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 64 65 66 terface.$output,.$question,.$def
5ac20 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d 20 27 7a 27 3b 0a 77 68 ault.=.true).{.$answer.=.'z';.wh
5ac40 69 6c 65 20 28 24 61 6e 73 77 65 72 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c ile.($answer.&&.!in_array(strtol
5ac60 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 27 79 27 2c 20 27 6e 27 ower($answer[0]),.array('y',.'n'
5ac80 29 29 29 20 7b 0a 24 61 6e 73 77 65 72 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 ))).{.$answer.=.$this->ask($outp
5aca0 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d ut,.$question);.}..if.(false.===
5acc0 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 .$default).{.return.$answer.&&.'
5ace0 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a y'.==.strtolower($answer[0]);.}.
5ad00 0a 72 65 74 75 72 6e 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 20 73 74 72 74 6f .return.!$answer.||.'y'.==.strto
5ad20 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lower($answer[0]);.}............
5ad40 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 6b 41 6e 64 56 61 6c .......public.function.askAndVal
5ad60 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 20 24 idate(OutputInterface.$output,.$
5ad80 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 73 20 question,.$validator,.$attempts.
5ada0 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 65 72 72 =.false,.$default.=.null).{.$err
5adc0 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 74 74 or.=.null;.while.(false.===.$att
5ade0 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 6c 6c empts.||.$attempts--).{.if.(null
5ae00 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 6e 28 .!==.$error).{.$output->writeln(
5ae20 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 72 6d $this->getHelperSet()->get('form
5ae40 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 65 74 atter')->formatBlock($error->get
5ae60 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 24 76 61 6c 75 65 20 Message(),.'error'));.}..$value.
5ae80 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 69 6f 6e 2c =.$this->ask($output,.$question,
5aea0 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 .$default);..try.{.return.call_u
5aec0 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 ser_func($validator,.$value);.}.
5aee0 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a catch.(\Exception.$error).{.}.}.
5af00 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .throw.$error;.}.........public.
5af20 66 75 6e 63 74 69 6f 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 function.setInputStream($stream)
5af40 0a 7b 0a 24 74 68 69 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 .{.$this->inputStream.=.$stream;
5af60 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 6e 70 75 .}.......public.function.getInpu
5af80 74 53 74 72 65 61 6d 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 tStream().{.return.$this->inputS
5afa0 74 72 65 61 6d 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 tream;.}.......public.function.g
5afc0 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 7d 0a etName().{.return.'dialog';.}.}.
5afe0 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
5b000 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 0a 0a 0a y\Component\Console\Helper;.....
5b020 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 ..class.FormatterHelper.extends.
5b040 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Helper.{..........public.functio
5b060 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 24 73 65 63 74 69 6f 6e 2c 20 24 6d 65 73 73 61 n.formatSection($section,.$messa
5b080 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e 66 6f 27 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 ge,.$style.=.'info').{.return.sp
5b0a0 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c 2f 25 73 3e 20 25 73 27 2c 20 24 73 74 79 6c 65 rintf('<%s>[%s]</%s>.%s',.$style
5b0c0 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d ,.$section,.$style,.$message);.}
5b0e0 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 6f 72 6d 61 ...........public.function.forma
5b100 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 2c 20 24 73 74 79 6c 65 2c 20 24 6c 61 72 67 65 tBlock($messages,.$style,.$large
5b120 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 .=.false).{.$messages.=.(array).
5b140 24 6d 65 73 73 61 67 65 73 3b 0a 0a 24 6c 65 6e 20 3d 20 30 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 $messages;..$len.=.0;.$lines.=.a
5b160 72 72 61 79 28 29 3b 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 rray();.foreach.($messages.as.$m
5b180 65 73 73 61 67 65 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 essage).{.$lines[].=.sprintf($la
5b1a0 72 67 65 20 3f 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 rge.?.'..%s..'.:.'.%s.',.$messag
5b1c0 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 e);.$len.=.max($this->strlen($me
5b1e0 73 73 61 67 65 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 ssage).+.($large.?.4.:.2),.$len)
5b200 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 ;.}..$messages.=.$large.?.array(
5b220 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 str_repeat('.',.$len)).:.array()
5b240 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 24 6d ;.foreach.($lines.as.$line).{.$m
5b260 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 essages[].=.$line.str_repeat('.'
5b280 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a ,.$len.-.$this->strlen($line));.
5b2a0 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 }.if.($large).{.$messages[].=.st
5b2c0 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 r_repeat('.',.$len);.}..foreach.
5b2e0 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 26 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 ($messages.as.&$message).{.$mess
5b300 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 age.=.sprintf('<%s>%s</%s>',.$st
5b320 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 yle,.$message,.$style);.}..retur
5b340 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a n.implode("\n",.$messages);.}...
5b360 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 ......private.function.strlen($s
5b380 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 73 28 27 6d tring).{.if.(!function_exists('m
5b3a0 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 24 73 74 72 b_strlen')).{.return.strlen($str
5b3c0 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 64 69 6e 67 ing);.}..if.(false.===.$encoding
5b3e0 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 67 29 29 20 .=.mb_detect_encoding($string)).
5b400 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 72 65 74 {.return.strlen($string);.}..ret
5b420 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 64 69 6e 67 urn.mb_strlen($string,.$encoding
5b440 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 67 65 74 4e 61 );.}.......public.function.getNa
5b460 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c me().{.return.'formatter';.}.}.<
5b480 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
5b4a0 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 65 20 \Component\Console\Helper;..use.
5b4c0 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
5b4e0 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 65 72 53 65 74 d\Command;.......class.HelperSet
5b500 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f .{.private.$helpers;.private.$co
5b520 6d 6d 61 6e 64 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 mmand;.......public.function.__c
5b540 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 onstruct(array.$helpers.=.array(
5b560 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 )).{.$this->helpers.=.array();.f
5b580 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c 69 61 73 20 3d 3e 20 24 68 oreach.($helpers.as.$alias.=>.$h
5b5a0 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 6c 70 65 72 2c 20 69 73 5f elper).{.$this->set($helper,.is_
5b5c0 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 6c 69 61 73 29 3b 0a 7d 0a int($alias).?.null.:.$alias);.}.
5b5e0 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 28 48 65 6c }........public.function.set(Hel
5b600 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 61 6c 69 61 73 20 3d 20 6e perInterface.$helper,.$alias.=.n
5b620 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 68 65 6c 70 65 72 2d 3e 67 ull).{.$this->helpers[$helper->g
5b640 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d etName()].=.$helper;.if.(null.!=
5b660 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 61 6c 69 61 =.$alias).{.$this->helpers[$alia
5b680 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 48 65 6c s].=.$helper;.}..$helper->setHel
5b6a0 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 perSet($this);.}.........public.
5b6c0 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 69 73 73 function.has($name).{.return.iss
5b6e0 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a et($this->helpers[$name]);.}....
5b700 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 6d 65 .......public.function.get($name
5b720 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 ).{.if.(!$this->has($name)).{.th
5b740 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
5b760 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 25 73 22 20 69 73 20 6e 6f n(sprintf('The.helper."%s".is.no
5b780 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 t.defined.',.$name));.}..return.
5b7a0 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 $this->helpers[$name];.}.......p
5b7c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e ublic.function.setCommand(Comman
5b7e0 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d d.$command.=.null).{.$this->comm
5b800 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 and.=.$command;.}.......public.f
5b820 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.getCommand().{.return.$t
5b840 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a his->command;.}.}.<?php.........
5b860 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
5b880 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 nsole\Helper;.......abstract.cla
5b8a0 73 73 20 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 ss.Helper.implements.HelperInter
5b8c0 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 face.{.protected.$helperSet.=.nu
5b8e0 6c 6c 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 48 65 6c ll;.......public.function.setHel
5b900 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 perSet(HelperSet.$helperSet.=.nu
5b920 6c 6c 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 70 65 72 ll).{.$this->helperSet.=.$helper
5b940 53 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 67 65 74 Set;.}.......public.function.get
5b960 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 3e 68 65 6c 70 HelperSet().{.return.$this->help
5b980 65 72 53 65 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 erSet;.}.}.<?php...........names
5b9a0 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 46 pace.Symfony\Component\Console\F
5b9c0 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 ormatter;.........interface.Outp
5b9e0 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 utFormatterInterface.{........fu
5ba00 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 3b nction.setDecorated($decorated);
5ba20 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b .........function.isDecorated();
5ba40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d ..........function.setStyle($nam
5ba60 65 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 e,.OutputFormatterStyleInterface
5ba80 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 .$style);...........function.has
5baa0 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e Style($name);...........function
5bac0 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 .getStyle($name);...........func
5bae0 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..
5bb00 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
5bb20 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 0a 0a 0a 0a nent\Console\Formatter;.........
5bb40 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 20 69 6d 70 6c 65 class.OutputFormatterStyle.imple
5bb60 6d 65 6e 74 73 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 ments.OutputFormatterStyleInterf
5bb80 61 63 65 0a 7b 0a 73 74 61 74 69 63 20 70 72 69 76 61 74 65 20 24 61 76 61 69 6c 61 62 6c 65 46 ace.{.static.private.$availableF
5bba0 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 6b 27 oregroundColors.=.array(.'black'
5bbc0 20 3d 3e 20 33 30 2c 0a 27 72 65 64 27 20 3d 3e 20 33 31 2c 0a 27 67 72 65 65 6e 27 20 3d 3e 20 .=>.30,.'red'.=>.31,.'green'.=>.
5bbe0 33 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 33 33 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 33 34 32,.'yellow'.=>.33,.'blue'.=>.34
5bc00 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 33 35 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 33 36 2c ,.'magenta'.=>.35,.'cyan'.=>.36,
5bc20 0a 27 77 68 69 74 65 27 20 3d 3e 20 33 37 0a 29 3b 0a 73 74 61 74 69 63 20 70 72 69 76 61 74 65 .'white'.=>.37.);.static.private
5bc40 20 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 20 3d 20 61 72 .$availableBackgroundColors.=.ar
5bc60 72 61 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 34 30 2c 0a 27 72 65 64 27 20 3d 3e 20 34 31 2c ray(.'black'.=>.40,.'red'.=>.41,
5bc80 0a 27 67 72 65 65 6e 27 20 3d 3e 20 34 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 34 33 2c 0a .'green'.=>.42,.'yellow'.=>.43,.
5bca0 27 62 6c 75 65 27 20 3d 3e 20 34 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 34 35 2c 0a 27 'blue'.=>.44,.'magenta'.=>.45,.'
5bcc0 63 79 61 6e 27 20 3d 3e 20 34 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 34 37 0a 29 3b 0a 73 74 cyan'.=>.46,.'white'.=>.47.);.st
5bce0 61 74 69 63 20 70 72 69 76 61 74 65 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 20 3d atic.private.$availableOptions.=
5bd00 20 61 72 72 61 79 28 0a 27 62 6f 6c 64 27 20 3d 3e 20 31 2c 0a 27 75 6e 64 65 72 73 63 6f 72 65 .array(.'bold'.=>.1,.'underscore
5bd20 27 20 3d 3e 20 34 2c 0a 27 62 6c 69 6e 6b 27 20 3d 3e 20 35 2c 0a 27 72 65 76 65 72 73 65 27 20 '.=>.4,.'blink'.=>.5,.'reverse'.
5bd40 3d 3e 20 37 2c 0a 27 63 6f 6e 63 65 61 6c 27 20 3d 3e 20 38 0a 29 3b 0a 0a 70 72 69 76 61 74 65 =>.7,.'conceal'.=>.8.);..private
5bd60 20 24 66 6f 72 65 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 62 61 63 6b 67 72 6f 75 6e .$foreground;.private.$backgroun
5bd80 64 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a d;.private.$options.=.array();..
5bda0 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
5bdc0 72 75 63 74 28 24 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 24 62 61 63 6b 67 72 ruct($foreground.=.null,.$backgr
5bde0 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 ound.=.null,.array.$options.=.ar
5be00 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 66 6f 72 65 67 72 6f 75 6e ray()).{.if.(null.!==.$foregroun
5be20 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 66 6f 72 65 67 d).{.$this->setForeground($foreg
5be40 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 62 61 63 6b 67 72 6f 75 round);.}.if.(null.!==.$backgrou
5be60 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 62 61 63 6b nd).{.$this->setBackground($back
5be80 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 73 29 29 20 ground);.}.if.(count($options)).
5bea0 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d {.$this->setOptions($options);.}
5bec0 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
5bee0 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 0a 7b 0a 69 66 20 28 Foreground($color.=.null).{.if.(
5bf00 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 null.===.$color).{.$this->foregr
5bf20 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 ound.=.null;..return;.}..if.(!is
5bf40 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 set(static::$availableForeground
5bf60 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e Colors[$color])).{.throw.new.\In
5bf80 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(.
5bfa0 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 'Invalid.foreground.color.specif
5bfc0 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 25 73 29 27 ied:."%s"..Expected.one.of.(%s)'
5bfe0 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 ,.$color,.implode(',.',.array_ke
5c000 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 ys(static::$availableForegroundC
5c020 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 olors)).));.}..$this->foreground
5c040 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 .=.static::$availableForegroundC
5c060 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 olors[$color];.}...........publi
5c080 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 c.function.setBackground($color.
5c0a0 3d 20 6e 75 6c 6c 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 =.null).{.if.(null.===.$color).{
5c0c0 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 .$this->background.=.null;..retu
5c0e0 72 6e 3b 0a 7d 0a 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 rn;.}..if.(!isset(static::$avail
5c100 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 6f 72 5d 29 29 20 7b ableBackgroundColors[$color])).{
5c120 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
5c140 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 62 61 63 6b 67 72 6f 75 6e tion(sprintf(.'Invalid.backgroun
5c160 64 20 63 6f 6c 6f 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 d.color.specified:."%s"..Expecte
5c180 64 20 6f 6e 65 20 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 d.one.of.(%s)',.$color,.implode(
5c1a0 27 2c 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 ',.',.array_keys(static::$availa
5c1c0 62 6c 65 42 61 63 6b 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 bleBackgroundColors)).));.}..$th
5c1e0 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 is->background.=.static::$availa
5c200 62 6c 65 42 61 63 6b 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 bleBackgroundColors[$color];.}..
5c220 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 74 69 .........public.function.setOpti
5c240 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 3a on($option).{.if.(!isset(static:
5c260 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 0a :$availableOptions[$option])).{.
5c280 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
5c2a0 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 65 ion(sprintf(.'Invalid.option.spe
5c2c0 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 25 cified:."%s"..Expected.one.of.(%
5c2e0 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 61 s)',.$option,.implode(',.',.arra
5c300 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 73 y_keys(static::$availableOptions
5c320 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 61 72 72 61 79 5f 73 65 )).));.}..if.(false.===.array_se
5c340 61 72 63 68 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 arch(static::$availableOptions[$
5c360 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 option],.$this->options)).{.$thi
5c380 73 2d 3e 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c s->options[].=.static::$availabl
5c3a0 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eOptions[$option];.}.}..........
5c3c0 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 24 6f 70 74 public.function.unsetOption($opt
5c3e0 69 6f 6e 29 0a 7b 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 ion).{.if.(!isset(static::$avail
5c400 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e ableOptions[$option])).{.throw.n
5c420 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 72 ew.\InvalidArgumentException(spr
5c440 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a intf(.'Invalid.option.specified:
5c460 20 22 25 73 22 2e 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 6f ."%s"..Expected.one.of.(%s)',.$o
5c480 70 74 69 6f 6e 2c 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 ption,.implode(',.',.array_keys(
5c4a0 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 29 29 0a 29 29 3b 0a static::$availableOptions)).));.
5c4c0 7d 0a 0a 24 70 6f 73 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 63 3a 3a 24 }..$pos.=.array_search(static::$
5c4e0 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 2c 20 24 74 68 69 73 availableOptions[$option],.$this
5c500 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 ->options);.if.(false.!==.$pos).
5c520 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 70 6f 73 5d 29 3b 0a 7d {.unset($this->options[$pos]);.}
5c540 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 4f 70 74 69 .}.......public.function.setOpti
5c560 6f 6e 73 28 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 ons(array.$options).{.$this->opt
5c580 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f ions.=.array();..foreach.($optio
5c5a0 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f ns.as.$option).{.$this->setOptio
5c5c0 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 n($option);.}.}.........public.f
5c5e0 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 0a 7b 0a 24 63 6f 64 65 73 20 3d 20 unction.apply($text).{.$codes.=.
5c600 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 6f array();..if.(null.!==.$this->fo
5c620 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f reground).{.$codes[].=.$this->fo
5c640 72 65 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e reground;.}.if.(null.!==.$this->
5c660 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e background).{.$codes[].=.$this->
5c680 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6f background;.}.if.(count($this->o
5c6a0 70 74 69 6f 6e 73 29 29 20 7b 0a 24 63 6f 64 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 ptions)).{.$codes.=.array_merge(
5c6c0 24 63 6f 64 65 73 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 72 65 74 75 $codes,.$this->options);.}..retu
5c6e0 72 6e 20 73 70 72 69 6e 74 66 28 22 5c 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b 30 6d 22 2c 20 rn.sprintf("\033[%sm%s\033[0m",.
5c700 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 20 24 63 6f 64 65 73 29 2c 20 24 74 65 78 74 29 3b 0a 7d 0a implode(';',.$codes),.$text);.}.
5c720 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
5c740 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 3b ony\Component\Console\Formatter;
5c760 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 20 69 .........class.OutputFormatter.i
5c780 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 66 61 mplements.OutputFormatterInterfa
5c7a0 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 20 27 ce.{....const.FORMAT_PATTERN.=.'
5c7c0 23 3c 28 2f 3f 29 28 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2b 29 3f 3e 28 5b 5e 3c #<(/?)([a-z][a-z0-9_=;-]+)?>([^<
5c7e0 5d 2a 29 23 69 73 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 ]*)#is';..private.$decorated;.pr
5c800 69 76 61 74 65 20 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 ivate.$styles.=.array();.private
5c820 20 24 73 74 79 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$styleStack;..........public.fu
5c840 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 20 3d 20 nction.__construct($decorated.=.
5c860 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 29 0a 7b null,.array.$styles.=.array()).{
5c880 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 20 24 64 .$this->decorated.=.(Boolean).$d
5c8a0 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 72 72 6f ecorated;..$this->setStyle('erro
5c8c0 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 27 77 68 r',.new.OutputFormatterStyle('wh
5c8e0 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 65 28 27 ite',.'red'));.$this->setStyle('
5c900 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 6c 65 28 info',.new.OutputFormatterStyle(
5c920 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 6f 6d 6d 'green'));.$this->setStyle('comm
5c940 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 65 28 27 ent',.new.OutputFormatterStyle('
5c960 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 75 65 73 yellow'));.$this->setStyle('ques
5c980 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 6c 65 28 tion',.new.OutputFormatterStyle(
5c9a0 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 24 73 74 'black',.'cyan'));..foreach.($st
5c9c0 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 68 69 73 yles.as.$name.=>.$style).{.$this
5c9e0 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 0a 24 74 ->setStyle($name,.$style);.}..$t
5ca00 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 6f 72 6d his->styleStack.=.new.OutputForm
5ca20 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 70 75 62 atterStyleStack();.}.........pub
5ca40 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 72 lic.function.setDecorated($decor
5ca60 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 6f 6f 6c ated).{.$this->decorated.=.(Bool
5ca80 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 62 6c 69 ean).$decorated;.}.........publi
5caa0 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 72 c.function.isDecorated().{.retur
5cac0 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 0a 0a 70 n.$this->decorated;.}..........p
5cae0 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 2c 20 4f ublic.function.setStyle($name,.O
5cb00 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 24 73 74 utputFormatterStyleInterface.$st
5cb20 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 65 72 28 yle).{.$this->styles[strtolower(
5cb40 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 0a 70 75 $name)].=.$style;.}...........pu
5cb60 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 0a 7b 0a blic.function.hasStyle($name).{.
5cb80 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 72 74 6f return.isset($this->styles[strto
5cba0 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 0a 70 75 lower($name)]);.}.............pu
5cbc0 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 0a 7b 0a blic.function.getStyle($name).{.
5cbe0 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 7b 0a 74 if.(!$this->hasStyle($name)).{.t
5cc00 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 69 hrow.new.\InvalidArgumentExcepti
5cc20 6f 6e 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 27 2e 24 6e 61 6d 65 29 3b 0a 7d on('Undefined.style:.'.$name);.}
5cc40 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 ..return.$this->styles[strtolowe
5cc60 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 r($name)];.}...........public.fu
5cc80 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e nction.format($message).{.return
5cca0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 73 65 6c 66 3a 3a 46 4f 52 .preg_replace_callback(self::FOR
5ccc0 4d 41 54 5f 50 41 54 54 45 52 4e 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 72 65 70 6c 61 MAT_PATTERN,.array($this,.'repla
5cce0 63 65 53 74 79 6c 65 27 29 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ceStyle'),.$message);.}.........
5cd00 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
5cd20 61 74 63 68 29 0a 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 7b 0a atch).{.if.(''.===.$match[2]).{.
5cd40 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 0a 20 24 74 68 69 73 if.('/'.===.$match[1]).{...$this
5cd60 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ->styleStack->pop();..return.$th
5cd80 69 73 2d 3e 61 70 70 6c 79 53 74 79 6c 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b is->applyStyle($this->styleStack
5cda0 2d 3e 67 65 74 43 75 72 72 65 6e 74 28 29 2c 20 24 6d 61 74 63 68 5b 33 5d 29 3b 0a 7d 0a 0a 0a ->getCurrent(),.$match[3]);.}...
5cdc0 20 72 65 74 75 72 6e 20 27 3c 3e 27 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 7d 0a 0a 69 66 20 28 69 .return.'<>'.$match[3];.}..if.(i
5cde0 73 73 65 74 28 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 sset($this->styles[strtolower($m
5ce00 61 74 63 68 5b 32 5d 29 5d 29 29 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 atch[2])])).{.$style.=.$this->st
5ce20 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 32 5d 29 5d 3b 0a 7d 20 65 yles[strtolower($match[2])];.}.e
5ce40 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 74 79 6c lse.{.$style.=.$this->createStyl
5ce60 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 0a 69 66 20 28 66 61 6c eFromString($match[2]);..if.(fal
5ce80 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 se.===.$style).{.return.$match[0
5cea0 5d 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 31 5d 29 20 7b ];.}.}..if.('/'.===.$match[1]).{
5cec0 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 79 6c 65 29 3b .$this->styleStack->pop($style);
5cee0 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 2d 3e 70 75 73 .}.else.{.$this->styleStack->pus
5cf00 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 3e 61 70 70 6c h($style);.}..return.$this->appl
5cf20 79 53 74 79 6c 65 28 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 yStyle($this->styleStack->getCur
5cf40 72 65 6e 74 28 29 2c 20 24 6d 61 74 63 68 5b 33 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 rent(),.$match[3]);.}.........pr
5cf60 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 ivate.function.createStyleFromSt
5cf80 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 5f ring($string).{.if.(!preg_match_
5cfa0 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 73 74 all('/([^=]+)=([^;]+)(;|$)/',.st
5cfc0 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 rtolower($string),.$matches,.PRE
5cfe0 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a G_SET_ORDER)).{.return.false;.}.
5d000 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 .$style.=.new.OutputFormatterSty
5d020 6c 65 28 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 6d 61 74 63 le();.foreach.($matches.as.$matc
5d040 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 28 27 h).{.array_shift($match);..if.('
5d060 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 46 fg'.==.$match[0]).{.$style->setF
5d080 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 oreground($match[1]);.}.elseif.(
5d0a0 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 'bg'.==.$match[0]).{.$style->set
5d0c0 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a Background($match[1]);.}.else.{.
5d0e0 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 0a $style->setOption($match[1]);.}.
5d100 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 }..return.$style;.}..........pri
5d120 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 53 74 79 6c 65 28 4f 75 74 70 75 74 46 vate.function.applyStyle(OutputF
5d140 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 2c 20 24 ormatterStyleInterface.$style,.$
5d160 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 text).{.return.$this->isDecorate
5d180 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 20 3e 20 30 20 3f 20 24 73 74 79 6c d().&&.strlen($text).>.0.?.$styl
5d1a0 65 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 0a 3c 3f 70 e->apply($text).:.$text;.}.}.<?p
5d1c0 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
5d1e0 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 0a 0a 0a 0a omponent\Console\Formatter;.....
5d200 63 6c 61 73 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 class.OutputFormatterStyleStack.
5d220 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 73 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 {....private.$styles;.....public
5d240 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 0a 24 74 68 69 73 2d .function.__construct().{.$this-
5d260 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 63 74 69 6f 6e 20 >reset();.}.....public.function.
5d280 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 61 72 72 61 79 28 reset().{.$this->styles.=.array(
5d2a0 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 70 75 73 68 28 );.}.......public.function.push(
5d2c0 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 24 73 OutputFormatterStyleInterface.$s
5d2e0 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 24 73 74 79 6c 65 tyle).{.$this->styles[].=.$style
5d300 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 70 6f ;.}...........public.function.po
5d320 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 72 66 61 63 65 20 p(OutputFormatterStyleInterface.
5d340 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 28 24 74 68 69 73 $style.=.null).{.if.(empty($this
5d360 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 4f 75 74 70 75 74 46 6f ->styles)).{.return.new.OutputFo
5d380 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 rmatterStyle();.}..if.(null.===.
5d3a0 24 73 74 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 $style).{.return.array_pop($this
5d3c0 2d 3e 73 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 ->styles);.}..foreach.(array_rev
5d3e0 65 72 73 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 erse($this->styles,.true).as.$in
5d400 64 65 78 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 dex.=>.$stackedStyle).{.if.($sty
5d420 6c 65 2d 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 le->apply('').===.$stackedStyle-
5d440 3e 61 70 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 >apply('')).{.$this->styles.=.ar
5d460 72 61 79 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 ray_slice($this->styles,.0,.$ind
5d480 65 78 29 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 ex);..return.$stackedStyle;.}.}.
5d4a0 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
5d4c0 74 69 6f 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 tion('Incorrectly.nested.style.t
5d4e0 61 67 20 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 ag.found.');.}.......public.func
5d500 74 69 6f 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 tion.getCurrent().{.if.(empty($t
5d520 68 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 4f 75 74 70 75 his->styles)).{.return.new.Outpu
5d540 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 tFormatterStyle();.}..return.$th
5d560 69 73 2d 3e 73 74 79 6c 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 2d is->styles[count($this->styles)-
5d580 31 5d 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 1];.}.}.<?php...........namespac
5d5a0 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 6f 72 6d e.Symfony\Component\Console\Form
5d5c0 61 74 74 65 72 3b 0a 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 atter;.........interface.OutputF
5d5e0 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a ormatterStyleInterface.{........
5d600 66 75 6e 63 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 function.setForeground($color.=.
5d620 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 null);.........function.setBackg
5d640 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 0a 0a 0a 0a 66 75 round($color.=.null);.........fu
5d660 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 0a 0a 0a nction.setOption($option);......
5d680 0a 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a .function.unsetOption($option);.
5d6a0 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 ......function.setOptions(array.
5d6c0 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c $options);.........function.appl
5d6e0 79 28 24 74 65 78 74 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 y($text);.}.<?php...........name
5d700 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 65 5c space.Symfony\Component\Console\
5d720 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 74 41 72 67 75 6d 65 Input;.........class.InputArgume
5d740 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 63 6f 6e 73 74 20 4f nt.{.const.REQUIRED.=.1;.const.O
5d760 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 41 59 20 3d 20 34 3b PTIONAL.=.2;.const.IS_ARRAY.=.4;
5d780 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 24 6d 6f 64 65 3b 0a ..private.$name;.private.$mode;.
5d7a0 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 72 private.$default;.private.$descr
5d7c0 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 69 63 20 66 75 6e 63 iption;..............public.func
5d7e0 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 6d 6f 64 65 20 3d 20 tion.__construct($name,.$mode.=.
5d800 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 24 64 65 66 61 75 6c null,.$description.=.'',.$defaul
5d820 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 24 6d 6f 64 65 29 20 t.=.null).{.if.(null.===.$mode).
5d840 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 0a 7d 20 65 6c 73 65 {.$mode.=.self::OPTIONAL;.}.else
5d860 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 64 65 20 3e 20 37 20 if.(!is_int($mode).||.$mode.>.7.
5d880 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 20 5c 49 6e 76 61 6c ||.$mode.<.1).{.throw.new.\Inval
5d8a0 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 41 72 67 idArgumentException(sprintf('Arg
5d8c0 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 6c 69 64 2e 27 2c 20 ument.mode."%s".is.not.valid.',.
5d8e0 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 20 24 6e 61 6d 65 3b $mode));.}..$this->name.=.$name;
5d900 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 69 73 2d 3e 64 65 73 .$this->mode.=.$mode;.$this->des
5d920 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 0a 24 74 68 69 73 2d cription.=.$description;..$this-
5d940 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 0a 0a 0a 0a 0a 0a 70 >setDefault($default);.}.......p
5d960 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 65 74 75 72 ublic.function.getName().{.retur
5d980 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 62 6c 69 63 20 66 75 n.$this->name;.}.......public.fu
5d9a0 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 75 72 6e 20 73 65 6c nction.isRequired().{.return.sel
5d9c0 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 51 55 49 52 45 44 20 f::REQUIRED.===.(self::REQUIRED.
5d9e0 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 75 62 6c 69 63 20 66 &.$this->mode);.}.......public.f
5da00 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 6e 20 73 65 6c 66 3a unction.isArray().{.return.self:
5da20 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 52 52 41 59 20 26 20 :IS_ARRAY.===.(self::IS_ARRAY.&.
5da40 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 75 62 6c 69 63 20 66 $this->mode);.}.........public.f
5da60 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 6c 74 20 3d 20 6e 75 unction.setDefault($default.=.nu
5da80 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 3d 3d 3d 20 24 74 68 ll).{.if.(self::REQUIRED.===.$th
5daa0 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 61 75 6c 74 29 20 7b is->mode.&&.null.!==.$default).{
5dac0 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 43 61 6e 6e .throw.new.\LogicException('Cann
5dae0 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 63 65 70 74 20 66 6f ot.set.a.default.value.except.fo
5db00 72 20 50 61 72 61 6d 65 74 65 72 3a 3a 4f 50 54 49 4f 4e 41 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d r.Parameter::OPTIONAL.mode.');.}
5db20 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 ..if.($this->isArray()).{.if.(nu
5db40 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 ll.===.$default).{.$default.=.ar
5db60 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 ray();.}.elseif.(!is_array($defa
5db80 75 6c 74 29 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 ult)).{.throw.new.\LogicExceptio
5dba0 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 n('A.default.value.for.an.array.
5dbc0 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a argument.must.be.an.array.');.}.
5dbe0 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a }..$this->default.=.$default;.}.
5dc00 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 65 66 61 75 6c 74 ......public.function.getDefault
5dc20 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a ().{.return.$this->default;.}...
5dc40 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 73 63 72 69 70 74 69 ....public.function.getDescripti
5dc60 6f 6e 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 on().{.return.$this->description
5dc80 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 20 ;.}.}.<?php...........namespace.
5dca0 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 3b Symfony\Component\Console\Input;
5dcc0 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 73 20 49 6e 70 75 .............abstract.class.Inpu
5dce0 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 t.implements.InputInterface.{.pr
5dd00 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$definition;.protected.$
5dd20 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 options;.protected.$arguments;.p
5dd40 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 72 75 65 3b 0a 0a 0a rotected.$interactive.=.true;...
5dd60 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(
5dd80 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 20 3d 20 6e 75 InputDefinition.$definition.=.nu
5dda0 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 ll).{.if.(null.===.$definition).
5ddc0 7b 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 {.$this->definition.=.new.InputD
5dde0 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 6e efinition();.}.else.{.$this->bin
5de00 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 28 d($definition);.$this->validate(
5de20 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 6e );.}.}.......public.function.bin
5de40 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 7b d(InputDefinition.$definition).{
5de60 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 68 .$this->arguments.=.array();.$th
5de80 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 65 is->options.=.array();.$this->de
5dea0 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 3e finition.=.$definition;..$this->
5dec0 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 65 parse();.}.....abstract.protecte
5dee0 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 63 d.function.parse();.......public
5df00 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 74 .function.validate().{.if.(count
5df20 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 69 ($this->arguments).<.$this->defi
5df40 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 74 nition->getArgumentRequiredCount
5df60 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 6f ()).{.throw.new.\RuntimeExceptio
5df80 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 0a n('Not.enough.arguments.');.}.}.
5dfa0 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 74 ......public.function.isInteract
5dfc0 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 76 ive().{.return.$this->interactiv
5dfe0 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 6e e;.}.......public.function.setIn
5e000 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 2d teractive($interactive).{.$this-
5e020 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 61 >interactive.=.(Boolean).$intera
5e040 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 67 ctive;.}.......public.function.g
5e060 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 72 etArguments().{.return.array_mer
5e080 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 6e ge($this->definition->getArgumen
5e0a0 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 0a tDefaults(),.$this->arguments);.
5e0c0 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 41 }...........public.function.getA
5e0e0 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 66 rgument($name).{.if.(!$this->def
5e100 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 74 inition->hasArgument($name)).{.t
5e120 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 69 hrow.new.\InvalidArgumentExcepti
5e140 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 6f on(sprintf('The."%s".argument.do
5e160 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 75 es.not.exist.',.$name));.}..retu
5e180 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 5d rn.isset($this->arguments[$name]
5e1a0 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 74 ).?.$this->arguments[$name].:.$t
5e1c0 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 61 his->definition->getArgument($na
5e1e0 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 75 me)->getDefault();.}..........pu
5e200 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 2c blic.function.setArgument($name,
5e220 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 6f .$value).{.if.(!$this->definitio
5e240 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 6e n->hasArgument($name)).{.throw.n
5e260 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 72 ew.\InvalidArgumentException(spr
5e280 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 74 intf('The."%s".argument.does.not
5e2a0 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 67 .exist.',.$name));.}..$this->arg
5e2c0 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 0a uments[$name].=.$value;.}.......
5e2e0 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 6e ..public.function.hasArgument($n
5e300 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 2d ame).{.return.$this->definition-
5e320 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 62 >hasArgument($name);.}.......pub
5e340 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 75 lic.function.getOptions().{.retu
5e360 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 6e rn.array_merge($this->definition
5e380 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 70 ->getOptionDefaults(),.$this->op
5e3a0 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 74 tions);.}...........public.funct
5e3c0 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 69 ion.getOption($name).{.if.(!$thi
5e3e0 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 29 s->definition->hasOption($name))
5e400 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 63 .{.throw.new.\InvalidArgumentExc
5e420 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 20 eption(sprintf('The."%s".option.
5e440 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 65 does.not.exist.',.$name));.}..re
5e460 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 5d turn.isset($this->options[$name]
5e480 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 69 ).?.$this->options[$name].:.$thi
5e4a0 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 2d s->definition->getOption($name)-
5e4c0 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 63 >getDefault();.}..........public
5e4e0 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 75 .function.setOption($name,.$valu
5e500 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 73 e).{.if.(!$this->definition->has
5e520 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 61 Option($name)).{.throw.new.\Inva
5e540 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 68 lidArgumentException(sprintf('Th
5e560 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 20 e."%s".option.does.not.exist.',.
5e580 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 65 $name));.}..$this->options[$name
5e5a0 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 6e ].=.$value;.}.........public.fun
5e5c0 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 20 ction.hasOption($name).{.return.
5e5e0 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 61 $this->definition->hasOption($na
5e600 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 6e 61 6d 65 73 70 61 me);.}.}.<?php...........namespa
5e620 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 49 6e 70 ce.Symfony\Component\Console\Inp
5e640 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 44 65 ut;................class.InputDe
5e660 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 finition.{.private.$arguments;.p
5e680 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 rivate.$requiredCount;.private.$
5e6a0 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 hasAnArrayArgument.=.false;.priv
5e6c0 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f ate.$hasOptional;.private.$optio
5e6e0 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a ns;.private.$shortcuts;.........
5e700 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
5e720 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 y.$definition.=.array()).{.$this
5e740 2d 3e 73 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 ->setDefinition($definition);.}.
5e760 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 66 69 6e ........public.function.setDefin
5e780 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 61 72 67 75 ition(array.$definition).{.$argu
5e7a0 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 ments.=.array();.$options.=.arra
5e7c0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 61 73 20 24 69 74 y();.foreach.($definition.as.$it
5e7e0 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 em).{.if.($item.instanceof.Input
5e800 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 20 Option).{.$options[].=.$item;.}.
5e820 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 0a 7d else.{.$arguments[].=.$item;.}.}
5e840 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 ..$this->setArguments($arguments
5e860 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a );.$this->setOptions($options);.
5e880 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 72 67 }.........public.function.setArg
5e8a0 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 29 29 0a 7b 0a 24 uments($arguments.=.array()).{.$
5e8c0 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 68 69 73 this->arguments.=.array();.$this
5e8e0 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 68 61 73 4f ->requiredCount.=.0;.$this->hasO
5e900 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 ptional.=.false;.$this->hasAnArr
5e920 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 ayArgument.=.false;.$this->addAr
5e940 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 guments($arguments);.}.........p
5e960 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 73 28 24 61 72 67 ublic.function.addArguments($arg
5e980 75 6d 65 6e 74 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 uments.=.array()).{.if.(null.!==
5e9a0 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 72 67 75 6d 65 6e .$arguments).{.foreach.($argumen
5e9c0 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 ts.as.$argument).{.$this->addArg
5e9e0 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ument($argument);.}.}.}.........
5ea00 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 49 6e ..public.function.addArgument(In
5ea20 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 69 66 20 28 69 73 73 putArgument.$argument).{.if.(iss
5ea40 65 74 28 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 74 2d 3e 67 et($this->arguments[$argument->g
5ea60 65 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 etName()])).{.throw.new.\LogicEx
5ea80 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 61 72 67 75 6d 65 6e 74 20 77 69 74 ception(sprintf('An.argument.wit
5eaa0 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e 27 2c 20 24 61 72 h.name."%s".already.exist.',.$ar
5eac0 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 gument->getName()));.}..if.($thi
5eae0 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e s->hasAnArrayArgument).{.throw.n
5eb00 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 ew.\LogicException('Cannot.add.a
5eb20 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 n.argument.after.an.array.argume
5eb40 6e 74 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 52 65 71 75 69 nt.');.}..if.($argument->isRequi
5eb60 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 29 20 7b 0a 74 red().&&.$this->hasOptional).{.t
5eb80 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 43 61 6e 6e 6f 74 hrow.new.\LogicException('Cannot
5eba0 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 .add.a.required.argument.after.a
5ebc0 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d n.optional.one.');.}..if.($argum
5ebe0 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 ent->isArray()).{.$this->hasAnAr
5ec00 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 rayArgument.=.true;.}..if.($argu
5ec20 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 2b 2b 24 74 68 69 73 2d 3e 72 ment->isRequired()).{.++$this->r
5ec40 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 61 equiredCount;.}.else.{.$this->ha
5ec60 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 sOptional.=.true;.}..$this->argu
5ec80 6d 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 20 3d 20 24 61 ments[$argument->getName()].=.$a
5eca0 72 67 75 6d 65 6e 74 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 rgument;.}.............public.fu
5ecc0 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 61 72 67 nction.getArgument($name).{.$arg
5ece0 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 uments.=.is_int($name).?.array_v
5ed00 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 68 69 73 2d alues($this->arguments).:.$this-
5ed20 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 >arguments;..if.(!$this->hasArgu
5ed40 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 69 ment($name)).{.throw.new.\Invali
5ed60 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 20 dArgumentException(sprintf('The.
5ed80 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 20 "%s".argument.does.not.exist.',.
5eda0 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e $name));.}..return.$arguments[$n
5edc0 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 74 69 6f ame];.}...........public.functio
5ede0 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 n.hasArgument($name).{.$argument
5ee00 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 s.=.is_int($name).?.array_values
5ee20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 ($this->arguments).:.$this->argu
5ee40 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 72 67 75 6d 65 6e 74 73 5b ments;..return.isset($arguments[
5ee60 24 6e 61 6d 65 5d 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 $name]);.}.........public.functi
5ee80 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on.getArguments().{.return.$this
5eea0 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->arguments;.}.......public.func
5eec0 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e tion.getArgumentCount().{.return
5eee0 20 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 3f 20 50 48 50 .$this->hasAnArrayArgument.?.PHP
5ef00 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 _INT_MAX.:.count($this->argument
5ef20 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 67 65 74 41 s);.}.......public.function.getA
5ef40 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 rgumentRequiredCount().{.return.
5ef60 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 $this->requiredCount;.}.......pu
5ef80 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 44 65 66 61 75 6c 74 blic.function.getArgumentDefault
5efa0 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 s().{.$values.=.array();.foreach
5efc0 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 .($this->arguments.as.$argument)
5efe0 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d .{.$values[$argument->getName()]
5f000 20 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 3b 0a 7d 0a 0a 72 .=.$argument->getDefault();.}..r
5f020 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 eturn.$values;.}.........public.
5f040 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 function.setOptions($options.=.a
5f060 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 rray()).{.$this->options.=.array
5f080 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ();.$this->shortcuts.=.array();.
5f0a0 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a $this->addOptions($options);.}..
5f0c0 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 4f 70 74 69 6f 6e .......public.function.addOption
5f0e0 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 s($options.=.array()).{.foreach.
5f100 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 61 ($options.as.$option).{.$this->a
5f120 64 64 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 0a ddOption($option);.}.}..........
5f140 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 49 6e 70 75 74 .public.function.addOption(Input
5f160 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 Option.$option).{.if.(isset($thi
5f180 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 29 20 s->options[$option->getName()]).
5f1a0 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f &&.!$option->equals($this->optio
5f1c0 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 ns[$option->getName()])).{.throw
5f1e0 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 41 6e .new.\LogicException(sprintf('An
5f200 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 .option.named."%s".already.exist
5f220 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 20 65 6c 73 65 .',.$option->getName()));.}.else
5f240 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 if.(isset($this->shortcuts[$opti
5f260 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d on->getShortcut()]).&&.!$option-
5f280 3e 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 >equals($this->options[$this->sh
5f2a0 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 5d ortcuts[$option->getShortcut()]]
5f2c0 29 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 73 )).{.throw.new.\LogicException(s
5f2e0 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 73 68 6f 72 74 63 75 74 20 printf('An.option.with.shortcut.
5f300 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 "%s".already.exist.',.$option->g
5f320 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e etShortcut()));.}..$this->option
5f340 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 3b s[$option->getName()].=.$option;
5f360 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 24 .if.($option->getShortcut()).{.$
5f380 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 this->shortcuts[$option->getShor
5f3a0 74 63 75 74 28 29 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 tcut()].=.$option->getName();.}.
5f3c0 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 4f }...........public.function.getO
5f3e0 70 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 ption($name).{.if.(!$this->hasOp
5f400 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 61 6c 69 tion($name)).{.throw.new.\Invali
5f420 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 20 dArgumentException(sprintf('The.
5f440 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 27 2c 20 "--%s".option.does.not.exist.',.
5f460 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 6f 70 74 69 6f 6e $name));.}..return.$this->option
5f480 73 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 s[$name];.}...........public.fun
5f4a0 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 20 ction.hasOption($name).{.return.
5f4c0 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 5d 29 3b 0a 7d 0a isset($this->options[$name]);.}.
5f4e0 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 74 69 6f ........public.function.getOptio
5f500 6e 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 ns().{.return.$this->options;.}.
5f520 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 53 68 6f 72 74 ........public.function.hasShort
5f540 63 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 cut($name).{.return.isset($this-
5f560 3e 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 >shortcuts[$name]);.}.........pu
5f580 62 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 blic.function.getOptionForShortc
5f5a0 75 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 ut($shortcut).{.return.$this->ge
5f5c0 74 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 tOption($this->shortcutToName($s
5f5e0 68 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 hortcut));.}.......public.functi
5f600 6f 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 on.getOptionDefaults().{.$values
5f620 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 6f 70 74 69 .=.array();.foreach.($this->opti
5f640 6f 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 ons.as.$option).{.$values[$optio
5f660 6e 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 n->getName()].=.$option->getDefa
5f680 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 0a 7d 0a 0a 0a 0a 0a ult();.}..return.$values;.}.....
5f6a0 0a 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 ......private.function.shortcutT
5f6c0 6f 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 oName($shortcut).{.if.(!isset($t
5f6e0 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 29 29 20 7b 0a 74 68 his->shortcuts[$shortcut])).{.th
5f700 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
5f720 6e 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 n(sprintf('The."-%s".option.does
5f740 20 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 .not.exist.',.$shortcut));.}..re
5f760 74 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 turn.$this->shortcuts[$shortcut]
5f780 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 53 79 6e ;.}.......public.function.getSyn
5f7a0 6f 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 opsis().{.$elements.=.array();.f
5f7c0 6f 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 oreach.($this->getOptions().as.$
5f7e0 6f 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 option).{.$shortcut.=.$option->g
5f800 65 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 etShortcut().?.sprintf('-%s|',.$
5f820 6f 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 option->getShortcut()).:.'';.$el
5f840 65 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 ements[].=.sprintf('['.($option-
5f860 3e 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 >isValueRequired().?.'%s--%s="..
5f880 2e 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 ."'.:.($option->isValueOptional(
5f8a0 29 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 ).?.'%s--%s[="..."]'.:.'%s--%s')
5f8c0 29 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 ).']',.$shortcut,.$option->getNa
5f8e0 6d 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 me());.}..foreach.($this->getArg
5f900 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 65 6c 65 6d 65 6e uments().as.$argument).{.$elemen
5f920 74 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 ts[].=.sprintf($argument->isRequ
5f940 69 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 ired().?.'%s'.:.'[%s]',.$argumen
5f960 74 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 t->getName().($argument->isArray
5f980 28 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 ().?.'1'.:.''));..if.($argument-
5f9a0 3e 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 >isArray()).{.$elements[].=.spri
5f9c0 6e 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 ntf('....[%sN]',.$argument->getN
5f9e0 61 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 ame());.}.}..return.implode('.',
5fa00 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$elements);.}.......public.func
5fa20 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 0a 20 24 6d 61 78 20 3d 20 30 3b 0a 66 6f 72 65 tion.asText().{...$max.=.0;.fore
5fa40 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 70 74 ach.($this->getOptions().as.$opt
5fa60 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 70 74 ion).{.$nameLength.=.strlen($opt
5fa80 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 6f 6e ion->getName()).+.2;.if.($option
5faa0 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 20 2b ->getShortcut()).{.$nameLength.+
5fac0 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 29 29 =.strlen($option->getShortcut())
5fae0 20 2b 20 33 3b 0a 7d 0a 0a 24 6d 61 78 20 3d 20 6d 61 78 28 24 6d 61 78 2c 20 24 6e 61 6d 65 4c .+.3;.}..$max.=.max($max,.$nameL
5fb00 65 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 ength);.}.foreach.($this->getArg
5fb20 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 6d 61 78 20 3d 20 uments().as.$argument).{.$max.=.
5fb40 6d 61 78 28 24 6d 61 78 2c 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e max($max,.strlen($argument->getN
5fb60 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6d 61 78 3b 0a 0a 24 74 65 78 74 20 3d 20 61 72 72 61 ame()));.}.++$max;..$text.=.arra
5fb80 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 y();..if.($this->getArguments())
5fba0 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 .{.$text[].=.'<comment>Arguments
5fbc0 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 :</comment>';.foreach.($this->ge
5fbe0 74 41 72 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 69 66 20 tArguments().as.$argument).{.if.
5fc00 28 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 (null.!==.$argument->getDefault(
5fc20 29 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 ).&&.(!is_array($argument->getDe
5fc40 66 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 fault()).||.count($argument->get
5fc60 44 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 Default()))).{.$default.=.sprint
5fc80 66 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 f('<comment>.(default:.%s)</comm
5fca0 65 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 ent>',.$this->formatDefaultValue
5fcc0 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 29 3b 0a 7d 20 65 6c ($argument->getDefault()));.}.el
5fce0 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 se.{.$default.=.'';.}..$descript
5fd00 69 6f 6e 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 ion.=.str_replace("\n",."\n".str
5fd20 5f 70 61 64 28 27 27 2c 20 24 6d 61 78 20 2b 20 32 2c 20 27 20 27 29 2c 20 24 61 72 67 75 6d 65 _pad('',.$max.+.2,.'.'),.$argume
5fd40 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 0a 24 74 65 78 74 5b 5d 20 nt->getDescription());..$text[].
5fd60 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 7b 6d 61 78 7d 73 3c 2f 69 6e 66 =.sprintf(".<info>%-${max}s</inf
5fd80 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 o>.%s%s",.$argument->getName(),.
5fda0 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 24 74 65 78 $description,.$default);.}..$tex
5fdc0 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f t[].=.'';.}..if.($this->getOptio
5fde0 6e 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 ns()).{.$text[].=.'<comment>Opti
5fe00 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ons:</comment>';..foreach.($this
5fe20 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 69 66 20 ->getOptions().as.$option).{.if.
5fe40 28 24 6f 70 74 69 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 ($option->acceptValue().&&.null.
5fe60 21 3d 3d 20 24 6f 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 !==.$option->getDefault().&&.(!i
5fe80 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 29 20 7c s_array($option->getDefault()).|
5fea0 7c 20 63 6f 75 6e 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 |.count($option->getDefault())))
5fec0 20 7b 0a 24 64 65 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 .{.$default.=.sprintf('<comment>
5fee0 20 28 64 65 66 61 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 .(default:.%s)</comment>',.$this
5ff00 2d 3e 66 6f 72 6d 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 ->formatDefaultValue($option->ge
5ff20 74 44 65 66 61 75 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 tDefault()));.}.else.{.$default.
5ff40 3d 20 27 27 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 70 6c 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 =.'';.}..$multiple.=.$option->is
5ff60 41 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 Array().?.'<comment>.(multiple.v
5ff80 61 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 3b 0a alues.allowed)</comment>'.:.'';.
5ffa0 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c $description.=.str_replace("\n",
5ffc0 20 22 5c 6e 22 2e 73 74 72 5f 70 61 64 28 27 27 2c 20 24 6d 61 78 20 2b 20 32 2c 20 27 20 27 29 ."\n".str_pad('',.$max.+.2,.'.')
5ffe0 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 0a 24 ,.$option->getDescription());..$
60000 6f 70 74 69 6f 6e 4d 61 78 20 3d 20 24 6d 61 78 20 2d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f optionMax.=.$max.-.strlen($optio
60020 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 2d 20 32 3b 0a 24 74 65 78 74 5b 5d 20 3d 20 73 70 72 n->getName()).-.2;.$text[].=.spr
60040 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6f 70 74 69 6f intf(".<info>%s</info>.%-${optio
60060 6e 4d 61 78 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 nMax}s%s%s%s",.'--'.$option->get
60080 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 74 28 29 20 3f Name(),.$option->getShortcut().?
600a0 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 3e 67 65 74 53 .sprintf('(-%s).',.$option->getS
600c0 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 hortcut()).:.'',.$description,.$
600e0 64 65 66 61 75 6c 74 2c 0a 24 6d 75 6c 74 69 70 6c 65 0a 29 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d default,.$multiple.);.}..$text[]
60100 20 3d 20 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 .=.'';.}..return.implode("\n",.$
60120 74 65 78 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 74 69 6f 6e text);.}.........public.function
60140 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 6f 6d 20 3d 20 .asXml($asDom.=.false).{.$dom.=.
60160 6e 65 77 20 5c 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 new.\DOMDocument('1.0',.'UTF-8')
60180 3b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f ;.$dom->formatOutput.=.true;.$do
601a0 6d 2d 3e 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 m->appendChild($definitionXML.=.
601c0 24 64 6f 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 $dom->createElement('definition'
601e0 29 29 3b 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 ));..$definitionXML->appendChild
60200 28 24 61 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 ($argumentsXML.=.$dom->createEle
60220 6d 65 6e 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 74 68 ment('arguments'));.foreach.($th
60240 69 73 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 6e 74 29 is->getArguments().as.$argument)
60260 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 .{.$argumentsXML->appendChild($a
60280 72 67 75 6d 65 6e 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 rgumentXML.=.$dom->createElement
602a0 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 ('argument'));.$argumentXML->set
602c0 41 74 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 Attribute('name',.$argument->get
602e0 4e 61 6d 65 28 29 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 Name());.$argumentXML->setAttrib
60300 75 74 65 28 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 ute('is_required',.$argument->is
60320 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d Required().?.1.:.0);.$argumentXM
60340 4c 2d 3e 73 65 74 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 L->setAttribute('is_array',.$arg
60360 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 61 72 67 75 ument->isArray().?.1.:.0);.$argu
60380 6d 65 6e 74 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 mentXML->appendChild($descriptio
603a0 6e 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 64 65 73 63 nXML.=.$dom->createElement('desc
603c0 72 69 70 74 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 ription'));.$descriptionXML->app
603e0 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 24 61 endChild($dom->createTextNode($a
60400 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 29 29 3b 0a 0a 24 61 rgument->getDescription()));..$a
60420 72 67 75 6d 65 6e 74 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 rgumentXML->appendChild($default
60440 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 74 28 27 64 65 66 61 sXML.=.$dom->createElement('defa
60460 75 6c 74 73 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 ults'));.$defaults.=.is_array($a
60480 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 rgument->getDefault()).?.$argume
604a0 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 nt->getDefault().:.(is_bool($arg
604c0 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 ument->getDefault()).?.array(var
604e0 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 75 6c 74 28 29 2c _export($argument->getDefault(),
60500 20 74 72 75 65 29 29 20 3a 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 .true)).:.($argument->getDefault
60520 28 29 20 3f 20 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 ().?.array($argument->getDefault
60540 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 ()).:.array()));.foreach.($defau
60560 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 58 4d 4c 2d lts.as.$default).{.$defaultsXML-
60580 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 64 6f 6d 2d >appendChild($defaultXML.=.$dom-
605a0 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 24 64 65 66 >createElement('default'));.$def
605c0 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 72 65 61 74 aultXML->appendChild($dom->creat
605e0 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 0a 24 64 65 66 69 eTextNode($default));.}.}..$defi
60600 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 73 58 nitionXML->appendChild($optionsX
60620 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 6f 70 74 69 6f 6e ML.=.$dom->createElement('option
60640 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 s'));.foreach.($this->getOptions
60660 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 58 4d 4c 2d 3e 61 70 ().as.$option).{.$optionsXML->ap
60680 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 pendChild($optionXML.=.$dom->cre
606a0 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 70 74 69 6f 6e 58 4d ateElement('option'));.$optionXM
606c0 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 27 2e 24 6f 70 L->setAttribute('name',.'--'.$op
606e0 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 tion->getName());.$optionXML->se
60700 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 6e 2d 3e tAttribute('shortcut',.$option->
60720 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 67 65 74 getShortcut().?.'-'.$option->get
60740 53 68 6f 72 74 63 75 74 28 29 20 3a 20 27 27 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 Shortcut().:.'');.$optionXML->se
60760 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 24 6f 70 74 69 tAttribute('accept_value',.$opti
60780 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 0a 24 6f 70 74 on->acceptValue().?.1.:.0);.$opt
607a0 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 ionXML->setAttribute('is_value_r
607c0 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 65 71 75 69 72 equired',.$option->isValueRequir
607e0 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 ed().?.1.:.0);.$optionXML->setAt
60800 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 69 6f 6e 2d 3e tribute('is_multiple',.$option->
60820 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e isArray().?.1.:.0);.$optionXML->
60840 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 64 appendChild($descriptionXML.=.$d
60860 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 29 om->createElement('description')
60880 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 28 );.$descriptionXML->appendChild(
608a0 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 6e 2d 3e 67 65 $dom->createTextNode($option->ge
608c0 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 69 6f 6e 2d 3e tDescription()));..if.($option->
608e0 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 acceptValue()).{.$optionXML->app
60900 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 72 endChild($defaultsXML.=.$dom->cr
60920 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 64 65 66 61 75 eateElement('defaults'));.$defau
60940 6c 74 73 20 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 lts.=.is_array($option->getDefau
60960 6c 74 28 29 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 lt()).?.$option->getDefault().:.
60980 28 69 73 5f 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 (is_bool($option->getDefault()).
609a0 3f 20 61 72 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 ?.array(var_export($option->getD
609c0 65 66 61 75 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 efault(),.true)).:.($option->get
609e0 44 65 66 61 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 Default().?.array($option->getDe
60a00 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 fault()).:.array()));.foreach.($
60a20 64 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 defaults.as.$default).{.$default
60a40 73 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 sXML->appendChild($defaultXML.=.
60a60 24 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 $dom->createElement('default'));
60a80 0a 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 .$defaultXML->appendChild($dom->
60aa0 63 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 createTextNode($default));.}.}.}
60ac0 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 ..return.$asDom.?.$dom.:.$dom->s
60ae0 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f aveXml();.}..private.function.fo
60b00 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 64 65 66 61 75 6c 74 29 0a 7b 0a 69 66 20 rmatDefaultValue($default).{.if.
60b20 28 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 20 26 26 20 24 64 65 66 61 75 6c 74 20 (is_array($default).&&.$default.
60b40 3d 3d 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 72 65 ===.array_values($default)).{.re
60b60 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 61 72 72 61 79 28 27 25 73 27 29 22 2c 20 69 6d 70 6c turn.sprintf("array('%s')",.impl
60b80 6f 64 65 28 22 27 2c 20 27 22 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 ode("',.'",.$default));.}..retur
60ba0 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 6f n.str_replace("\n",.'',.var_expo
60bc0 72 74 28 24 64 65 66 61 75 6c 74 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a rt($default,.true));.}.}.<?php..
60be0 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
60c00 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 0a 0a 0a 0a 0a nent\Console\Input;.............
60c20 63 6c 61 73 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 41 72 67 76 49 6e class.StringInput.extends.ArgvIn
60c40 70 75 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 52 49 4e 47 20 3d 20 27 28 5b 5e 20 put.{.const.REGEX_STRING.=.'([^.
60c60 5d 2b 3f 29 28 3f 3a 20 7c 28 3f 3c 21 5c 5c 5c 5c 29 22 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c ]+?)(?:.|(?<!\\\\)"|(?<!\\\\)\'|
60c80 24 29 27 3b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d $)';.const.REGEX_QUOTED_STRING.=
60ca0 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d .'(?:"([^"\\\\]*(?:\\\\.[^"\\\\]
60cc0 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c *)*)"|\'([^\'\\\\]*(?:\\\\.[^\'\
60ce0 5c 5c 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 \\\]*)*)\')';..........public.fu
60d00 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 nction.__construct($input,.Input
60d20 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b Definition.$definition.=.null).{
60d40 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 24 64 .parent::__construct(array(),.$d
60d60 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 6f 6b 65 6e 73 28 24 74 efinition);..$this->setTokens($t
60d80 68 69 73 2d 3e 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a his->tokenize($input));.}.......
60da0 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 24 69 ....private.function.tokenize($i
60dc0 6e 70 75 74 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f nput).{.$input.=.preg_replace('/
60de0 28 5c 72 5c 6e 7c 5c 72 7c 5c 6e 7c 5c 74 29 2f 27 2c 20 27 20 27 2c 20 24 69 6e 70 75 74 29 3b (\r\n|\r|\n|\t)/',.'.',.$input);
60e00 0a 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 ..$tokens.=.array();.$length.=.s
60e20 74 72 6c 65 6e 28 24 69 6e 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 3d 20 30 3b 0a 77 68 69 6c trlen($input);.$cursor.=.0;.whil
60e40 65 20 28 24 63 75 72 73 6f 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 70 72 65 67 e.($cursor.<.$length).{.if.(preg
60e60 5f 6d 61 74 63 68 28 27 2f 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c _match('/\s+/A',.$input,.$match,
60e80 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 .null,.$cursor)).{.}.elseif.(pre
60ea0 67 5f 6d 61 74 63 68 28 27 2f 28 5b 5e 3d 22 5c 27 20 5d 2b 3f 29 28 3d 3f 29 28 27 2e 73 65 6c g_match('/([^="\'.]+?)(=?)('.sel
60ec0 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2b 29 2f 41 27 2c 20 24 f::REGEX_QUOTED_STRING.'+)/A',.$
60ee0 69 6e 70 75 74 2c 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 input,.$match,.null,.$cursor)).{
60f00 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 24 6d 61 74 63 68 5b 32 5d .$tokens[].=.$match[1].$match[2]
60f20 2e 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 .stripcslashes(str_replace(array
60f40 28 27 22 5c 27 27 2c 20 27 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c 20 27 22 22 27 29 2c 20 27 27 ('"\'',.'\'"',.'\'\'',.'""'),.''
60f60 2c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d ,.substr($match[3],.1,.strlen($m
60f80 61 74 63 68 5b 33 5d 29 20 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f atch[3]).-.2)));.}.elseif.(preg_
60fa0 6d 61 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 match('/'.self::REGEX_QUOTED_STR
60fc0 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 75 6c 6c 2c 20 ING.'/A',.$input,.$match,.null,.
60fe0 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 69 70 63 73 6c $cursor)).{.$tokens[].=.stripcsl
61000 61 73 68 65 73 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 31 2c 20 73 74 72 6c 65 ashes(substr($match[0],.1,.strle
61020 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 n($match[0]).-.2));.}.elseif.(pr
61040 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 53 54 52 49 4e 47 2e eg_match('/'.self::REGEX_STRING.
61060 27 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 75 72 '/A',.$input,.$match,.null,.$cur
61080 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 sor)).{.$tokens[].=.stripcslashe
610a0 73 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 s($match[1]);.}.else.{.....throw
610c0 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
610e0 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 69 6e 70 75 74 20 6e 65 printf('Unable.to.parse.input.ne
61100 61 72 20 22 2e 2e 2e 20 25 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c ar."....%s...."',.substr($input,
61120 20 24 63 75 72 73 6f 72 2c 20 31 30 29 29 29 3b 0a 0a 20 7d 0a 0a 24 63 75 72 73 6f 72 20 2b 3d .$cursor,.10)));...}..$cursor.+=
61140 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 .strlen($match[0]);.}..return.$t
61160 6f 6b 65 6e 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 okens;.}.}.<?php...........names
61180 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 49 pace.Symfony\Component\Console\I
611a0 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 4f 70 74 69 6f 6e 0a nput;.........class.InputOption.
611c0 7b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 41 {.const.VALUE_NONE.=.1;.const.VA
611e0 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4f 50 LUE_REQUIRED.=.2;.const.VALUE_OP
61200 54 49 4f 4e 41 4c 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 TIONAL.=.4;.const.VALUE_IS_ARRAY
61220 20 3d 20 38 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 24 73 .=.8;..private.$name;.private.$s
61240 68 6f 72 74 63 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 hortcut;.private.$mode;.private.
61260 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a $default;.private.$description;.
61280 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 5f 5f ..............public.function.__
612a0 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c construct($name,.$shortcut.=.nul
612c0 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 20 l,.$mode.=.null,.$description.=.
612e0 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d '',.$default.=.null).{.if.(0.===
61300 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 .strpos($name,.'--')).{.$name.=.
61320 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 substr($name,.2);.}..if.(empty($
61340 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 72 67 75 6d name)).{.throw.new.\InvalidArgum
61360 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 20 63 61 6e entException('An.option.name.can
61380 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 not.be.empty.');.}..if.(empty($s
613a0 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a hortcut)).{.$shortcut.=.null;.}.
613c0 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 27 .if.(null.!==.$shortcut).{.if.('
613e0 2d 27 20 3d 3d 3d 20 24 73 68 6f 72 74 63 75 74 5b 30 5d 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 -'.===.$shortcut[0]).{.$shortcut
61400 20 3d 20 73 75 62 73 74 72 28 24 73 68 6f 72 74 63 75 74 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 .=.substr($shortcut,.1);.}..if.(
61420 65 6d 70 74 79 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 49 empty($shortcut)).{.throw.new.\I
61440 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 6e 20 6f 70 74 69 nvalidArgumentException('An.opti
61460 6f 6e 20 73 68 6f 72 74 63 75 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a on.shortcut.cannot.be.empty.');.
61480 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 }.}..if.(null.===.$mode).{.$mode
614a0 20 3d 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .=.self::VALUE_NONE;.}.elseif.(!
614c0 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 is_int($mode).||.$mode.>.15.||.$
614e0 6d 6f 64 65 20 3c 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 mode.<.1).{.throw.new.\InvalidAr
61500 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 4f 70 74 69 6f 6e 20 gumentException(sprintf('Option.
61520 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 mode."%s".is.not.valid.',.$mode)
61540 29 3b 0a 7d 0a 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 );.}..$this->name.=.$name;.$this
61560 2d 3e 73 68 6f 72 74 63 75 74 20 3d 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d ->shortcut.=.$shortcut;.$this->m
61580 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 ode.=.$mode;.$this->description.
615a0 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 =.$description;..if.($this->isAr
615c0 72 61 79 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 ray().&&.!$this->acceptValue()).
615e0 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
61600 70 74 69 6f 6e 28 27 49 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 ption('Impossible.to.have.an.opt
61620 69 6f 6e 20 6d 6f 64 65 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f ion.mode.VALUE_IS_ARRAY.if.the.o
61640 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 2e 27 29 ption.does.not.accept.a.value.')
61660 3b 0a 7d 0a 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 ;.}..$this->setDefault($default)
61680 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 53 68 6f ;.}.......public.function.getSho
616a0 72 74 63 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 rtcut().{.return.$this->shortcut
616c0 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 4e 61 6d ;.}.......public.function.getNam
616e0 65 28 29 0a 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 e().{.return.$this->name;.}.....
61700 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a ..public.function.acceptValue().
61720 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 {.return.$this->isValueRequired(
61740 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d ).||.$this->isValueOptional();.}
61760 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 61 6c 75 65 52 65 .......public.function.isValueRe
61780 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 quired().{.return.self::VALUE_RE
617a0 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 QUIRED.===.(self::VALUE_REQUIRED
617c0 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 75 62 6c 69 63 20 .&.$this->mode);.}.......public.
617e0 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 function.isValueOptional().{.ret
61800 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 urn.self::VALUE_OPTIONAL.===.(se
61820 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 lf::VALUE_OPTIONAL.&.$this->mode
61840 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 41 72 72 );.}.......public.function.isArr
61860 61 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 ay().{.return.self::VALUE_IS_ARR
61880 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 AY.===.(self::VALUE_IS_ARRAY.&.$
618a0 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->mode);.}.........public.fu
618c0 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c nction.setDefault($default.=.nul
618e0 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 l).{.if.(self::VALUE_NONE.===.(s
61900 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 elf::VALUE_NONE.&.$this->mode).&
61920 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 &.null.!==.$default).{.throw.new
61940 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 .\LogicException('Cannot.set.a.d
61960 65 66 61 75 6c 74 20 76 61 6c 75 65 20 77 68 65 6e 20 75 73 69 6e 67 20 4f 70 74 69 6f 6e 3a 3a efault.value.when.using.Option::
61980 56 41 4c 55 45 5f 4e 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 VALUE_NONE.mode.');.}..if.($this
619a0 2d 3e 69 73 41 72 72 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 ->isArray()).{.if.(null.===.$def
619c0 61 75 6c 74 29 20 7b 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 ault).{.$default.=.array();.}.el
619e0 73 65 69 66 20 28 21 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 seif.(!is_array($default)).{.thr
61a00 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 64 65 66 61 75 6c ow.new.\LogicException('A.defaul
61a20 74 20 76 61 6c 75 65 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 t.value.for.an.array.option.must
61a40 20 62 65 20 61 6e 20 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 .be.an.array.');.}.}..$this->def
61a60 61 75 6c 74 20 3d 20 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 ault.=.$this->acceptValue().?.$d
61a80 65 66 61 75 6c 74 20 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 efault.:.false;.}.......public.f
61aa0 75 6e 63 74 69 6f 6e 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 unction.getDefault().{.return.$t
61ac0 68 69 73 2d 3e 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 his->default;.}.......public.fun
61ae0 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 72 6e 20 ction.getDescription().{.return.
61b00 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 0a 0a 0a 70 75 62 $this->description;.}........pub
61b20 6c 69 63 20 66 75 6e 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 lic.function.equals(InputOption.
61b40 24 6f 70 74 69 6f 6e 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 $option).{.return.$option->getNa
61b60 6d 65 28 29 20 3d 3d 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 me().===.$this->getName().&&.$op
61b80 74 69 6f 6e 2d 3e 67 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 tion->getShortcut().===.$this->g
61ba0 65 74 53 68 6f 72 74 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 etShortcut().&&.$option->getDefa
61bc0 75 6c 74 28 29 20 3d 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 ult().===.$this->getDefault().&&
61be0 20 24 6f 70 74 69 6f 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 .$option->isArray().===.$this->i
61c00 73 41 72 72 61 79 28 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 sArray().&&.$option->isValueRequ
61c20 69 72 65 64 28 29 20 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 ired().===.$this->isValueRequire
61c40 64 28 29 0a 26 26 20 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 d().&&.$option->isValueOptional(
61c60 29 20 3d 3d 3d 20 24 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 ).===.$this->isValueOptional().;
61c80 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
61ca0 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;.
61cc0 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b ......interface.InputInterface.{
61ce0 0a 0a 0a 0a 0a 0a 66 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 ......function.getFirstArgument(
61d00 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 );............function.hasParame
61d20 74 65 72 4f 70 74 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 terOption($values);.............
61d40 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 6c function.getParameterOption($val
61d60 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 66 75 ues,.$default.=.false);.......fu
61d80 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 nction.bind(InputDefinition.$def
61da0 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 inition);.........function.valid
61dc0 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e ate();.......function.getArgumen
61de0 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 ts();.........function.getArgume
61e00 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 nt($name);..........function.set
61e20 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 0a 0a 0a 0a Argument($name,.$value);........
61e40 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a .function.hasArgument($name);...
61e60 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a ....function.getOptions();......
61e80 0a 0a 0a 66 75 6e 63 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 ...function.getOption($name);...
61ea0 0a 0a 0a 0a 0a 0a 0a 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 .......function.setOption($name,
61ec0 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 .$value);.........function.hasOp
61ee0 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e tion($name);.......function.isIn
61f00 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 teractive();.......function.setI
61f20 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f 70 68 nteractive($interactive);.}.<?ph
61f40 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
61f60 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 0a 0a mponent\Console\Input;..........
61f80 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 ...class.ArrayInput.extends.Inpu
61fa0 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a t.{.private.$parameters;........
61fc0 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 72 ..public.function.__construct(ar
61fe0 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e ray.$parameters,.InputDefinition
62000 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 .$definition.=.null).{.$this->pa
62020 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a rameters.=.$parameters;..parent:
62040 3a 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 0a 0a :__construct($definition);.}....
62060 0a 0a 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 ...public.function.getFirstArgum
62080 65 6e 74 28 29 0a 7b 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 ent().{.foreach.($this->paramete
620a0 72 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 24 6b 65 79 rs.as.$key.=>.$value).{.if.($key
620c0 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b .&&.'-'.===.$key[0]).{.continue;
620e0 0a 7d 0a 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 0a 0a 0a .}..return.$value;.}.}..........
62100 0a 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 ..public.function.hasParameterOp
62120 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 tion($values).{.$values.=.(array
62140 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 3e 70 61 72 61 ).$values;..foreach.($this->para
62160 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 21 69 73 5f 69 6e meters.as.$k.=>.$v).{.if.(!is_in
62180 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 t($k)).{.$v.=.$k;.}..if.(in_arra
621a0 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d y($v,.$values)).{.return.true;.}
621c0 0a 7d 0a 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 0a 0a 0a 0a .}..return.false;.}.............
621e0 70 75 62 6c 69 63 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 public.function.getParameterOpti
62200 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a on($values,.$default.=.false).{.
62220 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 0a 66 6f 72 65 $values.=.(array).$values;..fore
62240 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 20 3d 3e 20 ach.($this->parameters.as.$k.=>.
62260 24 76 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 20 26 26 20 69 6e 5f 61 72 72 61 79 $v).{.if.(is_int($k).&&.in_array
62280 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 20 ($v,.$values)).{.return.true;.}.
622a0 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b elseif.(in_array($k,.$values)).{
622c0 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 .return.$v;.}.}..return.$default
622e0 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 73 65 ;.}.....protected.function.parse
62300 28 29 0a 7b 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 ().{.foreach.($this->parameters.
62320 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 30 20 3d 3d 3d 20 73 as.$key.=>.$value).{.if.(0.===.s
62340 74 72 70 6f 73 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 trpos($key,.'--')).{.$this->addL
62360 6f 6e 67 4f 70 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 ongOption(substr($key,.2),.$valu
62380 65 29 3b 0a 7d 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 e);.}.elseif.('-'.===.$key[0]).{
623a0 0a 24 74 68 69 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 .$this->addShortOption(substr($k
623c0 65 79 2c 20 31 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 ey,.1),.$value);.}.else.{.$this-
623e0 3e 61 64 64 41 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 >addArgument($key,.$value);.}.}.
62400 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 53 }..........private.function.addS
62420 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 0a hortOption($shortcut,.$value).{.
62440 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 74 if.(!$this->definition->hasShort
62460 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 49 6e 76 cut($shortcut)).{.throw.new.\Inv
62480 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
624a0 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 73 74 2e 27 he."-%s".option.does.not.exist.'
624c0 2c 20 24 73 68 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 ,.$shortcut));.}..$this->addLong
624e0 4f 70 74 69 6f 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 Option($this->definition->getOpt
62500 69 6f 6e 46 6f 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 ionForShortcut($shortcut)->getNa
62520 6d 65 28 29 2c 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 me(),.$value);.}...........priva
62540 74 65 20 66 75 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 te.function.addLongOption($name,
62560 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 6f .$value).{.if.(!$this->definitio
62580 6e 2d 3e 68 61 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 n->hasOption($name)).{.throw.new
625a0 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
625c0 74 66 28 27 54 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 tf('The."--%s".option.does.not.e
625e0 78 69 73 74 2e 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 xist.',.$name));.}..$option.=.$t
62600 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 28 24 6e 61 6d 65 his->definition->getOption($name
62620 29 3b 0a 0a 69 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 );..if.(null.===.$value).{.if.($
62640 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 29 20 7b 0a 74 68 72 option->isValueRequired()).{.thr
62660 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
62680 28 73 70 72 69 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 (sprintf('The."--%s".option.requ
626a0 69 72 65 73 20 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 ires.a.value.',.$name));.}..$val
626c0 75 65 20 3d 20 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 ue.=.$option->isValueOptional().
626e0 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 74 72 75 65 3b 0a ?.$option->getDefault().:.true;.
62700 7d 0a 0a 24 74 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 }..$this->options[$name].=.$valu
62720 65 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 20 61 e;.}..........private.function.a
62740 64 64 41 72 67 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 ddArgument($name,.$value).{.if.(
62760 21 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 74 28 !$this->definition->hasArgument(
62780 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 72 67 75 $name)).{.throw.new.\InvalidArgu
627a0 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 25 73 22 20 mentException(sprintf('The."%s".
627c0 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 20 24 6e 61 6d 65 argument.does.not.exist.',.$name
627e0 29 29 3b 0a 7d 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 ));.}..$this->arguments[$name].=
62800 20 24 76 61 6c 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 .$value;.}.}.<?php...........nam
62820 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 65 espace.Symfony\Component\Console
62840 5c 49 6e 70 75 74 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 \Input;.........................
62860 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 67 76 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 ....class.ArgvInput.extends.Inpu
62880 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 t.{.private.$tokens;.private.$pa
628a0 72 73 65 64 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 rsed;..........public.function._
628c0 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 _construct(array.$argv.=.null,.I
628e0 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 20 3d 20 6e 75 6c nputDefinition.$definition.=.nul
62900 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 l).{.if.(null.===.$argv).{.$argv
62920 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f .=.$_SERVER['argv'];.}....array_
62940 73 68 69 66 74 28 24 61 72 67 76 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 shift($argv);..$this->tokens.=.$
62960 61 72 67 76 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 argv;..parent::__construct($defi
62980 6e 69 74 69 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 73 nition);.}..protected.function.s
629a0 65 74 54 6f 6b 65 6e 73 28 61 72 72 61 79 20 24 74 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d etTokens(array.$tokens).{.$this-
629c0 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 >tokens.=.$tokens;.}.....protect
629e0 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 ed.function.parse().{.$parseOpti
62a00 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 ons.=.true;.$this->parsed.=.$thi
62a20 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 s->tokens;.while.(null.!==.$toke
62a40 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 n.=.array_shift($this->parsed)).
62a60 7b 0a 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f {.if.($parseOptions.&&.''.==.$to
62a80 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b ken).{.$this->parseArgument($tok
62aa0 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 en);.}.elseif.($parseOptions.&&.
62ac0 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 '--'.==.$token).{.$parseOptions.
62ae0 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 =.false;.}.elseif.($parseOptions
62b00 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 .&&.0.===.strpos($token,.'--')).
62b20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 {.$this->parseLongOption($token)
62b40 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 ;.}.elseif.($parseOptions.&&.'-'
62b60 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 .===.$token[0]).{.$this->parseSh
62b80 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 ortOption($token);.}.else.{.$thi
62ba0 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d 0a s->parseArgument($token);.}.}.}.
62bc0 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 6f 72 ......private.function.parseShor
62be0 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 tOption($token).{.$name.=.substr
62c00 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 ($token,.1);..if.(strlen($name).
62c20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 >.1).{.if.($this->definition->ha
62c40 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 sShortcut($name[0]).&&.$this->de
62c60 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 finition->getOptionForShortcut($
62c80 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 68 name[0])->acceptValue()).{...$th
62ca0 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 62 is->addShortOption($name[0],.sub
62cc0 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e str($name,.1));.}.else.{.$this->
62ce0 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 20 parseShortOptionSet($name);.}.}.
62d00 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 else.{.$this->addShortOption($na
62d20 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 me,.null);.}.}.........private.f
62d40 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d unction.parseShortOptionSet($nam
62d60 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 28 e).{.$len.=.strlen($name);.for.(
62d80 24 69 20 3d 20 30 3b 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 $i.=.0;.$i.<.$len;.$i++).{.if.(!
62da0 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($
62dc0 6e 61 6d 65 5b 24 69 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 name[$i])).{.throw.new.\RuntimeE
62de0 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 22 20 6f 70 74 69 xception(sprintf('The."-%s".opti
62e00 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 5b 24 69 5d 29 29 on.does.not.exist.',.$name[$i]))
62e20 3b 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 ;.}..$option.=.$this->definition
62e40 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d ->getOptionForShortcut($name[$i]
62e60 29 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b );.if.($option->acceptValue()).{
62e80 0a 24 74 68 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 .$this->addLongOption($option->g
62ea0 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c 6c etName(),.$i.===.$len.-.1.?.null
62ec0 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 61 .:.substr($name,.$i.+.1));..brea
62ee0 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e k;.}.else.{.$this->addLongOption
62f00 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a ($option->getName(),.true);.}.}.
62f20 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 70 61 72 73 65 4c 6f }.......private.function.parseLo
62f40 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 ngOption($token).{.$name.=.subst
62f60 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f r($token,.2);..if.(false.!==.$po
62f80 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d s.=.strpos($name,.'=')).{.$this-
62fa0 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 >addLongOption(substr($name,.0,.
62fc0 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 3b $pos),.substr($name,.$pos.+.1));
62fe0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 .}.else.{.$this->addLongOption($
63000 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 name,.null);.}.}.........private
63020 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 0a .function.parseArgument($token).
63040 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a {.$c.=.count($this->arguments);.
63060 0a 0a 20 69 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 ...if.($this->definition->hasArg
63080 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e ument($c)).{.$arg.=.$this->defin
630a0 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e 61 ition->getArgument($c);.$this->a
630c0 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 rguments[$arg->getName()].=.$arg
630e0 2d 3e 69 73 41 72 72 61 79 28 29 3f 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 74 6f ->isArray()?.array($token).:.$to
63100 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 ken;....}.elseif.($this->definit
63120 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 68 69 ion->hasArgument($c.-.1).&&.$thi
63140 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 63 20 2d 20 s->definition->getArgument($c.-.
63160 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 1)->isArray()).{.$arg.=.$this->d
63180 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 3b 0a efinition->getArgument($c.-.1);.
631a0 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 $this->arguments[$arg->getName()
631c0 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 ][].=.$token;....}.else.{.throw.
631e0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 new.\RuntimeException('Too.many.
63200 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 arguments.');.}.}..........priva
63220 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 te.function.addShortOption($shor
63240 74 63 75 74 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 tcut,.$value).{.if.(!$this->defi
63260 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 nition->hasShortcut($shortcut)).
63280 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 70 {.throw.new.\RuntimeException(sp
632a0 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 6e 6f 74 rintf('The."-%s".option.does.not
632c0 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 24 74 68 69 73 2d .exist.',.$shortcut));.}..$this-
632e0 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e >addLongOption($this->definition
63300 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 ->getOptionForShortcut($shortcut
63320 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a )->getName(),.$value);.}........
63340 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e ..private.function.addLongOption
63360 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 73 2d 3e 64 65 ($name,.$value).{.if.(!$this->de
63380 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 29 20 7b 0a 74 68 finition->hasOption($name)).{.th
633a0 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
633c0 66 28 27 54 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 f('The."--%s".option.does.not.ex
633e0 69 73 74 2e 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 ist.',.$name));.}..$option.=.$th
63400 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)
63420 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 24 6f 70 74 69 6f ;..if.(null.===.$value.&&.$optio
63440 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 n->acceptValue()).{.....$next.=.
63460 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 3b 0a 69 66 20 28 array_shift($this->parsed);.if.(
63480 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
634a0 78 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 xt;.}.else.{.array_unshift($this
634c0 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 20 28 6e 75 6c 6c 20 ->parsed,.$next);.}.}..if.(null.
634e0 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 2d 3e 69 73 56 61 6c ===.$value).{.if.($option->isVal
63500 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 20 5c 52 75 6e 74 69 ueRequired()).{.throw.new.\Runti
63520 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 22 20 meException(sprintf('The."--%s".
63540 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 2c 20 24 6e 61 6d 65 option.requires.a.value.',.$name
63560 29 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 ));.}..$value.=.$option->isValue
63580 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 6c 74 Optional().?.$option->getDefault
635a0 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 ().:.true;.}..if.($option->isArr
635c0 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 5d 5b 5d 20 ay()).{.$this->options[$name][].
635e0 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 74 69 6f 6e =.$value;.}.else.{.$this->option
63600 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 0a 70 75 62 s[$name].=.$value;.}.}.......pub
63620 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 74 28 29 0a lic.function.getFirstArgument().
63640 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 24 74 6f 6b {.foreach.($this->tokens.as.$tok
63660 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 24 74 6f 6b en).{.if.($token.&&.'-'.===.$tok
63680 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 20 24 74 6f en[0]).{.continue;.}..return.$to
636a0 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 75 6e 63 74 ken;.}.}............public.funct
636c0 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 73 29 0a ion.hasParameterOption($values).
636e0 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 0a 66 6f {.$values.=.(array).$values;..fo
63700 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 76 29 20 7b 0a 69 66 reach.($this->tokens.as.$v).{.if
63720 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 .(in_array($v,.$values)).{.retur
63740 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a n.true;.}.}..return.false;.}....
63760 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 72 61 .........public.function.getPara
63780 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 meterOption($values,.$default.=.
637a0 66 61 6c 73 65 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 false).{.$values.=.(array).$valu
637c0 65 73 3b 0a 0a 24 74 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 es;..$tokens.=.$this->tokens;.wh
637e0 69 6c 65 20 28 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e ile.($token.=.array_shift($token
63800 73 29 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 s)).{.foreach.($values.as.$value
63820 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 ).{.if.(0.===.strpos($token,.$va
63840 6c 75 65 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 72 lue)).{.if.(false.!==.$pos.=.str
63860 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 74 pos($token,.'=')).{.return.subst
63880 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 61 r($token,.$pos.+.1);.}..return.a
638a0 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 75 rray_shift($tokens);.}.}.}..retu
638c0 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$default;.}.}.<?php..........
638e0 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
63900 73 6f 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 sole\Command;..use.Symfony\Compo
63920 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 69 74 69 nent\Console\Input\InputDefiniti
63940 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 6f 6c on;.use.Symfony\Component\Consol
63960 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 79 e\Input\InputOption;.use.Symfony
63980 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
639a0 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
639c0 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.
639e0 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
63a00 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
63a20 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 75 73 65 mponent\Console\Application;.use
63a40 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 65 .Symfony\Component\Console\Helpe
63a60 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 r\HelperSet;.........class.Comma
63a80 6e 64 0a 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 nd.{.private.$application;.priva
63aa0 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 3b 0a 70 72 69 76 te.$name;.private.$aliases;.priv
63ac0 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 3b 0a ate.$definition;.private.$help;.
63ae0 70 72 69 76 61 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 69 private.$description;.private.$i
63b00 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 gnoreValidationErrors;.private.$
63b20 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 3b 0a 70 72 69 applicationDefinitionMerged;.pri
63b40 76 61 74 65 20 24 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6e 6f 70 73 69 73 3b 0a 70 vate.$code;.private.$synopsis;.p
63b60 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 rivate.$helperSet;...........pub
63b80 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 65 20 3d lic.function.__construct($name.=
63ba0 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 .null).{.$this->definition.=.new
63bc0 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 .InputDefinition();.$this->ignor
63be0 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 eValidationErrors.=.false;.$this
63c00 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 20 3d 20 ->applicationDefinitionMerged.=.
63c20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b false;.$this->aliases.=.array();
63c40 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 ..if.(null.!==.$name).{.$this->s
63c60 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 etName($name);.}..$this->configu
63c80 72 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 re();..if.(!$this->name).{.throw
63ca0 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6d 6d 61 6e .new.\LogicException('The.comman
63cc0 64 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 7d 0a 0a d.name.cannot.be.empty.');.}.}..
63ce0 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 56 61 6c 69 64 .....public.function.ignoreValid
63d00 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c ationErrors().{.$this->ignoreVal
63d20 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a idationErrors.=.true;.}.........
63d40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 public.function.setApplication(A
63d60 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a pplication.$application.=.null).
63d80 7b 0a 24 74 68 69 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 {.$this->application.=.$applicat
63da0 69 6f 6e 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e ion;.if.($application).{.$this->
63dc0 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 setHelperSet($application->getHe
63de0 6c 70 65 72 53 65 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 lperSet());.}.else.{.$this->help
63e00 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 erSet.=.null;.}.}.......public.f
63e20 75 6e 63 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 unction.setHelperSet(HelperSet.$
63e40 68 65 6c 70 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 helperSet).{.$this->helperSet.=.
63e60 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $helperSet;.}.......public.funct
63e80 69 6f 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 ion.getHelperSet().{.return.$thi
63ea0 73 2d 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 s->helperSet;.}.........public.f
63ec0 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
63ee0 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;.}.........
63f00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 .public.function.isEnabled().{.r
63f20 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 eturn.true;.}.....protected.func
63f40 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tion.configure().{.}............
63f60 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 74 65 ......protected.function.execute
63f80 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
63fa0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f terface.$output).{.throw.new.\Lo
63fc0 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 6f 76 65 72 72 69 64 65 20 gicException('You.must.override.
63fe0 74 68 65 20 65 78 65 63 75 74 65 28 29 20 6d 65 74 68 6f 64 20 69 6e 20 74 68 65 20 63 6f 6e 63 the.execute().method.in.the.conc
64000 72 65 74 65 20 63 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a rete.command.class.');.}........
64020 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 70 75 protected.function.interact(Inpu
64040 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 66 61 tInterface.$input,.OutputInterfa
64060 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ce.$output).{.}...........protec
64080 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 49 6e 74 ted.function.initialize(InputInt
640a0 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.$
640c0 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 output).{.}...................pu
640e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 blic.function.run(InputInterface
64100 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
64120 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 ).{...$this->getSynopsis();....$
64140 74 68 69 73 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 this->mergeApplicationDefinition
64160 28 29 3b 0a 0a 0a 20 74 72 79 20 7b 0a 24 69 6e 70 75 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d ();....try.{.$input->bind($this-
64180 3e 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f >definition);.}.catch.(\Exceptio
641a0 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 n.$e).{.if.(!$this->ignoreValida
641c0 74 69 6f 6e 45 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 tionErrors).{.throw.$e;.}.}..$th
641e0 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b is->initialize($input,.$output);
64200 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 65 28 29 29 20 7b ..if.($input->isInteractive()).{
64220 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 .$this->interact($input,.$output
64240 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 69 66 20 28 24 );.}..$input->validate();..if.($
64260 74 68 69 73 2d 3e 63 6f 64 65 29 20 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 this->code).{.return.call_user_f
64280 75 6e 63 28 24 74 68 69 73 2d 3e 63 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 unc($this->code,.$input,.$output
642a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 6e 70 );.}..return.$this->execute($inp
642c0 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ut,.$output);.}................p
642e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 5c 43 6c 6f 73 75 72 65 20 ublic.function.setCode(\Closure.
64300 24 63 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f 64 65 3b 0a 0a 72 $code).{.$this->code.=.$code;..r
64320 65 74 75 72 6e 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 eturn.$this;.}.....private.funct
64340 69 6f 6e 20 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 29 ion.mergeApplicationDefinition()
64360 0a 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 .{.if.(null.===.$this->applicati
64380 6f 6e 20 7c 7c 20 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 on.||.true.===.$this->applicatio
643a0 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a nDefinitionMerged).{.return;.}..
643c0 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e $currentArguments.=.$this->defin
643e0 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 ition->getArguments();.$this->de
64400 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 61 70 finition->setArguments($this->ap
64420 70 6c 69 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 41 plication->getDefinition()->getA
64440 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e rguments());.$this->definition->
64460 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b addArguments($currentArguments);
64480 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 ..$this->definition->addOptions(
644a0 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f $this->application->getDefinitio
644c0 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c n()->getOptions());..$this->appl
644e0 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 74 72 75 65 3b 0a icationDefinitionMerged.=.true;.
64500 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 44 }...........public.function.setD
64520 65 66 69 6e 69 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 efinition($definition).{.if.($de
64540 66 69 6e 69 74 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 finition.instanceof.InputDefinit
64560 69 6f 6e 29 20 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 ion).{.$this->definition.=.$defi
64580 6e 69 74 69 6f 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 nition;.}.else.{.$this->definiti
645a0 6f 6e 2d 3e 73 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 on->setDefinition($definition);.
645c0 7d 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 69 74 69 6f 6e 4d }..$this->applicationDefinitionM
645e0 65 72 67 65 64 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 erged.=.false;..return.$this;.}.
64600 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 65 66 69 6e ........public.function.getDefin
64620 69 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 66 69 6e 69 74 69 ition().{.return.$this->definiti
64640 6f 6e 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 on;.}..........protected.functio
64660 6e 20 67 65 74 4e 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 n.getNativeDefinition().{.return
64680 20 24 74 68 69 73 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 .$this->getDefinition();.}......
646a0 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 41 72 67 75 6d ........public.function.addArgum
646c0 65 6e 74 28 24 6e 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 ent($name,.$mode.=.null,.$descri
646e0 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 24 ption.=.'',.$default.=.null).{.$
64700 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 28 6e 65 this->definition->addArgument(ne
64720 77 20 49 6e 70 75 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 w.InputArgument($name,.$mode,.$d
64740 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.
64760 24 74 68 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 $this;.}...............public.fu
64780 6e 63 74 69 6f 6e 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 nction.addOption($name,.$shortcu
647a0 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 69 70 t.=.null,.$mode.=.null,.$descrip
647c0 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 24 74 tion.=.'',.$default.=.null).{.$t
647e0 68 69 73 2d 3e 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 his->definition->addOption(new.I
64800 6e 70 75 74 4f 70 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 nputOption($name,.$shortcut,.$mo
64820 64 65 2c 20 24 64 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 de,.$description,.$default));..r
64840 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 0a 0a 0a 0a 0a eturn.$this;.}..................
64860 70 75 62 6c 69 63 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 public.function.setName($name).{
64880 0a 24 74 68 69 73 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 .$this->validateName($name);..$t
648a0 68 69 73 2d 3e 6e 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 his->name.=.$name;..return.$this
648c0 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 4e ;.}.........public.function.getN
648e0 61 6d 65 28 29 0a 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 ame().{.return.$this->name;.}...
64900 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 73 63 72 ........public.function.setDescr
64920 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 64 65 iption($description).{.$this->de
64940 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 0a 72 65 74 75 72 scription.=.$description;..retur
64960 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 69 n.$this;.}.........public.functi
64980 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 74 68 on.getDescription().{.return.$th
649a0 69 73 2d 3e 64 65 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 is->description;.}...........pub
649c0 6c 69 63 20 66 75 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 lic.function.setHelp($help).{.$t
649e0 68 69 73 2d 3e 68 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 his->help.=.$help;..return.$this
64a00 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 48 ;.}.........public.function.getH
64a20 65 6c 70 28 29 0a 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 elp().{.return.$this->help;.}...
64a40 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 72 6f 63 65 73 73 65 .....public.function.getProcesse
64a60 64 48 65 6c 70 28 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 dHelp().{.$name.=.$this->name;..
64a80 24 70 6c 61 63 65 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 $placeholders.=.array(.'%command
64aa0 2e 6e 61 6d 65 25 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 .name%',.'%command.full_name%'.)
64ac0 3b 0a 24 72 65 70 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 ;.$replacements.=.array(.$name,.
64ae0 24 5f 53 45 52 56 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 $_SERVER['PHP_SELF'].'.'.$name.)
64b00 3b 0a 0a 72 65 74 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 ;..return.str_replace($placehold
64b20 65 72 73 2c 20 24 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 ers,.$replacements,.$this->getHe
64b40 6c 70 28 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 63 74 69 lp());.}...........public.functi
64b60 6f 6e 20 73 65 74 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 on.setAliases($aliases).{.foreac
64b80 68 20 28 24 61 6c 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 h.($aliases.as.$alias).{.$this->
64ba0 76 61 6c 69 64 61 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 validateName($alias);.}..$this->
64bc0 61 6c 69 61 73 65 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 aliases.=.$aliases;..return.$thi
64be0 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
64c00 41 6c 69 61 73 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 65 Aliases().{.return.$this->aliase
64c20 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 67 65 74 53 79 s;.}.......public.function.getSy
64c40 6e 6f 70 73 69 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 73 nopsis().{.if.(null.===.$this->s
64c60 79 6e 6f 70 73 69 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 ynopsis).{.$this->synopsis.=.tri
64c80 6d 28 73 70 72 69 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 m(sprintf('%s.%s',.$this->name,.
64ca0 24 74 68 69 73 2d 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 $this->definition->getSynopsis()
64cc0 29 29 3b 0a 7d 0a 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 ));.}..return.$this->synopsis;.}
64ce0 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 67 65 74 .............public.function.get
64d00 48 65 6c 70 65 72 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 Helper($name).{.return.$this->he
64d20 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 lperSet->get($name);.}.......pub
64d40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 6d 65 73 73 61 67 65 lic.function.asText().{.$message
64d60 73 20 3d 20 61 72 72 61 79 28 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d s.=.array(.'<comment>Usage:</com
64d80 6d 65 6e 74 3e 27 2c 0a 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 ment>',.'.'.$this->getSynopsis()
64da0 2c 0a 27 27 2c 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 ,.'',.);..if.($this->getAliases(
64dc0 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 41 6c 69 )).{.$messages[].=.'<comment>Ali
64de0 61 73 65 73 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 ases:</comment>.<info>'.implode(
64e00 27 2c 20 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e ',.',.$this->getAliases()).'</in
64e20 66 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 67 65 fo>';.}..$messages[].=.$this->ge
64e40 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 54 65 78 74 28 29 3b 0a 0a tNativeDefinition()->asText();..
64e60 69 66 20 28 24 68 65 6c 70 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 if.($help.=.$this->getProcessedH
64e80 65 6c 70 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 elp()).{.$messages[].=.'<comment
64ea0 3e 48 65 6c 70 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 >Help:</comment>';.$messages[].=
64ec0 20 27 20 27 2e 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 .'.'.str_replace("\n",."\n.",.$h
64ee0 65 6c 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e elp)."\n";.}..return.implode("\n
64f00 22 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 ",.$messages);.}.........public.
64f20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b function.asXml($asDom.=.false).{
64f40 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 27 2c 20 .$dom.=.new.\DOMDocument('1.0',.
64f60 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 'UTF-8');.$dom->formatOutput.=.t
64f80 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 rue;.$dom->appendChild($commandX
64fa0 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 63 6f 6d 6d 61 6e ML.=.$dom->createElement('comman
64fc0 64 27 29 29 3b 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 d'));.$commandXML->setAttribute(
64fe0 27 69 64 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 'id',.$this->name);.$commandXML-
65000 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d >setAttribute('name',.$this->nam
65020 65 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 75 e);..$commandXML->appendChild($u
65040 73 61 67 65 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 75 sageXML.=.$dom->createElement('u
65060 73 61 67 65 27 29 29 3b 0a 24 75 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 sage'));.$usageXML->appendChild(
65080 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 74 68 $dom->createTextNode(sprintf($th
650a0 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 29 29 3b 0a 0a 24 63 6f 6d 6d is->getSynopsis(),.'')));..$comm
650c0 61 6e 64 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 andXML->appendChild($description
650e0 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 64 65 73 63 72 XML.=.$dom->createElement('descr
65100 69 70 74 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 iption'));.$descriptionXML->appe
65120 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 73 74 72 ndChild($dom->createTextNode(str
65140 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 _replace("\n",."\n.",.$this->get
65160 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e Description())));..$commandXML->
65180 61 70 70 65 6e 64 43 68 69 6c 64 28 24 68 65 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 appendChild($helpXML.=.$dom->cre
651a0 61 74 65 45 6c 65 6d 65 6e 74 28 27 68 65 6c 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d 3e 61 ateElement('help'));.$helpXML->a
651c0 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(
651e0 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 74 68 69 73 2d 3e str_replace("\n",."\n.",.$this->
65200 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 getProcessedHelp())));..$command
65220 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 XML->appendChild($aliasesXML.=.$
65240 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 65 73 27 29 29 3b 0a dom->createElement('aliases'));.
65260 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 foreach.($this->getAliases().as.
65280 24 61 6c 69 61 73 29 20 7b 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 $alias).{.$aliasesXML->appendChi
652a0 6c 64 28 24 61 6c 69 61 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 ld($aliasXML.=.$dom->createEleme
652c0 6e 74 28 27 61 6c 69 61 73 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 nt('alias'));.$aliasXML->appendC
652e0 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 61 6c 69 61 73 hild($dom->createTextNode($alias
65300 29 29 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e ));.}..$definition.=.$this->getN
65320 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 3b 0a ativeDefinition()->asXml(true);.
65340 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 3e 69 $commandXML->appendChild($dom->i
65360 6d 70 6f 72 74 4e 6f 64 65 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e mportNode($definition->getElemen
65380 74 73 42 79 54 61 67 4e 61 6d 65 28 27 61 72 67 75 6d 65 6e 74 73 27 29 2d 3e 69 74 65 6d 28 30 tsByTagName('arguments')->item(0
653a0 29 2c 20 74 72 75 65 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 ),.true));.$commandXML->appendCh
653c0 69 6c 64 28 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 64 65 66 69 6e 69 74 69 6f 6e ild($dom->importNode($definition
653e0 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 6f 70 74 69 6f 6e 73 27 ->getElementsByTagName('options'
65400 29 2d 3e 69 74 65 6d 28 30 29 2c 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 )->item(0),.true));..return.$asD
65420 6f 6d 20 3f 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a om.?.$dom.:.$dom->saveXml();.}..
65440 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 4e 61 6d 65 28 24 6e private.function.validateName($n
65460 61 6d 65 29 0a 7b 0a 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 ame).{.if.(!preg_match('/^[^\:]+
65480 28 5c 3a 5b 5e 5c 3a 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 (\:[^\:]+)*$/',.$name)).{.throw.
654a0 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
654c0 72 69 6e 74 66 28 27 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 rintf('Command.name."%s".is.inva
654e0 6c 69 64 2e 27 2c 20 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 lid.',.$name));.}.}.}.<?php.....
65500 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
65520 74 5c 43 6f 6e 73 6f 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 t\Console\Command;..use.Symfony\
65540 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 67 Component\Console\Input\InputArg
65560 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 6e ument;.use.Symfony\Component\Con
65580 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
655a0 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
655c0 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
655e0 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
65600 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\
65620 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f Output\Output;.use.Symfony\Compo
65640 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 73 nent\Console\Command\Command;.us
65660 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
65680 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c t\InputDefinition;.......class.L
656a0 69 73 74 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 0a 0a 0a istCommand.extends.Command.{....
656c0 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().{
656e0 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 0a 2d 3e 73 65 74 44 65 .$this.->setName('list').->setDe
65700 66 69 6e 69 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e finition($this->createDefinition
65720 28 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 73 74 73 20 63 6f 6d 6d ()).->setDescription('Lists.comm
65740 61 6e 64 73 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 ands').->setHelp(<<<EOF.The.<inf
65760 6f 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 o>%command.name%</info>.command.
65780 6c 69 73 74 73 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 lists.all.commands:....<info>php
657a0 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 .%command.full_name%</info>..You
657c0 20 63 61 6e 20 61 6c 73 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 66 .can.also.display.the.commands.f
657e0 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 6e 61 6d 65 73 70 61 63 65 3a 0a 0a 20 20 3c 69 6e 66 or.a.specific.namespace:....<inf
65800 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 74 65 73 74 3c 2f o>php.%command.full_name%.test</
65820 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 65 20 69 info>..You.can.also.output.the.i
65840 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c nformation.as.XML.by.using.the.<
65860 63 6f 6d 6d 65 6e 74 3e 2d 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a comment>--xml</comment>.option:.
65880 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 25 ...<info>php.%command.full_name%
658a0 20 2d 2d 78 6d 6c 3c 2f 69 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c .--xml</info>..It's.also.possibl
658c0 65 20 74 6f 20 67 65 74 20 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 28 75 e.to.get.raw.list.of.commands.(u
658e0 73 65 66 75 6c 20 66 6f 72 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 72 75 6e 6e seful.for.embedding.command.runn
65900 65 72 29 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 er):....<info>php.%command.full_
65920 6e 61 6d 65 25 20 2d 2d 72 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a name%.--raw</info>.EOF.).;.}....
65940 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 .protected.function.getNativeDef
65960 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 72 65 61 74 65 inition().{.return.$this->create
65980 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 65 64 20 66 75 Definition();.}.....protected.fu
659a0 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
659c0 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).{
659e0 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 20 7b .if.($input->getOption('xml')).{
65a00 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 65 74 41 70 70 6c .$output->writeln($this->getAppl
65a20 69 63 61 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 ication()->asXml($input->getArgu
65a40 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 ment('namespace')),.OutputInterf
65a60 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 ace::OUTPUT_RAW);.}.else.{.$outp
65a80 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f ut->writeln($this->getApplicatio
65aa0 6e 28 29 2d 3e 61 73 54 65 78 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 n()->asText($input->getArgument(
65ac0 27 6e 61 6d 65 73 70 61 63 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 'namespace'),.$input->getOption(
65ae0 27 72 61 77 27 29 29 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 'raw')));.}.}..private.function.
65b00 63 72 65 61 74 65 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 createDefinition().{.return.new.
65b20 49 6e 70 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 InputDefinition(array(.new.Input
65b40 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d Argument('namespace',.InputArgum
65b60 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 ent::OPTIONAL,.'The.namespace.na
65b80 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c me'),.new.InputOption('xml',.nul
65ba0 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 54 6f 20 l,.InputOption::VALUE_NONE,.'To.
65bc0 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 20 49 6e 70 75 74 4f output.help.as.XML'),.new.InputO
65be0 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ption('raw',.null,.InputOption::
65c00 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 VALUE_NONE,.'To.output.raw.comma
65c20 6e 64 20 6c 69 73 74 27 29 2c 0a 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a nd.list'),.));.}.}.<?php........
65c40 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
65c60 6f 6e 73 6f 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 onsole\Command;..use.Symfony\Com
65c80 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
65ca0 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
65cc0 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 79 e\Input\InputOption;.use.Symfony
65ce0 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
65d00 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
65d20 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
65d40 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
65d60 70 75 74 5c 4f 75 74 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 put\Output;.use.Symfony\Componen
65d80 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 0a 0a 0a 0a 0a t\Console\Command\Command;......
65da0 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.HelpCommand.extends.Comma
65dc0 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 nd.{.private.$command;.....prote
65de0 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
65e00 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 28 29 3b 0a 0a 24 74 s->ignoreValidationErrors();..$t
65e20 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e his.->setName('help').->setDefin
65e40 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 74 28 27 ition(array(.new.InputArgument('
65e60 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 command_name',.InputArgument::OP
65e80 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 6c TIONAL,.'The.command.name',.'hel
65ea0 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c p'),.new.InputOption('xml',.null
65ec0 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 54 6f 20 6f ,.InputOption::VALUE_NONE,.'To.o
65ee0 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 utput.help.as.XML'),.)).->setDes
65f00 63 72 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 cription('Displays.help.for.a.co
65f20 6d 6d 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 mmand').->setHelp(<<<EOF.The.<in
65f40 66 6f 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 fo>%command.name%</info>.command
65f60 20 64 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 .displays.help.for.a.given.comma
65f80 6e 64 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 nd:....<info>php.%command.full_n
65fa0 61 6d 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 ame%.list</info>..You.can.also.o
65fc0 75 74 70 75 74 20 74 68 65 20 68 65 6c 70 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 6e 67 20 74 utput.the.help.as.XML.by.using.t
65fe0 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 he.<comment>--xml</comment>.opti
66000 6f 6e 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 on:....<info>php.%command.full_n
66020 61 6d 65 25 20 2d 2d 78 6d 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d ame%.--xml.list</info>.EOF.).;.}
66040 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 6d 6d 61 6e .......public.function.setComman
66060 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d d(Command.$command).{.$this->com
66080 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 mand.=.$command;.}.....protected
660a0 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
660c0 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
660e0 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 61 6e 64 29 ).{.if.(null.===.$this->command)
66100 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 .{.$this->command.=.$this->getAp
66120 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 plication()->get($input->getArgu
66140 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 ment('command_name'));.}..if.($i
66160 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 6f 75 74 70 75 nput->getOption('xml')).{.$outpu
66180 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c t->writeln($this->command->asXml
661a0 28 29 2c 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 52 41 57 29 (),.OutputInterface::OUTPUT_RAW)
661c0 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 74 68 69 ;.}.else.{.$output->writeln($thi
661e0 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 61 73 54 65 78 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d s->command->asText());.}..$this-
66200 3e 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a >command.=.null;.}.}.<?php......
66220 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
66240 5c 43 6f 6e 73 6f 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 \Console\Tester;..use.Symfony\Co
66260 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 3b mponent\Console\Command\Command;
66280 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
662a0 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 6f 6d nput\ArrayInput;.use.Symfony\Com
662c0 70 6f 6e 65 6e 74 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 ponent\Console\Output\StreamOutp
662e0 75 74 3b 0a 0a 0a 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 ut;.......class.CommandTester.{.
66300 70 72 69 76 61 74 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 private.$command;.private.$input
66320 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 75 62 6c 69 63 20 ;.private.$output;.......public.
66340 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 63 6f function.__construct(Command.$co
66360 6d 6d 61 6e 64 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 mmand).{.$this->command.=.$comma
66380 6e 64 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 75 6e 63 nd;.}................public.func
663a0 74 69 6f 6e 20 65 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 tion.execute(array.$input,.array
663c0 20 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 73 2d 3e 69 6e .$options.=.array()).{.$this->in
663e0 70 75 74 20 3d 20 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 put.=.new.ArrayInput($input);.if
66400 20 28 69 73 73 65 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 .(isset($options['interactive'])
66420 29 20 7b 0a 24 74 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 ).{.$this->input->setInteractive
66440 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 3b 0a 7d 0a 0a 24 74 ($options['interactive']);.}..$t
66460 68 69 73 2d 3e 6f 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 his->output.=.new.StreamOutput(f
66480 6f 70 65 6e 28 27 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 open('php://memory',.'w',.false)
664a0 29 3b 0a 69 66 20 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 );.if.(isset($options['decorated
664c0 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 44 65 63 6f 72 61 74 '])).{.$this->output->setDecorat
664e0 65 64 28 24 6f 70 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 ed($options['decorated']);.}.if.
66500 28 69 73 73 65 74 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 (isset($options['verbosity'])).{
66520 0a 24 74 68 69 73 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 .$this->output->setVerbosity($op
66540 74 69 6f 6e 73 5b 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 tions['verbosity']);.}..return.$
66560 74 68 69 73 2d 3e 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 this->command->run($this->input,
66580 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->output);.}.......public.
665a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 29 0a 7b 0a 72 65 77 69 6e 64 28 24 function.getDisplay().{.rewind($
665c0 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 72 65 74 this->output->getStream());..ret
665e0 75 72 6e 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f urn.stream_get_contents($this->o
66600 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 utput->getStream());.}.......pub
66620 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
66640 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
66660 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
66680 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
666a0 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
666c0 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
666e0 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 6f t\Console\Application;.use.Symfo
66700 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 72 72 61 79 ny\Component\Console\Input\Array
66720 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 6f 6e Input;.use.Symfony\Component\Con
66740 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 53 sole\Input\InputInterface;.use.S
66760 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\
66780 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 6d OutputInterface;.use.Symfony\Com
667a0 70 6f 6e 65 6e 74 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 ponent\Console\Output\StreamOutp
667c0 75 74 3b 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 ut;.......class.ApplicationTeste
667e0 72 0a 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 r.{.private.$application;.privat
66800 65 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 0a 0a 0a 0a e.$input;.private.$output;......
66820 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 41 70 70 .public.function.__construct(App
66840 6c 69 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 lication.$application).{.$this->
66860 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 7d 0a 0a 0a application.=.$application;.}...
66880 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 72 75 6e .............public.function.run
668a0 28 61 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 (array.$input,.$options.=.array(
668c0 29 29 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 )).{.$this->input.=.new.ArrayInp
668e0 75 74 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 ut($input);.if.(isset($options['
66900 69 6e 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 interactive'])).{.$this->input->
66920 73 65 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 setInteractive($options['interac
66940 74 69 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 tive']);.}..$this->output.=.new.
66960 53 74 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 StreamOutput(fopen('php://memory
66980 27 2c 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 ',.'w',.false));.if.(isset($opti
669a0 6f 6e 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 ons['decorated'])).{.$this->outp
669c0 75 74 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 ut->setDecorated($options['decor
669e0 61 74 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 ated']);.}.if.(isset($options['v
66a00 65 72 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 erbosity'])).{.$this->output->se
66a20 74 56 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 tVerbosity($options['verbosity']
66a40 29 3b 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 );.}..return.$this->application-
66a60 3e 72 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 >run($this->input,.$this->output
66a80 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 67 65 74 44 69 );.}.......public.function.getDi
66aa0 73 70 6c 61 79 28 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 splay().{.rewind($this->output->
66ac0 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 67 65 74 getStream());..return.stream_get
66ae0 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
66b00 61 6d 28 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 20 67 am());.}.......public.function.g
66b20 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 70 75 74 3b etInput().{.return.$this->input;
66b40 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 4f 75 74 70 .}.......public.function.getOutp
66b60 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 0a 7d 0a 7d ut().{.return.$this->output;.}.}
66b80 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
66ba0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f ny\Component\Console;..use.Symfo
66bc0 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 6e ny\Component\Console\Application
66be0 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\
66c00 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 43 Input\StringInput;.use.Symfony\C
66c20 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 6c 65 4f omponent\Console\Output\ConsoleO
66c40 75 74 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 50 72 6f utput;.use.Symfony\Component\Pro
66c60 63 65 73 73 5c 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 cess\ProcessBuilder;.use.Symfony
66c80 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 68 70 45 78 65 63 75 74 61 62 6c 65 \Component\Process\PhpExecutable
66ca0 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a Finder;...........class.Shell.{.
66cc0 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 24 68 private.$application;.private.$h
66ce0 69 73 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 istory;.private.$output;.private
66d00 20 24 68 61 73 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 6d 70 74 3b 0a .$hasReadline;.private.$prompt;.
66d20 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 0a 0a 0a 0a 0a private.$processIsolation;......
66d40 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(
66d60 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 0a 24 74 68 69 Application.$application).{.$thi
66d80 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 78 69 73 74 73 s->hasReadline.=.function_exists
66da0 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 61 74 69 6f 6e ('readline');.$this->application
66dc0 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 74 6f 72 79 20 .=.$application;.$this->history.
66de0 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 5f 27 2e 24 61 =.getenv('HOME').'/.history_'.$a
66e00 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 73 2d 3e 6f 75 pplication->getName();.$this->ou
66e20 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 0a 24 74 68 69 tput.=.new.ConsoleOutput();.$thi
66e40 73 2d 3e 70 72 6f 6d 70 74 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d s->prompt.=.$application->getNam
66e60 65 28 29 2e 27 20 3e 20 27 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 e().'.>.';.$this->processIsolati
66e80 6f 6e 20 3d 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 on.=.false;.}.....public.functio
66ea0 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 n.run().{.$this->application->se
66ec0 74 41 75 74 6f 45 78 69 74 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 tAutoExit(false);.$this->applica
66ee0 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 74 72 75 65 29 3b 0a tion->setCatchExceptions(true);.
66f00 0a 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 72 65 61 64 6c .if.($this->hasReadline).{.readl
66f20 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 ine_read_history($this->history)
66f40 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f 6d 70 6c 65 74 69 6f 6e 5f 66 75 6e 63 74 69 6f 6e 28 61 ;.readline_completion_function(a
66f60 72 72 61 79 28 24 74 68 69 73 2c 20 27 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 27 29 29 3b 0a 7d rray($this,.'autocompleter'));.}
66f80 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e ..$this->output->writeln($this->
66fa0 67 65 74 48 65 61 64 65 72 28 29 29 3b 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 getHeader());.$php.=.null;.if.($
66fc0 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 66 69 6e 64 65 this->processIsolation).{.$finde
66fe0 72 20 3d 20 6e 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 24 r.=.new.PhpExecutableFinder();.$
67000 70 68 70 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 php.=.$finder->find();.$this->ou
67020 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 46 0a 3c 69 6e 66 6f 3e 52 75 6e 6e 69 tput->writeln(<<<EOF.<info>Runni
67040 6e 67 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 73 6f 6c 61 74 69 6f 6e 2c 20 79 6f 75 20 73 ng.with.process.isolation,.you.s
67060 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 3a 3c 2f 69 6e 66 6f 3e 0a 20 20 2a 20 hould.consider.this:</info>...*.
67080 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 20 61 73 20 73 65 70 61 each.command.is.executed.as.sepa
670a0 72 61 74 65 20 70 72 6f 63 65 73 73 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 6e 27 74 rate.process,...*.commands.don't
670c0 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 61 63 74 69 76 69 74 79 2c 20 61 6c 6c 20 70 61 72 61 .support.interactivity,.all.para
670e0 6d 73 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2c 0a 20 20 ms.must.be.passed.explicitly,...
67100 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 74 70 75 74 20 69 73 20 6e 6f 74 20 63 6f 6c 6f 72 69 7a *.commands.output.is.not.coloriz
67120 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 63 ed...EOF.);.}..while.(true).{.$c
67140 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 6c 69 6e 65 28 29 3b 0a 0a 69 66 20 ommand.=.$this->readline();..if.
67160 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 (false.===.$command).{.$this->ou
67180 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 22 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a tput->writeln("\n");..break;.}..
671a0 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 72 65 61 64 6c 69 if.($this->hasReadline).{.readli
671c0 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 79 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 72 65 61 64 6c 69 ne_add_history($command);.readli
671e0 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 ne_write_history($this->history)
67200 3b 0a 7d 0a 0a 69 66 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 ;.}..if.($this->processIsolation
67220 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 28 29 3b 0a ).{.$pb.=.new.ProcessBuilder();.
67240 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 70 62 0a 2d 3e 61 64 64 28 24 70 68 70 29 0a 2d 3e 61 64 .$process.=.$pb.->add($php).->ad
67260 64 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 0a 2d 3e 61 64 64 28 24 63 6f d($_SERVER['argv'][0]).->add($co
67280 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 mmand).->inheritEnvironmentVaria
672a0 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 0a 3b 0a 0a 24 6f 75 bles(true).->getProcess().;..$ou
672c0 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 70 72 6f 63 65 73 73 2d 3e tput.=.$this->output;.$process->
672e0 72 75 6e 28 66 75 6e 63 74 69 6f 6e 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 run(function($type,.$data).use.(
67300 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 61 74 $output).{.$output->writeln($dat
67320 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 a);.});..$ret.=.$process->getExi
67340 74 43 6f 64 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e tCode();.}.else.{.$ret.=.$this->
67360 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 application->run(new.StringInput
67380 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 ($command),.$this->output);.}..i
673a0 66 20 28 30 20 21 3d 3d 20 24 72 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e f.(0.!==.$ret).{.$this->output->
673c0 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 63 6f 6d 6d writeln(sprintf('<error>The.comm
673e0 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 73 74 61 and.terminated.with.an.error.sta
67400 74 75 73 20 28 25 73 29 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 72 65 74 29 29 3b 0a 7d 0a 7d 0a 7d tus.(%s)</error>',.$ret));.}.}.}
67420 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 48 65 61 .......protected.function.getHea
67440 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 0a 57 65 6c 63 6f 6d 65 20 74 der().{.return.<<<EOF..Welcome.t
67460 6f 20 74 68 65 20 3c 69 6e 66 6f 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d o.the.<info>{$this->application-
67480 3e 67 65 74 4e 61 6d 65 28 29 7d 3c 2f 69 6e 66 6f 3e 20 73 68 65 6c 6c 20 28 3c 63 6f 6d 6d 65 >getName()}</info>.shell.(<comme
674a0 6e 74 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 56 65 72 73 69 nt>{$this->application->getVersi
674c0 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 2e 0a 0a 41 74 20 74 68 65 20 70 72 6f 6d 70 74 on()}</comment>)...At.the.prompt
674e0 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 68 65 6c 70 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 66 ,.type.<comment>help</comment>.f
67500 6f 72 20 73 6f 6d 65 20 68 65 6c 70 2c 0a 6f 72 20 3c 63 6f 6d 6d 65 6e 74 3e 6c 69 73 74 3c 2f or.some.help,.or.<comment>list</
67520 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 comment>.to.get.a.list.of.availa
67540 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 54 6f 20 65 78 69 74 20 74 68 65 20 73 68 65 6c 6c ble.commands...To.exit.the.shell
67560 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 ,.type.<comment>^D</comment>...E
67580 4f 46 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 61 OF;.}.........private.function.a
675a0 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 78 74 29 0a 7b 0a 24 69 6e 66 6f 20 3d 20 72 65 utocompleter($text).{.$info.=.re
675c0 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 69 adline_info();.$text.=.substr($i
675e0 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 27 5d 2c 20 30 2c 20 24 69 6e 66 6f 5b 27 65 6e nfo['line_buffer'],.0,.$info['en
67600 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 5b 27 70 6f 69 6e 74 27 5d 20 21 3d 3d 20 24 69 d']);..if.($info['point'].!==.$i
67620 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 nfo['end']).{.return.true;.}....
67640 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 if.(false.===.strpos($text,.'.')
67660 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 .||.!$text).{.return.array_keys(
67680 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a $this->application->all());.}...
676a0 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 .try.{.$command.=.$this->applica
676c0 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 72 28 24 74 65 78 74 2c 20 30 2c 20 73 74 72 70 tion->find(substr($text,.0,.strp
676e0 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 os($text,.'.')));.}.catch.(\Exce
67700 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 73 ption.$e).{.return.true;.}..$lis
67720 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 t.=.array('--help');.foreach.($c
67740 6f 6d 6d 61 6e 64 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 ommand->getDefinition()->getOpti
67760 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6c 69 73 74 5b 5d 20 3d 20 27 2d ons().as.$option).{.$list[].=.'-
67780 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e -'.$option->getName();.}..return
677a0 20 24 6c 69 73 74 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 .$list;.}.......private.function
677c0 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 .readline().{.if.($this->hasRead
677e0 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 72 65 61 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e line).{.$line.=.readline($this->
67800 70 72 6f 6d 70 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d prompt);.}.else.{.$this->output-
67820 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 >write($this->prompt);.$line.=.f
67840 67 65 74 73 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 gets(STDIN,.1024);.$line.=.(!$li
67860 6e 65 20 26 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 ne.&&.strlen($line).==.0).?.fals
67880 65 20 3a 20 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 e.:.rtrim($line);.}..return.$lin
678a0 65 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 65 73 73 e;.}..public.function.getProcess
678c0 49 73 6f 6c 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 Isolation().{.return.$this->proc
678e0 65 73 73 49 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 essIsolation;.}..public.function
67900 20 73 65 74 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 .setProcessIsolation($processIso
67920 6c 61 74 69 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 lation).{.$this->processIsolatio
67940 6e 20 3d 20 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 n.=.(Boolean).$processIsolation;
67960 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
67980 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 ymfony\Component\Console;..use.S
679a0 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
679c0 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
679e0 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 74 3b 0a 75 73 nent\Console\Input\ArgvInput;.us
67a00 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
67a20 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 6f 6d 70 6f 6e t\ArrayInput;.use.Symfony\Compon
67a40 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
67a60 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
67a80 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 79 5c \Input\InputOption;.use.Symfony\
67aa0 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 67 Component\Console\Input\InputArg
67ac0 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 6e ument;.use.Symfony\Component\Con
67ae0 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 73 65 sole\Output\OutputInterface;.use
67b00 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
67b20 74 5c 4f 75 74 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 t\Output;.use.Symfony\Component\
67b40 43 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 Console\Output\ConsoleOutput;.us
67b60 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
67b80 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 75 73 65 20 53 ut\ConsoleOutputInterface;.use.S
67ba0 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 64 ymfony\Component\Console\Command
67bc0 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 74 5c \Command;.use.Symfony\Component\
67be0 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 Console\Command\HelpCommand;.use
67c00 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 6d 6d 61 .Symfony\Component\Console\Comma
67c20 6e 64 5c 4c 69 73 74 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 nd\ListCommand;.use.Symfony\Comp
67c40 6f 6e 65 6e 74 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 onent\Console\Helper\HelperSet;.
67c60 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 65 use.Symfony\Component\Console\He
67c80 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e lper\FormatterHelper;.use.Symfon
67ca0 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 44 69 61 6c 6f y\Component\Console\Helper\Dialo
67cc0 67 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 gHelper;...................class
67ce0 20 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 .Application.{.private.$commands
67d00 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 ;.private.$wantHelps.=.false;.pr
67d20 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 ivate.$runningCommand;.private.$
67d40 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 name;.private.$version;.private.
67d60 24 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 $catchExceptions;.private.$autoE
67d80 78 69 74 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 74 xit;.private.$definition;.privat
67da0 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 e.$helperSet;..........public.fu
67dc0 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 4e 4b 4e nction.__construct($name.=.'UNKN
67de0 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 0a 24 74 OWN',.$version.=.'UNKNOWN').{.$t
67e00 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 73 69 6f his->name.=.$name;.$this->versio
67e20 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 65 70 74 n.=.$version;.$this->catchExcept
67e40 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 3d 20 74 ions.=.true;.$this->autoExit.=.t
67e60 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 29 3b 0a rue;.$this->commands.=.array();.
67e80 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 44 65 66 $this->helperSet.=.$this->getDef
67ea0 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 69 74 69 aultHelperSet();.$this->definiti
67ec0 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 66 69 6e on.=.$this->getDefaultInputDefin
67ee0 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 44 65 66 ition();..foreach.($this->getDef
67f00 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 0a 24 74 aultCommands().as.$command).{.$t
67f20 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 0a 0a 0a 0a 0a 0a 0a his->add($command);.}.}.........
67f40 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 49 6e 70 75 74 49 6e .....public.function.run(InputIn
67f60 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 terface.$input.=.null,.OutputInt
67f80 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c erface.$output.=.null).{.if.(nul
67fa0 6c 20 3d 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 67 l.===.$input).{.$input.=.new.Arg
67fc0 76 49 6e 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 vInput();.}..if.(null.===.$outpu
67fe0 74 29 20 7b 0a 24 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 t).{.$output.=.new.ConsoleOutput
68000 28 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 ();.}..try.{.$statusCode.=.$this
68020 2d 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 ->doRun($input,.$output);.}.catc
68040 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 2d 3e h.(\Exception.$e).{.if.(!$this->
68060 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a catchExceptions).{.throw.$e;.}..
68080 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 if.($output.instanceof.ConsoleOu
680a0 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 tputInterface).{.$this->renderEx
680c0 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 ception($e,.$output->getErrorOut
680e0 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 put());.}.else.{.$this->renderEx
68100 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 73 74 61 74 75 73 43 ception($e,.$output);.}.$statusC
68120 6f 64 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 0a 24 73 74 61 74 75 73 43 6f 64 ode.=.$e->getCode();..$statusCod
68140 65 20 3d 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 26 26 20 24 e.=.is_numeric($statusCode).&&.$
68160 73 74 61 74 75 73 43 6f 64 65 20 3f 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 31 3b 0a 7d 0a statusCode.?.$statusCode.:.1;.}.
68180 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 73 74 61 .if.($this->autoExit).{.if.($sta
681a0 74 75 73 43 6f 64 65 20 3e 20 32 35 35 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 32 tusCode.>.255).{.$statusCode.=.2
681c0 35 35 3b 0a 7d 0a 0a 20 65 78 69 74 28 24 73 74 61 74 75 73 43 6f 64 65 29 3b 0a 0a 20 7d 0a 0a 55;.}...exit($statusCode);...}..
681e0 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 return.$statusCode;.}..........p
68200 75 62 6c 69 63 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 ublic.function.doRun(InputInterf
68220 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
68240 70 75 74 29 0a 7b 0a 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 put).{.$name.=.$this->getCommand
68260 4e 61 6d 65 28 24 69 6e 70 75 74 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 Name($input);..if.(true.===.$inp
68280 75 74 2d 3e 68 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 ut->hasParameterOption(array('--
682a0 61 6e 73 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 ansi'))).{.$output->setDecorated
682c0 28 74 72 75 65 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 (true);.}.elseif.(true.===.$inpu
682e0 74 2d 3e 68 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 6e t->hasParameterOption(array('--n
68300 6f 2d 61 6e 73 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 o-ansi'))).{.$output->setDecorat
68320 65 64 28 66 61 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 ed(false);.}..if.(true.===.$inpu
68340 74 2d 3e 68 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 68 t->hasParameterOption(array('--h
68360 65 6c 70 27 2c 20 27 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 elp',.'-h'))).{.if.(!$name).{.$n
68380 61 6d 65 20 3d 20 27 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 ame.=.'help';.$input.=.new.Array
683a0 49 6e 70 75 74 28 61 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 Input(array('command'.=>.'help')
683c0 29 3b 0a 7d 20 65 6c 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 );.}.else.{.$this->wantHelps.=.t
683e0 72 75 65 3b 0a 7d 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 rue;.}.}..if.(true.===.$input->h
68400 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 6e 6f 2d 69 6e asParameterOption(array('--no-in
68420 74 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 teraction',.'-n'))).{.$input->se
68440 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 tInteractive(false);.}..if.(func
68460 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 20 24 tion_exists('posix_isatty').&&.$
68480 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 6c 6f this->getHelperSet()->has('dialo
684a0 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 65 74 g')).{.$inputStream.=.$this->get
684c0 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 74 49 HelperSet()->get('dialog')->getI
684e0 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 79 28 nputStream();.if.(!posix_isatty(
68500 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 74 65 $inputStream)).{.$input->setInte
68520 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 3d 3d ractive(false);.}.}..if.(true.==
68540 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 72 72 =.$input->hasParameterOption(arr
68560 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 74 2d ay('--quiet',.'-q'))).{.$output-
68580 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 3a 56 >setVerbosity(OutputInterface::V
685a0 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 ERBOSITY_QUIET);.}.elseif.(true.
685c0 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
685e0 72 72 61 79 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 27 29 29 29 20 7b 0a 24 6f 75 74 rray('--verbose',.'-v'))).{.$out
68600 70 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 put->setVerbosity(OutputInterfac
68620 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 e::VERBOSITY_VERBOSE);.}..if.(tr
68640 75 65 20 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 ue.===.$input->hasParameterOptio
68660 6e 28 61 72 72 61 79 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 n(array('--version',.'-V'))).{.$
68680 6f 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 4c 6f 6e 67 56 65 output->writeln($this->getLongVe
686a0 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 rsion());..return.0;.}..if.(!$na
686c0 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 6c 69 73 74 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e me).{.$name.=.'list';.$input.=.n
686e0 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e ew.ArrayInput(array('command'.=>
68700 20 27 6c 69 73 74 27 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 .'list'));.}....$command.=.$this
68720 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f ->find($name);..$this->runningCo
68740 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 mmand.=.$command;.$statusCode.=.
68760 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 70 75 74 29 3b 0a $command->run($input,.$output);.
68780 24 74 68 69 73 2d 3e 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 $this->runningCommand.=.null;..r
687a0 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 3f 20 eturn.is_numeric($statusCode).?.
687c0 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $statusCode.:.0;.}.........publi
687e0 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 6c 70 65 72 53 65 c.function.setHelperSet(HelperSe
68800 74 20 24 68 65 6c 70 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 t.$helperSet).{.$this->helperSet
68820 20 3d 20 24 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 .=.$helperSet;.}.........public.
68840 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 0a 72 65 74 75 72 6e function.getHelperSet().{.return
68860 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 0a 0a 70 75 62 6c 69 .$this->helperSet;.}.......publi
68880 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 74 c.function.getDefinition().{.ret
688a0 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 70 urn.$this->definition;.}.......p
688c0 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 73 ublic.function.getHelp().{.$mess
688e0 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 73 ages.=.array(.$this->getLongVers
68900 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 6d ion(),.'',.'<comment>Usage:</com
68920 6d 65 6e 74 3e 27 2c 0a 73 70 72 69 6e 74 66 28 22 20 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d ment>',.sprintf("..[options].com
68940 6d 61 6e 64 20 5b 61 72 67 75 6d 65 6e 74 73 5d 5c 6e 22 29 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e mand.[arguments]\n"),.'<comment>
68960 4f 70 74 69 6f 6e 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 Options:</comment>',.);..foreach
68980 20 28 24 74 68 69 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 .($this->getDefinition()->getOpt
689a0 69 6f 6e 73 28 29 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 ions().as.$option).{.$messages[]
689c0 20 3d 20 73 70 72 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 .=.sprintf('..%-29s.%s.%s',.'<in
689e0 66 6f 3e 2d 2d 27 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 fo>--'.$option->getName().'</inf
68a00 6f 3e 27 2c 0a 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 3c o>',.$option->getShortcut().?.'<
68a20 69 6e 66 6f 3e 2d 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 info>-'.$option->getShortcut().'
68a40 3c 2f 69 6e 66 6f 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 </info>'.:.'..',.$option->getDes
68a60 63 72 69 70 74 69 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 cription().);.}..return.implode(
68a80 50 48 50 5f 45 4f 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 PHP_EOL,.$messages);.}.........p
68aa0 75 62 6c 69 63 20 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 ublic.function.setCatchException
68ac0 73 28 24 62 6f 6f 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 s($boolean).{.$this->catchExcept
68ae0 69 6f 6e 73 20 3d 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 ions.=.(Boolean).$boolean;.}....
68b00 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 75 74 6f 45 78 69 74 .....public.function.setAutoExit
68b20 28 24 62 6f 6f 6c 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 ($boolean).{.$this->autoExit.=.(
68b40 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 75 62 Boolean).$boolean;.}.........pub
68b60 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.
68b80 24 74 68 69 73 2d 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 $this->name;.}.........public.fu
68ba0 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 2d 3e 6e nction.setName($name).{.$this->n
68bc0 61 6d 65 20 3d 20 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 ame.=.$name;.}.........public.fu
68be0 6e 63 74 69 6f 6e 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 nction.getVersion().{.return.$th
68c00 69 73 2d 3e 76 65 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 is->version;.}.........public.fu
68c20 6e 63 74 69 6f 6e 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 nction.setVersion($version).{.$t
68c40 68 69 73 2d 3e 76 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 his->version.=.$version;.}......
68c60 0a 0a 0a 70 75 62 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 ...public.function.getLongVersio
68c80 6e 28 29 0a 7b 0a 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 n().{.if.('UNKNOWN'.!==.$this->g
68ca0 65 74 4e 61 6d 65 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 etName().&&.'UNKNOWN'.!==.$this-
68cc0 3e 67 65 74 56 65 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 >getVersion()).{.return.sprintf(
68ce0 27 3c 69 6e 66 6f 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 '<info>%s</info>.version.<commen
68d00 74 3e 25 73 3c 2f 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 t>%s</comment>',.$this->getName(
68d20 29 2c 20 24 74 68 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 ),.$this->getVersion());.}..retu
68d40 72 6e 20 27 3c 69 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 rn.'<info>Console.Tool</info>';.
68d60 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 72 65 67 69 }...........public.function.regi
68d80 73 74 65 72 28 24 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 ster($name).{.return.$this->add(
68da0 6e 65 77 20 43 6f 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 new.Command($name));.}.........p
68dc0 75 62 6c 69 63 20 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 ublic.function.addCommands(array
68de0 20 24 63 6f 6d 6d 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 .$commands).{.foreach.($commands
68e00 20 61 73 20 24 63 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 .as.$command).{.$this->add($comm
68e20 61 6e 64 29 3b 0a 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 and);.}.}.............public.fun
68e40 63 74 69 6f 6e 20 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 ction.add(Command.$command).{.$c
68e60 6f 6d 6d 61 6e 64 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 ommand->setApplication($this);..
68e80 69 66 20 28 21 24 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 if.(!$command->isEnabled()).{.$c
68ea0 6f 6d 6d 61 6e 64 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 ommand->setApplication(null);..r
68ec0 65 74 75 72 6e 3b 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 eturn;.}..$this->commands[$comma
68ee0 6e 64 2d 3e 67 65 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 nd->getName()].=.$command;..fore
68f00 61 63 68 20 28 24 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 ach.($command->getAliases().as.$
68f20 61 6c 69 61 73 29 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 alias).{.$this->commands[$alias]
68f40 20 3d 20 24 63 6f 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 .=.$command;.}..return.$command;
68f60 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 67 .}.............public.function.g
68f80 65 74 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 63 6f et($name).{.if.(!isset($this->co
68fa0 6d 6d 61 6e 64 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 6e 76 mmands[$name])).{.throw.new.\Inv
68fc0 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
68fe0 68 65 20 63 6f 6d 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 he.command."%s".does.not.exist.'
69000 2c 20 24 6e 61 6d 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 ,.$name));.}..$command.=.$this->
69020 63 6f 6d 6d 61 6e 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 commands[$name];..if.($this->wan
69040 74 48 65 6c 70 73 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 tHelps).{.$this->wantHelps.=.fal
69060 73 65 3b 0a 0a 24 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 se;..$helpCommand.=.$this->get('
69080 68 65 6c 70 27 29 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 help');.$helpCommand->setCommand
690a0 28 24 63 6f 6d 6d 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 ($command);..return.$helpCommand
690c0 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 0a 0a 0a 0a 0a ;.}..return.$command;.}.........
690e0 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 65 29 0a 7b 0a 72 ..public.function.has($name).{.r
69100 65 74 75 72 6e 20 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 eturn.isset($this->commands[$nam
69120 65 5d 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 67 e]);.}.........public.function.g
69140 65 74 4e 61 6d 65 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 etNamespaces().{.$namespaces.=.a
69160 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 61 6e 64 73 rray();.foreach.($this->commands
69180 20 61 73 20 24 63 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 .as.$command).{.$namespaces[].=.
691a0 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 6d 6d 61 6e 64 $this->extractNamespace($command
691c0 2d 3e 67 65 74 4e 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 ->getName());..foreach.($command
691e0 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 0a 24 6e 61 6d ->getAliases().as.$alias).{.$nam
69200 65 73 70 61 63 65 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 espaces[].=.$this->extractNamesp
69220 61 63 65 28 24 61 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 ace($alias);.}.}..return.array_v
69240 61 6c 75 65 73 28 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 alues(array_unique(array_filter(
69260 24 6e 61 6d 65 73 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 $namespaces)));.}...........publ
69280 69 63 20 66 75 6e 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 ic.function.findNamespace($names
692a0 70 61 63 65 29 0a 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 pace).{.$allNamespaces.=.array()
692c0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 ;.foreach.($this->getNamespaces(
692e0 29 20 61 73 20 24 6e 29 20 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 5b 24 6e 5d 20 3d 20 ).as.$n).{.$allNamespaces[$n].=.
69300 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 20 3d 20 61 72 explode(':',.$n);.}..$found.=.ar
69320 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 ray();.foreach.(explode(':',.$na
69340 6d 65 73 70 61 63 65 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 74 29 20 7b 0a 24 61 62 62 72 mespace).as.$i.=>.$part).{.$abbr
69360 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 6f 6e 73 28 61 evs.=.static::getAbbreviations(a
69380 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 72 61 79 5f 66 rray_unique(array_values(array_f
693a0 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 70 29 20 75 73 ilter(array_map(function.($p).us
693c0 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 5d 29 20 3f 20 e.($i).{.return.isset($p[$i]).?.
693e0 24 70 5b 24 69 5d 20 3a 20 27 27 3b 20 7d 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 29 $p[$i].:.'';.},.$allNamespaces))
69400 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 74 5d )));..if.(!isset($abbrevs[$part]
69420 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 20 61 )).{.$message.=.sprintf('There.a
69440 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 22 25 re.no.commands.defined.in.the."%
69460 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 69 66 s".namespace.',.$namespace);..if
69480 20 28 31 20 3c 3d 20 24 69 29 20 7b 0a 24 70 61 72 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 3a 27 .(1.<=.$i).{.$part.=.implode(':'
694a0 2c 20 24 66 6f 75 6e 64 29 2e 27 3a 27 2e 24 70 61 72 74 3b 0a 7d 0a 0a 69 66 20 28 24 61 6c 74 ,.$found).':'.$part;.}..if.($alt
694c0 65 72 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 ernatives.=.$this->findAlternati
694e0 76 65 4e 61 6d 65 73 70 61 63 65 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a veNamespace($part,.$abbrevs)).{.
69500 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 6d 65 61 6e 20 6f 6e $message..=."\n\nDid.you.mean.on
69520 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 e.of.these?\n....";.$message..=.
69540 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 implode("\n....",.$alternatives)
69560 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 75 6d 65 6e 74 45 ;.}..throw.new.\InvalidArgumentE
69580 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 xception($message);.}..if.(count
695a0 28 24 61 62 62 72 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 ($abbrevs[$part]).>.1).{.throw.n
695c0 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 72 ew.\InvalidArgumentException(spr
695e0 69 6e 74 66 28 27 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 intf('The.namespace."%s".is.ambi
69600 67 75 6f 75 73 20 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 guous.(%s).',.$namespace,.$this-
69620 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 24 61 62 62 >getAbbreviationSuggestions($abb
69640 72 65 76 73 5b 24 70 61 72 74 5d 29 29 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 5b 5d 20 3d 20 24 61 revs[$part])));.}..$found[].=.$a
69660 62 62 72 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 69 6d 70 6c bbrevs[$part][0];.}..return.impl
69680 6f 64 65 28 27 3a 27 2c 20 24 66 6f 75 6e 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ode(':',.$found);.}.............
696a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b ...public.function.find($name).{
696c0 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 ...$namespace.=.'';.$searchName.
696e0 3d 20 24 6e 61 6d 65 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 =.$name;.if.(false.!==.$pos.=.st
69700 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 rrpos($name,.':')).{.$namespace.
69720 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e =.$this->findNamespace(substr($n
69740 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e ame,.0,.$pos));.$searchName.=.$n
69760 61 6d 65 73 70 61 63 65 2e 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 29 3b 0a 7d 0a amespace.substr($name,.$pos);.}.
69780 0a 0a 20 24 63 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 ...$commands.=.array();.foreach.
697a0 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a ($this->commands.as.$command).{.
697c0 69 66 20 28 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 6d if.($this->extractNamespace($com
697e0 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 mand->getName()).==.$namespace).
69800 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 4e 61 6d {.$commands[].=.$command->getNam
69820 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 67 65 74 e();.}.}..$abbrevs.=.static::get
69840 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 6f 6d 6d Abbreviations(array_unique($comm
69860 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 65 61 72 ands));.if.(isset($abbrevs[$sear
69880 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 76 73 5b chName]).&&.1.==.count($abbrevs[
698a0 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 2d 3e 67 $searchName])).{.return.$this->g
698c0 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 0a 7d 0a et($abbrevs[$searchName][0]);.}.
698e0 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 6d 65 5d .if.(isset($abbrevs[$searchName]
69900 29 20 26 26 20 63 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 ).&&.count($abbrevs[$searchName]
69920 29 20 3e 20 31 29 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 ).>.1).{.$suggestions.=.$this->g
69940 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 24 61 62 62 72 65 etAbbreviationSuggestions($abbre
69960 76 73 5b 24 73 65 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 vs[$searchName]);..throw.new.\In
69980 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('
699a0 43 6f 6d 6d 61 6e 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 Command."%s".is.ambiguous.(%s).'
699c0 2c 20 24 6e 61 6d 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 ,.$name,.$suggestions));.}....$a
699e0 6c 69 61 73 65 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 liases.=.array();.foreach.($this
69a00 2d 3e 63 6f 6d 6d 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 ->commands.as.$command).{.foreac
69a20 68 20 28 24 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 h.($command->getAliases().as.$al
69a40 69 61 73 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 ias).{.if.($this->extractNamespa
69a60 63 65 28 24 61 6c 69 61 73 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 61 6c 69 ce($alias).==.$namespace).{.$ali
69a80 61 73 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 ases[].=.$alias;.}.}.}..$aliases
69aa0 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 .=.static::getAbbreviations(arra
69ac0 79 5f 75 6e 69 71 75 65 28 24 61 6c 69 61 73 65 73 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 y_unique($aliases));.if.(!isset(
69ae0 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 24 6d 65 73 73 61 $aliases[$searchName])).{.$messa
69b00 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f ge.=.sprintf('Command."%s".is.no
69b20 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 t.defined.',.$name);..if.($alter
69b40 6e 61 74 69 76 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 natives.=.$this->findAlternative
69b60 43 6f 6d 6d 61 6e 64 73 28 24 73 65 61 72 63 68 4e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 29 Commands($searchName,.$abbrevs))
69b80 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 6d 65 61 6e .{.$message..=."\n\nDid.you.mean
69ba0 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 .one.of.these?\n....";.$message.
69bc0 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 72 6e 61 74 69 76 .=.implode("\n....",.$alternativ
69be0 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 41 72 67 75 6d 65 es);.}..throw.new.\InvalidArgume
69c00 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 69 66 20 28 63 6f ntException($message);.}..if.(co
69c20 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 20 3e 20 31 29 20 unt($aliases[$searchName]).>.1).
69c40 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
69c60 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 22 20 69 73 20 61 ption(sprintf('Command."%s".is.a
69c80 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 68 69 73 2d 3e 67 mbiguous.(%s).',.$name,.$this->g
69ca0 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 24 61 6c 69 61 73 etAbbreviationSuggestions($alias
69cc0 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 75 72 6e 20 24 74 es[$searchName])));.}..return.$t
69ce0 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 61 6d 65 5d 5b 30 his->get($aliases[$searchName][0
69d00 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 6e 63 74 69 6f ]);.}.............public.functio
69d20 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 0a 69 66 20 28 6e n.all($namespace.=.null).{.if.(n
69d40 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 72 6e 20 24 74 68 ull.===.$namespace).{.return.$th
69d60 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 20 3d 20 61 72 72 is->commands;.}..$commands.=.arr
69d80 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 61 ay();.foreach.($this->commands.a
69da0 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 28 24 6e 61 6d 65 s.$name.=>.$command).{.if.($name
69dc0 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 6d 65 73 70 61 63 space.===.$this->extractNamespac
69de0 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 65 73 70 61 63 65 e($name,.substr_count($namespace
69e00 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 6e 61 6d 65 5d 20 ,.':').+.1)).{.$commands[$name].
69e20 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 6f 6d 6d 61 6e 64 =.$command;.}.}..return.$command
69e40 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 s;.}.........static.public.funct
69e60 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 73 29 0a 7b 0a 24 ion.getAbbreviations($names).{.$
69e80 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 20 28 24 6e 61 6d abbrevs.=.array();.foreach.($nam
69ea0 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 20 73 74 72 6c 65 es.as.$name).{.for.($len.=.strle
69ec0 6e 28 24 6e 61 6d 65 29 20 2d 20 31 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e 29 20 n($name).-.1;.$len.>.0;.--$len).
69ee0 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 6c 65 {.$abbrev.=.substr($name,.0,.$le
69f00 6e 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d n);.if.(!isset($abbrevs[$abbrev]
69f20 29 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 20 3d 20 61 72 72 61 79 28 24 )).{.$abbrevs[$abbrev].=.array($
69f40 6e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 name);.}.else.{.$abbrevs[$abbrev
69f60 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 ][].=.$name;.}.}.}....foreach.($
69f80 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 6e 61 6d 65 names.as.$name).{.$abbrevs[$name
69fa0 5d 20 3d 20 61 72 72 61 79 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 ].=.array($name);.}..return.$abb
69fc0 72 65 76 73 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 revs;.}..........public.function
69fe0 20 61 73 54 65 78 74 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 .asText($namespace.=.null,.$raw.
6a000 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 =.false).{.$commands.=.$namespac
6a020 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 e.?.$this->all($this->findNamesp
6a040 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ace($namespace)).:.$this->comman
6a060 64 73 3b 0a 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 ds;..$width.=.0;.foreach.($comma
6a080 6e 64 73 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 nds.as.$command).{.$width.=.strl
6a0a0 65 6e 28 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 en($command->getName()).>.$width
6a0c0 20 3f 20 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 .?.strlen($command->getName()).:
6a0e0 20 24 77 69 64 74 68 3b 0a 7d 0a 24 77 69 64 74 68 20 2b 3d 20 32 3b 0a 0a 69 66 20 28 24 72 61 .$width;.}.$width.+=.2;..if.($ra
6a100 77 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 w).{.$messages.=.array();.foreac
6a120 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 h.($this->sortCommands($commands
6a140 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 66 6f 72 65 ).as.$space.=>.$commands).{.fore
6a160 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d ach.($commands.as.$name.=>.$comm
6a180 61 6e 64 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 25 2d and).{.$messages[].=.sprintf("%-
6a1a0 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e ${width}s.%s",.$name,.$command->
6a1c0 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 getDescription());.}.}..return.i
6a1e0 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 mplode(PHP_EOL,.$messages);.}..$
6a200 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 messages.=.array($this->getHelp(
6a220 29 2c 20 27 27 29 3b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 ),.'');.if.($namespace).{.$messa
6a240 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 ges[].=.sprintf("<comment>Availa
6a260 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 ble.commands.for.the.\"%s\".name
6a280 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a space:</comment>",.$namespace);.
6a2a0 7d 20 65 6c 73 65 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 }.else.{.$messages[].=.'<comment
6a2c0 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b >Available.commands:</comment>';
6a2e0 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e .}....foreach.($this->sortComman
6a300 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d ds($commands).as.$space.=>.$comm
6a320 61 6e 64 73 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 20 26 26 20 27 5f 67 6c 6f ands).{.if.(!$namespace.&&.'_glo
6a340 62 61 6c 27 20 21 3d 3d 20 24 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d bal'.!==.$space).{.$messages[].=
6a360 20 27 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 73 70 61 63 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 .'<comment>'.$space.'</comment>'
6a380 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 ;.}..foreach.($commands.as.$name
6a3a0 20 3d 3e 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 70 .=>.$command).{.$messages[].=.sp
6a3c0 72 69 6e 74 66 28 22 20 20 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f rintf("..<info>%-${width}s</info
6a3e0 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 >.%s",.$name,.$command->getDescr
6a400 69 70 74 69 6f 6e 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 50 iption());.}.}..return.implode(P
6a420 48 50 5f 45 4f 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 0a 70 HP_EOL,.$messages);.}..........p
6a440 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 ublic.function.asXml($namespace.
6a460 3d 20 6e 75 6c 6c 2c 20 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 =.null,.$asDom.=.false).{.$comma
6a480 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 24 74 nds.=.$namespace.?.$this->all($t
6a4a0 68 69 73 2d 3e 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 29 20 his->findNamespace($namespace)).
6a4c0 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c :.$this->commands;..$dom.=.new.\
6a4e0 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
6a500 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 m->formatOutput.=.true;.$dom->ap
6a520 70 65 6e 64 43 68 69 6c 64 28 24 78 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 pendChild($xml.=.$dom->createEle
6a540 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 24 78 6d 6c 2d 3e 61 70 70 65 6e 64 43 ment('symfony'));..$xml->appendC
6a560 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 hild($commandsXML.=.$dom->create
6a580 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 69 66 20 28 24 6e 61 6d 65 Element('commands'));..if.($name
6a5a0 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 space).{.$commandsXML->setAttrib
6a5c0 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 ute('namespace',.$namespace);.}.
6a5e0 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 else.{.$namespacesXML.=.$dom->cr
6a600 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 3b 0a 24 78 6d 6c 2d eateElement('namespaces');.$xml-
6a620 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 29 3b 0a 7d 0a >appendChild($namespacesXML);.}.
6a640 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 ...foreach.($this->sortCommands(
6a660 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 $commands).as.$space.=>.$command
6a680 73 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 s).{.if.(!$namespace).{.$namespa
6a6a0 63 65 41 72 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 ceArrayXML.=.$dom->createElement
6a6c0 28 27 6e 61 6d 65 73 70 61 63 65 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 ('namespace');.$namespacesXML->a
6a6e0 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 29 3b 0a ppendChild($namespaceArrayXML);.
6a700 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 $namespaceArrayXML->setAttribute
6a720 28 27 69 64 27 2c 20 24 73 70 61 63 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d ('id',.$space);.}..foreach.($com
6a740 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 69 66 mands.as.$name.=>.$command).{.if
6a760 20 28 24 6e 61 6d 65 20 21 3d 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 .($name.!==.$command->getName())
6a780 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 .{.continue;.}..if.(!$namespace)
6a7a0 20 7b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 .{.$commandXML.=.$dom->createEle
6a7c0 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 ment('command');.$namespaceArray
6a7e0 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 29 3b 0a 24 XML->appendChild($commandXML);.$
6a800 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 3e 63 72 commandXML->appendChild($dom->cr
6a820 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6e 6f 64 65 20 3d eateTextNode($name));.}..$node.=
6a840 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 2d 3e 67 65 74 45 6c 65 6d 65 .$command->asXml(true)->getEleme
6a860 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 63 6f 6d 6d 61 6e 64 27 29 2d 3e 69 74 65 6d 28 30 29 ntsByTagName('command')->item(0)
6a880 3b 0a 24 6e 6f 64 65 20 3d 20 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 6e 6f 64 65 ;.$node.=.$dom->importNode($node
6a8a0 2c 20 74 72 75 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 ,.true);..$commandsXML->appendCh
6a8c0 69 6c 64 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f ild($node);.}.}..return.$asDom.?
6a8e0 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a .$dom.:.$dom->saveXml();.}......
6a900 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 69 6f ..public.function.renderExceptio
6a920 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 n($e,.$output).{.$strlen.=.funct
6a940 69 6f 6e 20 28 24 73 74 72 69 6e 67 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 ion.($string).{.if.(!function_ex
6a960 69 73 74 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 ists('mb_strlen')).{.return.strl
6a980 65 6e 28 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 en($string);.}..if.(false.===.$e
6a9a0 6e 63 6f 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 ncoding.=.mb_detect_encoding($st
6a9c0 72 69 6e 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 ring)).{.return.strlen($string);
6a9e0 0a 7d 0a 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 .}..return.mb_strlen($string,.$e
6aa00 6e 63 6f 64 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 6f 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 ncoding);.};..do.{.$title.=.spri
6aa20 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a ntf('..[%s]..',.get_class($e));.
6aa40 24 6c 65 6e 20 3d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d $len.=.$strlen($title);.$width.=
6aa60 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 .$this->getTerminalWidth().?.$th
6aa80 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 is->getTerminalWidth().-.1.:.PHP
6aaa0 5f 49 4e 54 5f 4d 41 58 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 _INT_MAX;.$lines.=.array();.fore
6aac0 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 22 7b 5c 72 3f 5c 6e 7d 22 2c 20 24 65 2d 3e 67 ach.(preg_split("{\r?\n}",.$e->g
6aae0 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 etMessage()).as.$line).{.foreach
6ab00 20 28 73 74 72 5f 73 70 6c 69 74 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 .(str_split($line,.$width.-.4).a
6ab20 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 s.$line).{.$lines[].=.sprintf('.
6ab40 20 25 73 20 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 73 74 72 6c .%s..',.$line);.$len.=.max($strl
6ab60 65 6e 28 24 6c 69 6e 65 29 20 2b 20 34 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 en($line).+.4,.$len);.}.}..$mess
6ab80 61 67 65 73 20 3d 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 ages.=.array(str_repeat('.',.$le
6aba0 6e 29 2c 20 24 74 69 74 6c 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 n),.$title.str_repeat('.',.max(0
6abc0 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 29 29 29 3b 0a 0a 66 6f ,.$len.-.$strlen($title))));..fo
6abe0 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 24 6d 65 73 73 61 reach.($lines.as.$line).{.$messa
6ac00 67 65 73 5b 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 ges[].=.$line.str_repeat('.',.$l
6ac20 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 en.-.$strlen($line));.}..$messag
6ac40 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 0a 24 es[].=.str_repeat('.',.$len);..$
6ac60 6f 75 74 70 75 74 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 output->writeln("");.$output->wr
6ac80 69 74 65 6c 6e 28 22 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 iteln("");.foreach.($messages.as
6aca0 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c .$message).{.$output->writeln('<
6acc0 65 72 72 6f 72 3e 27 2e 24 6d 65 73 73 61 67 65 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a error>'.$message.'</error>');.}.
6ace0 24 6f 75 74 70 75 74 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 $output->writeln("");.$output->w
6ad00 72 69 74 65 6c 6e 28 22 22 29 3b 0a 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 riteln("");..if.(OutputInterface
6ad20 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 3d 3d 20 24 6f 75 74 70 75 74 2d ::VERBOSITY_VERBOSE.===.$output-
6ad40 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 >getVerbosity()).{.$output->writ
6ad60 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 45 78 63 65 70 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f eln('<comment>Exception.trace:</
6ad80 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 0a 20 24 74 72 61 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 comment>');....$trace.=.$e->getT
6ada0 72 61 63 65 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 72 61 63 65 2c 20 61 72 race();.array_unshift($trace,.ar
6adc0 72 61 79 28 0a 27 66 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e ray(.'function'.=>.'',.'file'.=>
6ade0 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 .$e->getFile().!=.null.?.$e->get
6ae00 46 69 6c 65 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 File().:.'n/a',.'line'.=>.$e->ge
6ae20 74 4c 69 6e 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 tLine().!=.null.?.$e->getLine().
6ae40 3a 20 27 6e 2f 61 27 2c 0a 27 61 72 67 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a :.'n/a',.'args'.=>.array(),.));.
6ae60 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 .for.($i.=.0,.$count.=.count($tr
6ae80 61 63 65 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 ace);.$i.<.$count;.$i++).{.$clas
6aea0 73 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f s.=.isset($trace[$i]['class']).?
6aec0 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 .$trace[$i]['class'].:.'';.$type
6aee0 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 .=.isset($trace[$i]['type']).?.$
6af00 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 3a 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f trace[$i]['type'].:.'';.$functio
6af20 6e 20 3d 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c n.=.$trace[$i]['function'];.$fil
6af40 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 e.=.isset($trace[$i]['file']).?.
6af60 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e $trace[$i]['file'].:.'n/a';.$lin
6af80 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 e.=.isset($trace[$i]['line']).?.
6afa0 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 $trace[$i]['line'].:.'n/a';..$ou
6afc0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 25 73 25 73 25 73 28 29 tput->writeln(sprintf('.%s%s%s()
6afe0 20 61 74 20 3c 69 6e 66 6f 3e 25 73 3a 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c .at.<info>%s:%s</info>',.$class,
6b000 20 24 74 79 70 65 2c 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 .$type,.$function,.$file,.$line)
6b020 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 );.}..$output->writeln("");.$out
6b040 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 put->writeln("");.}.}.while.($e.
6b060 3d 20 24 65 2d 3e 67 65 74 50 72 65 76 69 6f 75 73 28 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 =.$e->getPrevious());..if.(null.
6b080 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 !==.$this->runningCommand).{.$ou
6b0a0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c tput->writeln(sprintf('<info>%s<
6b0c0 2f 69 6e 66 6f 3e 27 2c 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 /info>',.sprintf($this->runningC
6b0e0 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 ommand->getSynopsis(),.$this->ge
6b100 74 4e 61 6d 65 28 29 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 tName())));.$output->writeln("")
6b120 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 0a 7d 0a 0a 0a 0a 0a ;.$output->writeln("");.}.}.....
6b140 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 6e 61 6c ..protected.function.getTerminal
6b160 57 69 64 74 68 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 Width().{.if.(defined('PHP_WINDO
6b180 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 61 6e 73 69 63 6f 6e 20 3d WS_VERSION_BUILD').&&.$ansicon.=
6b1a0 20 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 .getenv('ANSICON')).{.return.pre
6b1c0 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 29 78 2e 2a 24 7d 27 2c 20 27 24 31 27 2c 20 g_replace('{^(\d+)x.*$}',.'$1',.
6b1e0 24 61 6e 73 69 63 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 72 $ansicon);.}..if.(preg_match("{r
6b200 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 7d 69 22 2c 20 24 74 ows.(\d+);.columns.(\d+);}i",.$t
6b220 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 2c 20 24 6d 61 74 63 68 29 29 20 his->getSttyColumns(),.$match)).
6b240 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 {.return.$match[2];.}.}.......pr
6b260 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 6e 61 6c 48 65 69 67 otected.function.getTerminalHeig
6b280 68 74 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 ht().{.if.(defined('PHP_WINDOWS_
6b2a0 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 61 6e 73 69 63 6f 6e 20 3d 20 67 65 VERSION_BUILD').&&.$ansicon.=.ge
6b2c0 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 tenv('ANSICON')).{.return.preg_r
6b2e0 65 70 6c 61 63 65 28 27 7b 5e 5c 64 2b 78 5c 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 eplace('{^\d+x\d+.\(\d+x(\d+)\)$
6b300 7d 27 2c 20 27 24 31 27 2c 20 74 72 69 6d 28 24 61 6e 73 69 63 6f 6e 29 29 3b 0a 7d 0a 0a 69 66 }',.'$1',.trim($ansicon));.}..if
6b320 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 6d .(preg_match("{rows.(\d+);.colum
6b340 6e 73 2e 28 5c 64 2b 29 3b 7d 69 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 ns.(\d+);}i",.$this->getSttyColu
6b360 6d 6e 73 28 29 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 mns(),.$match)).{.return.$match[
6b380 31 5d 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 75 6e 63 74 69 1];.}.}.........protected.functi
6b3a0 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 on.getCommandName(InputInterface
6b3c0 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 46 69 72 .$input).{.return.$input->getFir
6b3e0 73 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 stArgument('command');.}.......p
6b400 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
6b420 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 75 74 tDefinition().{.return.new.Input
6b440 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 75 6d Definition(array(.new.InputArgum
6b460 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 52 45 ent('command',.InputArgument::RE
6b480 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 65 27 QUIRED,.'The.command.to.execute'
6b4a0 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 27 2d ),..new.InputOption('--help',.'-
6b4c0 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 44 69 h',.InputOption::VALUE_NONE,.'Di
6b4e0 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 77 20 splay.this.help.message.'),.new.
6b500 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 6e 70 InputOption('--quiet',.'-q',.Inp
6b520 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 6f 75 utOption::VALUE_NONE,.'Do.not.ou
6b540 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 4f 70 tput.any.message.'),.new.InputOp
6b560 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 27 2c 20 49 6e 70 75 74 4f 70 74 tion('--verbose',.'-v',.InputOpt
6b580 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 61 73 65 20 76 65 72 62 6f ion::VALUE_NONE,.'Increase.verbo
6b5a0 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 sity.of.messages.'),.new.InputOp
6b5c0 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 2c 20 49 6e 70 75 74 4f 70 74 tion('--version',.'-V',.InputOpt
6b5e0 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 68 69 73 20 61 ion::VALUE_NONE,.'Display.this.a
6b600 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 pplication.version.'),.new.Input
6b620 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e Option('--ansi',.'',.InputOption
6b640 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 20 41 4e 53 49 20 6f 75 74 70 75 74 ::VALUE_NONE,.'Force.ANSI.output
6b660 2e 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 61 6e 73 69 27 .'),.new.InputOption('--no-ansi'
6b680 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 4e 4f 4e 45 2c 20 27 ,.'',.InputOption::VALUE_NONE,.'
6b6a0 44 69 73 61 62 6c 65 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 Disable.ANSI.output.'),.new.Inpu
6b6c0 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 tOption('--no-interaction',.'-n'
6b6e0 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
6b700 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 76 65 20 71 75 65 73 74 69 6f 6e 2e ot.ask.any.interactive.question.
6b720 27 29 2c 0a 29 29 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 '),.));.}.......protected.functi
6b740 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 72 65 74 75 72 6e on.getDefaultCommands().{.return
6b760 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 28 29 2c 20 6e 65 77 20 4c 69 .array(new.HelpCommand(),.new.Li
6b780 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 stCommand());.}.......protected.
6b7a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b function.getDefaultHelperSet().{
6b7c0 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 0a 6e 65 77 .return.new.HelperSet(array(.new
6b7e0 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 69 61 6c 6f 67 48 65 .FormatterHelper(),.new.DialogHe
6b800 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 lper(),.));.}.......private.func
6b820 74 69 6f 6e 20 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e tion.getSttyColumns().{.if.(!fun
6b840 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 72 65 74 ction_exists('proc_open')).{.ret
6b860 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 72 72 61 79 28 urn;.}..$descriptorspec.=.array(
6b880 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 3d 3e 20 61 72 1.=>.array('pipe',.'w'),.2.=>.ar
6b8a0 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 20 3d 20 70 72 ray('pipe',.'w'));.$process.=.pr
6b8c0 6f 63 5f 6f 70 65 6e 28 27 73 74 74 79 20 2d 61 20 7c 20 67 72 65 70 20 63 6f 6c 75 6d 6e 73 27 oc_open('stty.-a.|.grep.columns'
6b8e0 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c ,.$descriptorspec,.$pipes,.null,
6b900 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d .null,.array('suppress_errors'.=
6b920 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 >.true));.if.(is_resource($proce
6b940 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e ss)).{.$info.=.stream_get_conten
6b960 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 ts($pipes[1]);.fclose($pipes[1])
6b980 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 ;.fclose($pipes[2]);.proc_close(
6b9a0 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a $process);..return.$info;.}.}...
6b9c0 0a 0a 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 ......private.function.sortComma
6b9e0 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d nds($commands).{.$namespacedComm
6ba00 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 6d 6d 61 6e ands.=.array();.foreach.($comman
6ba20 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 6b 65 79 20 ds.as.$name.=>.$command).{.$key.
6ba40 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 6e 61 6d 65 2c =.$this->extractNamespace($name,
6ba60 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 7b 0a 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 61 .1);.if.(!$key).{.$key.=.'_globa
6ba80 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d l';.}..$namespacedCommands[$key]
6baa0 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d [$name].=.$command;.}.ksort($nam
6bac0 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d espacedCommands);..foreach.($nam
6bae0 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 73 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 7b espacedCommands.as.&$commands).{
6bb00 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 61 .ksort($commands);.}..return.$na
6bb20 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 mespacedCommands;.}.........priv
6bb40 61 74 65 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 53 75 67 67 ate.function.getAbbreviationSugg
6bb60 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e estions($abbrevs).{.return.sprin
6bb80 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 73 5b 30 5d 2c 20 24 61 62 62 tf('%s,.%s%s',.$abbrevs[0],.$abb
6bba0 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 3e 20 32 20 3f 20 73 revs[1],.count($abbrevs).>.2.?.s
6bbc0 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c 20 63 6f 75 6e 74 28 24 61 62 printf('.and.%d.more',.count($ab
6bbe0 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 brevs).-.2).:.'');.}..........pr
6bc00 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 ivate.function.extractNamespace(
6bc20 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 74 73 20 3d $name,.$limit.=.null).{.$parts.=
6bc40 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 72 72 61 79 5f 70 6f 70 28 .explode(':',.$name);.array_pop(
6bc60 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 6e 75 $parts);..return.implode(':',.nu
6bc80 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 3a 20 61 72 72 61 79 5f 73 ll.===.$limit.?.$parts.:.array_s
6bca0 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a lice($parts,.0,.$limit));.}.....
6bcc0 0a 0a 0a 0a 0a 70 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 .....private.function.findAltern
6bce0 61 74 69 76 65 43 6f 6d 6d 61 6e 64 73 28 24 6e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b ativeCommands($name,.$abbrevs).{
6bd00 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 69 74 65 6d 29 20 7b 0a 72 .$callback.=.function($item).{.r
6bd20 65 74 75 72 6e 20 24 69 74 65 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 3b 0a 0a 72 65 74 75 eturn.$item->getName();.};..retu
6bd40 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
6bd60 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 ,.$this->commands,.$abbrevs,.$ca
6bd80 6c 6c 62 61 63 6b 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 llback);.}..........private.func
6bda0 74 69 6f 6e 20 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 24 6e tion.findAlternativeNamespace($n
6bdc0 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 ame,.$abbrevs).{.return.$this->f
6bde0 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 65 indAlternatives($name,.$this->ge
6be00 74 4e 61 6d 65 73 70 61 63 65 73 28 29 2c 20 24 61 62 62 72 65 76 73 29 3b 0a 7d 0a 0a 0a 0a 0a tNamespaces(),.$abbrevs);.}.....
6be20 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 66 69 6e 64 41 6c 74 ........private.function.findAlt
6be40 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 24 61 ernatives($name,.$collection,.$a
6be60 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 61 6c 74 bbrevs,.$callback.=.null).{.$alt
6be80 65 72 6e 61 74 69 76 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 ernatives.=.array();..foreach.($
6bea0 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 collection.as.$item).{.if.(null.
6bec0 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 69 74 65 6d 20 3d 20 63 61 6c 6c 5f 75 73 !==.$callback).{.$item.=.call_us
6bee0 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a 0a 24 6c er_func($callback,.$item);.}..$l
6bf00 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a ev.=.levenshtein($name,.$item);.
6bf20 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c if.($lev.<=.strlen($name)./.3.||
6bf40 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 .false.!==.strpos($item,.$name))
6bf60 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 3d 20 24 6c 65 76 3b 0a .{.$alternatives[$item].=.$lev;.
6bf80 7d 0a 7d 0a 0a 69 66 20 28 21 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 20 7b 0a 66 6f 72 65 61 }.}..if.(!$alternatives).{.forea
6bfa0 63 68 20 28 24 61 62 62 72 65 76 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 73 29 ch.($abbrevs.as.$key.=>.$values)
6bfc0 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 6b 65 .{.$lev.=.levenshtein($name,.$ke
6bfe0 79 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 y);.if.($lev.<=.strlen($name)./.
6c000 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 24 6e 61 6d 3.||.false.!==.strpos($key,.$nam
6c020 65 29 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 e)).{.foreach.($values.as.$value
6c040 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 76 61 6c 75 65 5d 20 3d 20 24 6c 65 76 ).{.$alternatives[$value].=.$lev
6c060 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 61 73 6f 72 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b ;.}.}.}.}..asort($alternatives);
6c080 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 61 6c 74 65 72 6e 61 74 69 76 65 ..return.array_keys($alternative
6c0a0 73 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 s);.}.}.<?php...........namespac
6c0c0 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
6c0e0 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 6e 73 6f ut;..use.Symfony\Component\Conso
6c100 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 0a 0a le\Output\OutputInterface;......
6c120 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ..interface.ConsoleOutputInterfa
6c140 63 65 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a ce.extends.OutputInterface.{....
6c160 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 74 28 29 public.function.getErrorOutput()
6c180 3b 0a 0a 70 75 62 6c 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 ;..public.function.setErrorOutpu
6c1a0 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 t(OutputInterface.$error);.}.<?p
6c1c0 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
6c1e0 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 0a 75 73 65 20 53 79 omponent\Console\Output;..use.Sy
6c200 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
6c220 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 65 3b 0a 75 73 65 20 r\OutputFormatterInterface;.use.
6c240 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 6f 72 6d 61 74 Symfony\Component\Console\Format
6c260 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 0a 0a 0a 0a 0a 0a 0a ter\OutputFormatter;............
6c280 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 ...abstract.class.Output.impleme
6c2a0 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 nts.OutputInterface.{.private.$v
6c2c0 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a erbosity;.private.$formatter;...
6c2e0 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
6c300 75 63 74 28 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 49 54 59 uct($verbosity.=.self::VERBOSITY
6c320 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 75 74 70 _NORMAL,.$decorated.=.null,.Outp
6c340 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 20 utFormatterInterface.$formatter.
6c360 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c =.null).{.$this->verbosity.=.nul
6c380 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 79 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 l.===.$verbosity.?.self::VERBOSI
6c3a0 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 TY_NORMAL.:.$verbosity;.$this->f
6c3c0 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 66 6f 72 6d 61 74 74 65 72 20 3f ormatter.=.null.===.$formatter.?
6c3e0 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 20 3a 20 24 66 6f 72 6d 61 74 .new.OutputFormatter().:.$format
6c400 74 65 72 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 ter;.$this->formatter->setDecora
6c420 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a ted((Boolean).$decorated);.}....
6c440 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 74 74 65 .....public.function.setFormatte
6c460 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
6c480 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 66 6f 72 atter).{.$this->formatter.=.$for
6c4a0 6d 61 74 74 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 matter;.}.........public.functio
6c4c0 6e 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 n.getFormatter().{.return.$this-
6c4e0 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >formatter;.}.........public.fun
6c500 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 0a 7b ction.setDecorated($decorated).{
6c520 0a 24 74 68 69 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 .$this->formatter->setDecorated(
6c540 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a (Boolean).$decorated);.}........
6c560 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 64 28 29 0a 7b .public.function.isDecorated().{
6c580 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f .return.$this->formatter->isDeco
6c5a0 72 61 74 65 64 28 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 rated();.}.........public.functi
6c5c0 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d on.setVerbosity($level).{.$this-
6c5e0 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 28 69 6e 74 29 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a >verbosity.=.(int).$level;.}....
6c600 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 62 6f 73 69 74 .....public.function.getVerbosit
6c620 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 74 79 3b 0a 7d y().{.return.$this->verbosity;.}
6c640 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 72 69 74 65 6c ..........public.function.writel
6c660 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d n($messages,.$type.=.0).{.$this-
6c680 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 74 72 75 65 2c 20 24 74 79 70 65 29 3b 0a >write($messages,.true,.$type);.
6c6a0 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 77 72 }.............public.function.wr
6c6c0 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 66 61 6c 73 65 2c ite($messages,.$newline.=.false,
6c6e0 20 24 74 79 70 65 20 3d 20 30 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 .$type.=.0).{.if.(self::VERBOSIT
6c700 59 5f 51 55 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 Y_QUIET.===.$this->verbosity).{.
6c720 72 65 74 75 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 return;.}..$messages.=.(array).$
6c740 6d 65 73 73 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 messages;..foreach.($messages.as
6c760 20 24 6d 65 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 .$message).{.switch.($type).{.ca
6c780 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 4e 4f 52 4d 41 se.OutputInterface::OUTPUT_NORMA
6c7a0 4c 3a 0a 24 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 L:.$message.=.$this->formatter->
6c7c0 66 6f 72 6d 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 format($message);.break;.case.Ou
6c7e0 74 70 75 74 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 tputInterface::OUTPUT_RAW:.break
6c800 3b 0a 63 61 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 ;.case.OutputInterface::OUTPUT_P
6c820 4c 41 49 4e 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 LAIN:.$message.=.strip_tags($thi
6c840 73 2d 3e 66 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 s->formatter->format($message));
6c860 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 20 5c 49 6e 76 61 .break;.default:.throw.new.\Inva
6c880 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 55 6e lidArgumentException(sprintf('Un
6c8a0 6b 6e 6f 77 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 known.output.type.given.(%s)',.$
6c8c0 74 79 70 65 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 type));.}..$this->doWrite($messa
6c8e0 67 65 2c 20 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 ge,.$newline);.}.}........abstra
6c900 63 74 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 ct.public.function.doWrite($mess
6c920 61 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 age,.$newline);.}.<?php.........
6c940 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
6c960 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 nsole\Output;...........class.Nu
6c980 6c 6c 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 0a 0a 0a 0a 0a 0a llOutput.extends.Output.{.......
6c9a0 70 75 62 6c 69 63 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 public.function.doWrite($message
6c9c0 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$newline).{.}.}.<?php.........
6c9e0 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
6ca00 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 6d 70 6f nsole\Output;..use.Symfony\Compo
6ca20 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 6f 72 nent\Console\Formatter\OutputFor
6ca40 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 matterInterface;.........interfa
6ca60 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 42 4f ce.OutputInterface.{.const.VERBO
6ca80 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f SITY_QUIET.=.0;.const.VERBOSITY_
6caa0 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 NORMAL.=.1;.const.VERBOSITY_VERB
6cac0 4f 53 45 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3d 20 OSE.=.2;..const.OUTPUT_NORMAL.=.
6cae0 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 6f 6e 73 74 20 4f 0;.const.OUTPUT_RAW.=.1;.const.O
6cb00 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 0a 0a 0a 66 75 6e UTPUT_PLAIN.=.2;.............fun
6cb20 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 65 20 ction.write($messages,.$newline.
6cb40 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 =.false,.$type.=.0);..........fu
6cb60 6e 63 74 69 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 nction.writeln($messages,.$type.
6cb80 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 =.0);.........function.setVerbos
6cba0 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 ity($level);.........function.ge
6cbc0 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 tVerbosity();.........function.s
6cbe0 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 0a 0a 0a 0a 0a etDecorated($decorated);........
6cc00 0a 66 75 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 .function.isDecorated();........
6cc20 0a 66 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 .function.setFormatter(OutputFor
6cc40 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 29 3b 0a 0a 0a 0a matterInterface.$formatter);....
6cc60 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a .....function.getFormatter();.}.
6cc80 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
6cca0 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 0a 75 73 65 y\Component\Console\Output;..use
6ccc0 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 6f 72 6d 61 .Symfony\Component\Console\Forma
6cce0 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 65 3b 0a 0a tter\OutputFormatterInterface;..
6cd00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 ...............class.StreamOutpu
6cd20 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 t.extends.Output.{.private.$stre
6cd40 61 6d 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 6e 63 74 69 6f am;...............public.functio
6cd60 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 n.__construct($stream,.$verbosit
6cd80 79 20 3d 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 y.=.self::VERBOSITY_NORMAL,.$dec
6cda0 6f 72 61 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 orated.=.null,.OutputFormatterIn
6cdc0 74 65 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 69 66 20 terface.$formatter.=.null).{.if.
6cde0 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 (!is_resource($stream).||.'strea
6ce00 6d 27 20 21 3d 3d 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d m'.!==.get_resource_type($stream
6ce20 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
6ce40 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 xception('The.StreamOutput.class
6ce60 20 6e 65 65 64 73 20 61 20 73 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 .needs.a.stream.as.its.first.arg
6ce80 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 ument.');.}..$this->stream.=.$st
6cea0 72 65 61 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 ream;..if.(null.===.$decorated).
6cec0 7b 0a 24 64 65 63 6f 72 61 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 {.$decorated.=.$this->hasColorSu
6cee0 70 70 6f 72 74 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f pport($decorated);.}..parent::__
6cf00 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 6f 72 61 74 65 64 construct($verbosity,.$decorated
6cf20 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 6c 69 63 20 66 75 ,.$formatter);.}.......public.fu
6cf40 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 6e 20 24 74 68 69 nction.getStream().{.return.$thi
6cf60 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e s->stream;.}..........public.fun
6cf80 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 6c 69 6e 65 ction.doWrite($message,.$newline
6cfa0 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 68 69 73 2d ).{.if.(false.===.@fwrite($this-
6cfc0 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 3f 20 50 48 >stream,.$message.($newline.?.PH
6cfe0 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 77 20 5c 52 P_EOL.:.''))).{.....throw.new.\R
6d000 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 72 69 74 65 untimeException('Unable.to.write
6d020 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 73 2d 3e 73 .output.');...}..fflush($this->s
6d040 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 65 64 20 66 tream);.}............protected.f
6d060 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 0a 20 69 66 unction.hasColorSupport().{...if
6d080 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 27 29 20 7b .(DIRECTORY_SEPARATOR.==.'\\').{
6d0a0 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 53 49 43 4f .return.false.!==.getenv('ANSICO
6d0c0 4e 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 73 74 73 28 27 N');.}..return.function_exists('
6d0e0 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 61 74 74 79 28 posix_isatty').&&.@posix_isatty(
6d100 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 0a 0a 0a 0a 0a $this->stream);...}.}.<?php.....
6d120 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
6d140 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 6f 6e 79 5c 43 t\Console\Output;..use.Symfony\C
6d160 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 75 omponent\Console\Formatter\Outpu
6d180 74 46 6f 72 6d 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 tFormatter;.use.Symfony\Componen
6d1a0 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 74 t\Console\Formatter\OutputFormat
6d1c0 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 43 6f 6d 70 6f 6e terInterface;.use.Symfony\Compon
6d1e0 65 6e 74 5c 43 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 ent\Console\Output\ConsoleOutput
6d200 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 73 73 Interface;.................class
6d220 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 .ConsoleOutput.extends.StreamOut
6d240 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 put.implements.ConsoleOutputInte
6d260 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a rface.{.private.$stderr;........
6d280 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(
6d2a0 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 49 54 59 5f 4e 4f 52 $verbosity.=.self::VERBOSITY_NOR
6d2c0 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 75 74 70 75 74 46 6f MAL,.$decorated.=.null,.OutputFo
6d2e0 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 20 3d 20 6e 75 rmatterInterface.$formatter.=.nu
6d300 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 ll).{.$outputStream.=.'php://std
6d320 6f 75 74 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f out';.if.(!$this->hasStdoutSuppo
6d340 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f rt()).{.$outputStream.=.'php://o
6d360 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 utput';.}..parent::__construct(f
6d380 6f 70 65 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f open($outputStream,.'w'),.$verbo
6d3a0 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a sity,.$decorated,.$formatter);..
6d3c0 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 $this->stderr.=.new.StreamOutput
6d3e0 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 (fopen('php://stderr',.'w'),.$ve
6d400 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 rbosity,.$decorated,.$formatter)
6d420 3b 0a 7d 0a 0a 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 ;.}..public.function.setDecorate
6d440 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 6f 72 d($decorated).{.parent::setDecor
6d460 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d ated($decorated);.$this->stderr-
6d480 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 3b 0a 7d 0a 0a 70 75 >setDecorated($decorated);.}..pu
6d4a0 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 72 28 4f 75 74 70 75 blic.function.setFormatter(Outpu
6d4c0 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 29 0a tFormatterInterface.$formatter).
6d4e0 7b 0a 70 61 72 65 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 {.parent::setFormatter($formatte
6d500 72 29 3b 0a 24 74 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 r);.$this->stderr->setFormatter(
6d520 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $formatter);.}..public.function.
6d540 73 65 74 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 setVerbosity($level).{.parent::s
6d560 65 74 56 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 etVerbosity($level);.$this->stde
6d580 72 72 2d 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 rr->setVerbosity($level);.}.....
6d5a0 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 74 28 29 public.function.getErrorOutput()
6d5c0 0a 7b 0a 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 70 75 62 6c .{.return.$this->stderr;.}..publ
6d5e0 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
6d600 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
6d620 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
6d640 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().
6d660 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('
6d680 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
6d6a0 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
6d6c0 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 69 rator;..use.Symfony\Component\Fi
6d6e0 6e 64 65 72 5c 47 6c 6f 62 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 nder\Glob;.......class.FilenameF
6d700 69 6c 74 65 72 49 74 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 ilterIterator.extends.MultiplePc
6d720 72 65 46 69 6c 74 65 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 reFilterIterator.{.......public.
6d740 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 6e 61 6d 65 20 3d 20 function.accept().{.$filename.=.
6d760 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 $this->getFilename();....foreach
6d780 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 72 65 67 65 .($this->noMatchRegexps.as.$rege
6d7a0 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 69 6c x).{.if.(preg_match($regex,.$fil
6d7c0 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 0a 0a 20 24 ename)).{.return.false;.}.}....$
6d7e0 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 63 68 52 65 match.=.true;.if.($this->matchRe
6d800 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 65 61 63 68 gexps).{.$match.=.false;.foreach
6d820 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 67 65 78 29 .($this->matchRegexps.as.$regex)
6d840 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 69 6c 65 6e .{.if.(preg_match($regex,.$filen
6d860 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 72 65 74 75 ame)).{.return.true;.}.}.}..retu
6d880 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 rn.$match;.}............protecte
6d8a0 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
6d8c0 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.:.
6d8e0 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a Glob::toRegex($str);.}.}.<?php..
6d900 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
6d920 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 63 6c 61 73 nent\Finder\Iterator;.......clas
6d940 73 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 s.SortableIterator.implements.\I
6d960 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 0a 7b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 teratorAggregate.{.const.SORT_BY
6d980 5f 4e 41 4d 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 _NAME.=.1;.const.SORT_BY_TYPE.=.
6d9a0 32 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 2;.const.SORT_BY_ACCESSED_TIME.=
6d9c0 20 33 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d .3;.const.SORT_BY_CHANGED_TIME.=
6d9e0 20 34 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 .4;.const.SORT_BY_MODIFIED_TIME.
6da00 3d 20 35 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 =.5;..private.$iterator;.private
6da20 20 24 73 6f 72 74 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 .$sort;........public.function._
6da40 5f 63 6f 6e 73 74 72 75 63 74 28 5c 54 72 61 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f _construct(\Traversable.$iterato
6da60 72 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 r,.$sort).{.$this->iterator.=.$i
6da80 74 65 72 61 74 6f 72 3b 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 terator;..if.(self::SORT_BY_NAME
6daa0 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
6dac0 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 tion.($a,.$b).{.return.strcmp($a
6dae0 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 ->getRealpath(),.$b->getRealpath
6db00 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f ());.};.}.elseif.(self::SORT_BY_
6db20 54 59 50 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 TYPE.===.$sort).{.$this->sort.=.
6db40 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 function.($a,.$b).{.if.($a->isDi
6db60 72 28 29 20 26 26 20 24 62 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 r().&&.$b->isFile()).{.return.-1
6db80 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 61 2d 3e 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e ;.}.elseif.($a->isFile().&&.$b->
6dba0 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 isDir()).{.return.1;.}..return.s
6dbc0 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 67 65 74 trcmp($a->getRealpath(),.$b->get
6dbe0 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 66 3a 3a Realpath());.};.}.elseif.(self::
6dc00 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 SORT_BY_ACCESSED_TIME.===.$sort)
6dc20 20 7b 0a 24 74 68 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 .{.$this->sort.=.function.($a,.$
6dc40 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 41 54 69 6d 65 28 29 20 3e 20 24 62 b).{.return.($a->getATime().>.$b
6dc60 2d 3e 67 65 74 41 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 ->getATime());.};.}.elseif.(self
6dc80 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 ::SORT_BY_CHANGED_TIME.===.$sort
6dca0 29 20 7b 0a 24 74 68 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 ).{.$this->sort.=.function.($a,.
6dcc0 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 3e 20 24 $b).{.return.($a->getCTime().>.$
6dce0 62 2d 3e 67 65 74 43 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c b->getCTime());.};.}.elseif.(sel
6dd00 66 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f f::SORT_BY_MODIFIED_TIME.===.$so
6dd20 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 rt).{.$this->sort.=.function.($a
6dd40 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 3e ,.$b).{.return.($a->getMTime().>
6dd60 20 24 62 2d 3e 67 65 74 4d 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 .$b->getMTime());.};.}.elseif.(i
6dd80 73 5f 63 61 6c 6c 61 62 6c 65 28 24 73 6f 72 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 s_callable($sort)).{.$this->sort
6dda0 20 3d 20 24 73 6f 72 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e .=.$sort;.}.else.{.throw.new.\In
6ddc0 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 6f 72 74 validArgumentException('The.Sort
6dde0 61 62 6c 65 49 74 65 72 61 74 6f 72 20 74 61 6b 65 73 20 61 20 50 48 50 20 63 61 6c 6c 62 61 63 ableIterator.takes.a.PHP.callbac
6de00 6b 20 6f 72 20 61 20 76 61 6c 69 64 20 62 75 69 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 k.or.a.valid.built-in.sort.algor
6de20 69 74 68 6d 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 ithm.as.an.argument.');.}.}..pub
6de40 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 24 61 72 lic.function.getIterator().{.$ar
6de60 72 61 79 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 ray.=.iterator_to_array($this->i
6de80 74 65 72 61 74 6f 72 2c 20 74 72 75 65 29 3b 0a 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 terator,.true);.uasort($array,.$
6dea0 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 this->sort);..return.new.\ArrayI
6dec0 74 65 72 61 74 6f 72 28 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a terator($array);.}.}.<?php......
6dee0 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
6df00 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 44 61 \Finder\Iterator;.......class.Da
6df20 74 65 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 5c 46 teRangeFilterIterator.extends.\F
6df40 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 ilterIterator.{.private.$compara
6df60 74 6f 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 69 63 20 66 75 tors.=.array();........public.fu
6df80 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 69 74 nction.__construct(\Iterator.$it
6dfa0 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 erator,.array.$comparators).{.$t
6dfc0 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b his->comparators.=.$comparators;
6dfe0 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 29 ..parent::__construct($iterator)
6e000 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 74 ;.}.......public.function.accept
6e020 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 28 ().{.$fileinfo.=.$this->current(
6e040 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a );..if.(!$fileinfo->isFile()).{.
6e060 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 64 61 74 65 20 3d 20 24 66 69 6c return.true;.}..$filedate.=.$fil
6e080 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 einfo->getMTime();.foreach.($thi
6e0a0 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 s->comparators.as.$compare).{.if
6e0c0 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 64 61 74 65 29 29 20 7b 0a .(!$compare->test($filedate)).{.
6e0e0 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 3b 0a return.false;.}.}..return.true;.
6e100 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 79 }.}.<?php...........namespace.Sy
6e120 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 72 3b mfony\Component\Finder\Iterator;
6e140 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 5c 53 ..use.Symfony\Component\Finder\S
6e160 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 73 69 76 plFileInfo;.......class.Recursiv
6e180 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 65 63 75 eDirectoryIterator.extends.\Recu
6e1a0 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 rsiveDirectoryIterator.{.public.
6e1c0 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 68 2c 20 24 66 6c 61 function.__construct($path,.$fla
6e1e0 67 73 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 6c 66 3a 3a 43 55 52 52 45 4e gs).{.if.($flags.&.(self::CURREN
6e200 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 T_AS_PATHNAME.|.self::CURRENT_AS
6e220 5f 53 45 4c 46 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 _SELF)).{.throw.new.\RuntimeExce
6e240 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f 6e 6c 79 20 73 75 70 70 6f 72 ption('This.iterator.only.suppor
6e260 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 20 66 69 6c 65 69 6e 66 6f 2e t.returning.current.as.fileinfo.
6e280 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 ');.}..parent::__construct($path
6e2a0 2c 20 24 66 6c 61 67 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 ,.$flags);.}.......public.functi
6e2c0 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 6c on.current().{.return.new.SplFil
6e2e0 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 68 eInfo(parent::current()->getPath
6e300 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 68 name(),.$this->getSubPath(),.$th
6e320 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 7d 0a 3c 3f 70 68 70 is->getSubPathname());.}.}.<?php
6e340 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
6e360 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 0a ponent\Finder\Iterator;.........
6e380 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 .class.CustomFilterIterator.exte
6e3a0 6e 64 73 20 5c 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 24 66 nds.\FilterIterator.{.private.$f
6e3c0 69 6c 74 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 69 63 20 ilters.=.array();........public.
6e3e0 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.$
6e400 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 iterator,.array.$filters).{.fore
6e420 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 ach.($filters.as.$filter).{.if.(
6e440 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e !is_callable($filter)).{.throw.n
6e460 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 6e ew.\InvalidArgumentException('In
6e480 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 valid.PHP.callback.');.}.}.$this
6e4a0 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f ->filters.=.$filters;..parent::_
6e4c0 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
6e4e0 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
6e500 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 nfo.=.$this->current();..foreach
6e520 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 .($this->filters.as.$filter).{.i
6e540 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c f.(false.===.call_user_func($fil
6e560 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ter,.$fileinfo)).{.return.false;
6e580 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....
6e5a0 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
6e5c0 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.
6e5e0 44 65 70 74 68 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 DepthRangeFilterIterator.extends
6e600 20 5c 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 24 6d 69 6e 44 .\FilterIterator.{.private.$minD
6e620 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e epth.=.0;........public.function
6e640 20 5f 5f 63 6f 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 .__construct(\RecursiveIteratorI
6e660 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 70 61 72 terator.$iterator,.array.$compar
6e680 61 74 6f 72 73 29 0a 7b 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 24 6d 61 78 44 65 70 74 ators).{.$minDepth.=.0;.$maxDept
6e6a0 68 20 3d 20 49 4e 46 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 h.=.INF;.foreach.($comparators.a
6e6c0 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 29 20 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 61 72 s.$comparator).{.switch.($compar
6e6e0 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a ator->getOperator()).{.case.'>':
6e700 0a 24 6d 69 6e 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 61 72 .$minDepth.=.$comparator->getTar
6e720 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 6d 69 get().+.1;.break;.case.'>=':.$mi
6e740 6e 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 61 72 67 65 74 28 nDepth.=.$comparator->getTarget(
6e760 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 );.break;.case.'<':.$maxDepth.=.
6e780 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 2d 20 31 3b 0a 62 72 $comparator->getTarget().-.1;.br
6e7a0 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d eak;.case.'<=':.$maxDepth.=.$com
6e7c0 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 3b 0a 64 65 66 parator->getTarget();.break;.def
6e7e0 61 75 6c 74 3a 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 ault:.$minDepth.=.$maxDepth.=.$c
6e800 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 omparator->getTarget();.}.}..$th
6e820 69 73 2d 3e 6d 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 is->minDepth.=.$minDepth;.$itera
6e840 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 74 68 28 49 4e 46 20 3d 3d 3d 20 24 6d 61 78 44 65 70 tor->setMaxDepth(INF.===.$maxDep
6e860 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 3a 3a 5f th.?.-1.:.$maxDepth);..parent::_
6e880 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
6e8a0 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 75 72 6e ublic.function.accept().{.return
6e8c0 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 65 74 44 .$this->getInnerIterator()->getD
6e8e0 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 7d 0a 3c epth().>=.$this->minDepth;.}.}.<
6e900 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
6e920 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 0a \Component\Finder\Iterator;.....
6e940 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 ..class.FileTypeFilterIterator.e
6e960 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 63 6f 6e 73 74 20 4f xtends.\FilterIterator.{.const.O
6e980 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 NLY_FILES.=.1;.const.ONLY_DIRECT
6e9a0 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a ORIES.=.2;..private.$mode;......
6e9c0 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 5c 49 ..public.function.__construct(\I
6e9e0 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 terator.$iterator,.$mode).{.$thi
6ea00 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 s->mode.=.$mode;..parent::__cons
6ea20 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 75 62 6c 69 63 truct($iterator);.}.......public
6ea40 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 4f .function.accept().{.if.(self::O
6ea60 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f NLY_DIRECTORIES.===.(self::ONLY_
6ea80 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 74 DIRECTORIES.&.$this->mode).&&.$t
6eaa0 68 69 73 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d his->isFile()).{.return.false;.}
6eac0 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 .elseif.(self::ONLY_FILES.===.(s
6eae0 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 elf::ONLY_FILES.&.$this->mode).&
6eb00 26 20 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 &.$this->isDir()).{.return.false
6eb20 3b 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 0a ;.}..return.true;.}.}.<?php.....
6eb40 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
6eb60 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 53 t\Finder\Iterator;.......class.S
6eb80 69 7a 65 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 5c izeRangeFilterIterator.extends.\
6eba0 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 24 63 6f 6d 70 61 72 FilterIterator.{.private.$compar
6ebc0 61 74 6f 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 69 63 20 66 ators.=.array();........public.f
6ebe0 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 69 unction.__construct(\Iterator.$i
6ec00 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 terator,.array.$comparators).{.$
6ec20 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 this->comparators.=.$comparators
6ec40 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
6ec60 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
6ec80 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 t().{.if.(!$this->isFile()).{.re
6eca0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 74 68 69 73 2d turn.true;.}..$filesize.=.$this-
6ecc0 3e 67 65 74 53 69 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 >getSize();.foreach.($this->comp
6ece0 61 72 61 74 6f 72 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 arators.as.$compare).{.if.(!$com
6ed00 70 61 72 65 2d 3e 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 pare->test($filesize)).{.return.
6ed20 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 0a 7d 0a 3c 3f 70 false;.}.}..return.true;.}.}.<?p
6ed40 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
6ed60 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 0a 0a 0a omponent\Finder\Iterator;.......
6ed80 0a 61 62 73 74 72 61 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 .abstract.class.MultiplePcreFilt
6eda0 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 erIterator.extends.\FilterIterat
6edc0 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 70 72 or.{.protected.$matchRegexps;.pr
6ede0 6f 74 65 63 74 65 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 0a 0a 0a 0a 0a 0a 0a otected.$noMatchRegexps;........
6ee00 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 5c 49 74 .public.function.__construct(\It
6ee20 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 6d 61 74 63 68 50 61 erator.$iterator,.array.$matchPa
6ee40 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a tterns,.array.$noMatchPatterns).
6ee60 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b {.$this->matchRegexps.=.array();
6ee80 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 .foreach.($matchPatterns.as.$pat
6eea0 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 tern).{.$this->matchRegexps[].=.
6eec0 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 $this->toRegex($pattern);.}..$th
6eee0 69 73 2d 3e 6e 6f 4d 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 is->noMatchRegexps.=.array();.fo
6ef00 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 reach.($noMatchPatterns.as.$patt
6ef20 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d ern).{.$this->noMatchRegexps[].=
6ef40 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 61 .$this->toRegex($pattern);.}..pa
6ef60 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 0a 7d 0a rent::__construct($iterator);.}.
6ef80 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 73 52 65 67 ........protected.function.isReg
6efa0 65 78 28 24 73 74 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 7b ex($str).{.if.(preg_match('/^(.{
6efc0 33 2c 7d 3f 29 5b 69 6d 73 78 75 41 44 55 5d 2a 24 2f 27 2c 20 24 73 74 72 2c 20 24 6d 29 29 20 3,}?)[imsxuADU]*$/',.$str,.$m)).
6efe0 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 31 29 3b 0a {.$start.=.substr($m[1],.0,.1);.
6f000 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 66 20 28 24 $end.=.substr($m[1],.-1);..if.($
6f020 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 21 70 72 65 67 5f 6d start.===.$end).{.return.!preg_m
6f040 61 74 63 68 28 27 2f 5b 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c 20 24 73 74 61 72 atch('/[[:alnum:].\\\\]/',.$star
6f060 74 29 3b 0a 7d 0a 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 20 24 65 6e t);.}..if.($start.===.'{'.&&.$en
6f080 64 20 3d 3d 3d 20 27 7d 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 d.===.'}').{.return.true;.}.}..r
6f0a0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 eturn.false;.}.........abstract.
6f0c0 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)
6f0e0 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
6f100 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 72 3b mfony\Component\Finder\Iterator;
6f120 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c .......class.ExcludeDirectoryFil
6f140 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 terIterator.extends.\FilterItera
6f160 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a tor.{.private.$patterns;........
6f180 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 5c 49 74 65 public.function.__construct(\Ite
6f1a0 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f 72 rator.$iterator,.array.$director
6f1c0 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 ies).{.$this->patterns.=.array()
6f1e0 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 ;.foreach.($directories.as.$dire
6f200 63 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 27 23 28 ctory).{.$this->patterns[].=.'#(
6f220 5e 7c 2f 29 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 ^|/)'.preg_quote($directory,.'#'
6f240 29 2e 27 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 ).'(/|$)#';.}..parent::__constru
6f260 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 75 ct($iterator);.}.......public.fu
6f280 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d nction.accept().{.$path.=.$this-
6f2a0 3e 69 73 44 69 72 28 29 20 3f 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 >isDir().?.$this->getSubPathname
6f2c0 28 29 20 3a 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 3b 0a 24 70 61 74 68 20 ().:.$this->getSubPath();.$path.
6f2e0 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 66 6f 72 65 61 =.strtr($path,.'\\',.'/');.forea
6f300 63 68 20 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 ch.($this->patterns.as.$pattern)
6f320 20 7b 0a 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 70 61 74 .{.if.(preg_match($pattern,.$pat
6f340 68 29 29 20 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 h)).{.return.false;.}.}..return.
6f360 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 6d 65 73 70 true;.}.}.<?php...........namesp
6f380 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
6f3a0 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 65 6e 74 46 rator;........class.FilecontentF
6f3c0 69 6c 74 65 72 49 74 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 ilterIterator.extends.MultiplePc
6f3e0 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 reFilterIterator.{......public.f
6f400 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d unction.accept().{.if.(!$this->m
6f420 61 74 63 68 52 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 atchRegexps.&&.!$this->noMatchRe
6f440 67 65 78 70 73 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 gexps).{.return.true;.}..if.($th
6f460 69 73 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 52 65 61 64 61 62 6c is->isDir().||.!$this->isReadabl
6f480 65 28 29 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 e()).{.return.false;.}..$content
6f4a0 20 3d 20 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 6e 61 6d 65 20 .=.@file_get_contents($filename.
6f4c0 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 69 66 20 28 66 61 6c =.$this->getRealpath());.if.(fal
6f4e0 73 65 20 3d 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 se.===.$content).{.throw.new.\Ru
6f500 6e 74 69 6d 65 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 72 65 ntimeException(sprintf('Error.re
6f520 61 64 69 6e 67 20 66 69 6c 65 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 ading.file."%s".',.$this->getRea
6f540 6c 70 61 74 68 28 29 29 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e lpath()));.}....foreach.($this->
6f560 6e 6f 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 noMatchRegexps.as.$regex).{.if.(
6f580 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a preg_match($regex,.$content)).{.
6f5a0 72 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 return.false;.}.}....$match.=.tr
6f5c0 75 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 ue;.if.($this->matchRegexps).{.$
6f5e0 6d 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 match.=.false;.foreach.($this->m
6f600 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 65 atchRegexps.as.$regex).{.if.(pre
6f620 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 g_match($regex,.$content)).{.ret
6f640 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;.
6f660 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 74 6f 52 }.........protected.function.toR
6f680 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 egex($str).{.return.$this->isReg
6f6a0 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 ex($str).?.$str.:.'/'.preg_quote
6f6c0 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ($str,.'/').'/';.}.}.<?php......
6f6e0 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
6f700 5c 46 69 6e 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 \Finder\Comparator;.............
6f720 0a 0a 0a 0a 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 ...........class.NumberComparato
6f740 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 0a 70 75 r.extends.Comparator.{........pu
6f760 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 65 73 74 29 blic.function.__construct($test)
6f780 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 7c 21 3d 7c .{.if.(!preg_match('#^\s*(==|!=|
6f7a0 5b 3c 3e 5d 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 [<>]=?)?\s*([0-9\.]+)\s*([kmg]i?
6f7c0 29 3f 5c 73 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 )?\s*$#i',.$test,.$matches)).{.t
6f7e0 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 69 hrow.new.\InvalidArgumentExcepti
6f800 6f 6e 28 73 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 on(sprintf('Don\'t.understand."%
6f820 73 22 20 61 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 s".as.a.number.test.',.$test));.
6f840 7d 0a 0a 24 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 }..$target.=.$matches[2];.if.(!i
6f860 73 5f 6e 75 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 s_numeric($target)).{.throw.new.
6f880 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
6f8a0 66 28 27 49 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 f('Invalid.number."%s".',.$targe
6f8c0 74 29 29 3b 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 t));.}.if.(isset($matches[3])).{
6f8e0 0a 0a 20 73 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 ...switch.(strtolower($matches[3
6f900 5d 29 29 20 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 ])).{.case.'k':.$target.*=.1000;
6f920 0a 62 72 65 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 .break;.case.'ki':.$target.*=.10
6f940 32 34 3b 0a 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 24;.break;.case.'m':.$target.*=.
6f960 31 30 30 30 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 1000000;.break;.case.'mi':.$targ
6f980 65 74 20 2a 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 et.*=.1024*1024;.break;.case.'g'
6f9a0 3a 0a 24 74 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 :.$target.*=.1000000000;.break;.
6f9c0 63 61 73 65 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 case.'gi':.$target.*=.1024*1024*
6f9e0 31 30 32 34 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 1024;.break;.}.}..$this->setTarg
6fa00 65 74 28 24 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 et($target);.$this->setOperator(
6fa20 69 73 73 65 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 isset($matches[1]).?.$matches[1]
6fa40 20 3a 20 27 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 .:.'==');.}.}.<?php...........na
6fa60 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
6fa80 5c 43 6f 6d 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 \Comparator;.......class.Compara
6faa0 74 6f 72 0a 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 tor.{.private.$target;.private.$
6fac0 6f 70 65 72 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 operator.=.'==';.......public.fu
6fae0 6e 63 74 69 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 nction.getTarget().{.return.$thi
6fb00 73 2d 3e 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 s->target;.}.......public.functi
6fb20 6f 6e 20 73 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 on.setTarget($target).{.$this->t
6fb40 61 72 67 65 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 arget.=.$target;.}.......public.
6fb60 66 75 6e 63 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 function.getOperator().{.return.
6fb80 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->operator;.}.......public.
6fba0 66 75 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 function.setOperator($operator).
6fbc0 7b 0a 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 {.if.(!$operator).{.$operator.=.
6fbe0 27 3d 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 '==';.}..if.(!in_array($operator
6fc00 2c 20 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 ,.array('>',.'<',.'>=',.'<=',.'=
6fc20 3d 27 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 =',.'!='))).{.throw.new.\Invalid
6fc40 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 6e 76 61 6c ArgumentException(sprintf('Inval
6fc60 69 64 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 id.operator."%s".',.$operator));
6fc80 0a 7d 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 .}..$this->operator.=.$operator;
6fca0 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 74 65 73 74 28 24 74 .}.......public.function.test($t
6fcc0 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).
6fce0 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
6fd00 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
6fd20 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
6fd40 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
6fd60 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
6fd80 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.!=
6fda0 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.
6fdc0 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.....
6fde0 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
6fe00 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 t\Finder\Comparator;.......class
6fe20 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 .DateComparator.extends.Comparat
6fe40 6f 72 0a 7b 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 or.{.........public.function.__c
6fe60 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 onstruct($test).{.if.(!preg_matc
6fe80 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e 63 h('#^\s*(==|!=|[<>]=?|after|sinc
6fea0 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 2c e|before|until)?\s*(.+?)\s*$#i',
6fec0 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 20 6e 65 77 20 5c .$test,.$matches)).{.throw.new.\
6fee0 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
6ff00 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 73 20 61 20 64 61 ('Don\'t.understand."%s".as.a.da
6ff20 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 61 te.test.',.$test));.}..try.{.$da
6ff40 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 65 73 5b 32 5d 29 3b te.=.new.\DateTime($matches[2]);
6ff60 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 7d .$target.=.$date->format('U');.}
6ff80 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 74 68 72 6f 77 20 6e .catch.(\Exception.$e).{.throw.n
6ffa0 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 72 ew.\InvalidArgumentException(spr
6ffc0 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e 27 intf('"%s".is.not.a.valid.date.'
6ffe0 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 ,.$matches[2]));.}..$operator.=.
70000 69 73 73 65 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 isset($matches[1]).?.$matches[1]
70020 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 .:.'==';.if.('since'.===.$operat
70040 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 or.||.'after'.===.$operator).{.$
70060 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 3d operator.=.'>';.}..if.('until'.=
70080 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 6f 70 ==.$operator.||.'before'.===.$op
700a0 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 74 erator).{.$operator.=.'<';.}..$t
700c0 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 68 his->setOperator($operator);.$th
700e0 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 is->setTarget($target);.}.}.<?ph
70100 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
70120 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mponent\Finder;.................
70140 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 .......class.Glob.{..........sta
70160 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c 6f tic.public.function.toRegex($glo
70180 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 b,.$strictLeadingDot.=.true,.$st
701a0 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 rictWildcardSlash.=.true).{.$fir
701c0 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 stByte.=.true;.$escaping.=.false
701e0 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 ;.$inCurlies.=.0;.$regex.=.'';.$
70200 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 24 sizeGlob.=.strlen($glob);.for.($
70220 69 20 3d 20 30 3b 20 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 i.=.0;.$i.<.$sizeGlob;.$i++).{.$
70240 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 car.=.$glob[$i];.if.($firstByte)
70260 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 27 20 .{.if.($strictLeadingDot.&&.'.'.
70280 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 5d 29 !==.$car).{.$regex..=.'(?=[^\.])
702a0 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 66 20 ';.}..$firstByte.=.false;.}..if.
702c0 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 74 72 ('/'.===.$car).{.$firstByte.=.tr
702e0 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 20 3d ue;.}..if.('.'.===.$car.||.'('.=
70300 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 20 3d ==.$car.||.')'.===.$car.||.'|'.=
70320 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 20 3d ==.$car.||.'+'.===.$car.||.'^'.=
70340 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 67 65 ==.$car.||.'$'.===.$car).{.$rege
70360 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 3d 3d x..=."\\$car";.}.elseif.('*'.===
70380 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 20 27 .$car).{.$regex..=.$escaping.?.'
703a0 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 20 27 \\*'.:.($strictWildcardSlash.?.'
703c0 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 3d 3d [^/]*'.:.'.*');.}.elseif.('?'.==
703e0 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 20 =.$car).{.$regex..=.$escaping.?.
70400 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 3f 20 '\\?'.:.($strictWildcardSlash.?.
70420 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 3d 3d '[^/]'.:.'.');.}.elseif.('{'.===
70440 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 20 27 .$car).{.$regex..=.$escaping.?.'
70460 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 2b 2b \\{'.:.'(';.if.(!$escaping).{.++
70480 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 3d 20 $inCurlies;.}.}.elseif.('}'.===.
704a0 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 3d 20 $car.&&.$inCurlies).{.$regex..=.
704c0 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 73 63 $escaping.?.'}'.:.')';.if.(!$esc
704e0 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 65 69 aping).{.--$inCurlies;.}.}.elsei
70500 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 20 7b f.(','.===.$car.&&.$inCurlies).{
70520 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 7c 27 .$regex..=.$escaping.?.','.:.'|'
70540 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 66 20 ;.}.elseif.('\\'.===.$car).{.if.
70560 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 3b 0a ($escaping).{.$regex..=.'\\\\';.
70580 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 73 63 $escaping.=.false;.}.else.{.$esc
705a0 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 6c 73 aping.=.true;.}..continue;.}.els
705c0 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 67 20 e.{.$regex..=.$car;.}.$escaping.
705e0 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e 27 =.false;.}..return.'#^'.$regex.'
70600 24 23 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 70 61 $#';.}.}.<?php...........namespa
70620 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 0a 0a ce.Symfony\Component\Finder;....
70640 0a 0a 0a 63 6c 61 73 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 ...class.SplFileInfo.extends.\Sp
70660 6c 46 69 6c 65 49 6e 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 lFileInfo.{.private.$relativePat
70680 68 3b 0a 70 72 69 76 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 h;.private.$relativePathname;...
706a0 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
706c0 74 28 24 66 69 6c 65 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 t($file,.$relativePath,.$relativ
706e0 65 50 61 74 68 6e 61 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 ePathname).{.parent::__construct
70700 28 24 66 69 6c 65 29 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 ($file);.$this->relativePath.=.$
70720 72 65 6c 61 74 69 76 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 relativePath;.$this->relativePat
70740 68 6e 61 6d 65 20 3d 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 hname.=.$relativePathname;.}....
70760 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 61 ...public.function.getRelativePa
70780 74 68 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 76 65 50 61 74 th().{.return.$this->relativePat
707a0 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 67 65 74 52 65 h;.}.......public.function.getRe
707c0 6c 61 74 69 76 65 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 lativePathname().{.return.$this-
707e0 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >relativePathname;.}.}.<?php....
70800 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
70820 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 nt\Finder;.................class
70840 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 67 72 .Finder.implements.\IteratorAggr
70860 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 52 45 egate,.\Countable.{.const.IGNORE
70880 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 4f 54 _VCS_FILES.=.1;.const.IGNORE_DOT
708a0 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 3b 0a _FILES.=.2;..private.$mode.=.0;.
708c0 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 61 74 private.$names.=.array();.privat
708e0 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 20 24 e.$notNames.=.array();.private.$
70900 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 6c 74 exclude.=.array();.private.$filt
70920 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 20 3d ers.=.array();.private.$depths.=
70940 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 61 79 .array();.private.$sizes.=.array
70960 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 73 65 ();.private.$followLinks.=.false
70980 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 74 65 ;.private.$sort.=.false;.private
709a0 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 61 72 .$ignore.=.0;.private.$dirs.=.ar
709c0 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 29 3b ray();.private.$dates.=.array();
709e0 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 0a 70 .private.$iterators.=.array();.p
70a00 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 69 76 rivate.$contains.=.array();.priv
70a20 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 0a 73 74 61 ate.$notContains.=.array();..sta
70a40 74 69 63 20 70 72 69 76 61 74 65 20 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 tic.private.$vcsPatterns.=.array
70a60 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 63 73 27 ('.svn',.'_svn',.'CVS',.'_darcs'
70a80 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 2c 20 27 ,.'.arch-params',.'.monotone',.'
70aa0 2e 62 7a 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 .bzr',.'.git',.'.hg');.....publi
70ac0 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 0a 24 74 68 69 73 c.function.__construct().{.$this
70ae0 2d 3e 69 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 ->ignore.=.static::IGNORE_VCS_FI
70b00 4c 45 53 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 LES.|.static::IGNORE_DOT_FILES;.
70b20 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e }.........static.public.function
70b40 20 63 72 65 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 29 3b 0a 7d .create().{.return.new.self();.}
70b60 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 64 69 72 65 63 74 6f .........public.function.directo
70b80 72 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 ries().{.$this->mode.=.Iterator\
70ba0 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
70bc0 45 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 ECTORIES;..return.$this;.}......
70be0 0a 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 ...public.function.files().{.$th
70c00 69 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 is->mode.=.Iterator\FileTypeFilt
70c20 65 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 erIterator::ONLY_FILES;..return.
70c40 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 0a 70 75 62 6c 69 $this;.}...................publi
70c60 63 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 c.function.depth($level).{.$this
70c80 2d 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 ->depths[].=.new.Comparator\Numb
70ca0 65 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 erComparator($level);..return.$t
70cc0 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 0a 0a 0a 70 75 62 6c his;.}......................publ
70ce0 69 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 ic.function.date($date).{.$this-
70d00 3e 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 >dates[].=.new.Comparator\DateCo
70d20 6d 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 mparator($date);..return.$this;.
70d40 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 20 66 75 6e 63 74 }...................public.funct
70d60 69 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 ion.name($pattern).{.$this->name
70d80 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 7d s[].=.$pattern;..return.$this;.}
70da0 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 6e 6f 74 .............public.function.not
70dc0 4e 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 Name($pattern).{.$this->notNames
70de0 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;.}.
70e00 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 63 ...............public.function.c
70e20 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 63 6f 6e 74 61 ontains($pattern).{.$this->conta
70e40 69 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 ins[].=.$pattern;..return.$this;
70e60 0a 7d 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
70e80 6f 6e 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 on.notContains($pattern).{.$this
70ea0 2d 3e 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 ->notContains[].=.$pattern;..ret
70ec0 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
70ee0 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
70f00 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
70f20 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
70f40 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
70f60 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
70f80 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,.
70fa0 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;.}
70fc0 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
70fe0 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
71000 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
71020 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
71040 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->
71060 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
71080 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
710a0 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
710c0 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.($
710e0 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
71100 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_
71120 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.=.
71140 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_
71160 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 73 VCS_FILES;.}..return.$this;.}..s
71180 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 43 53 50 61 74 74 tatic.public.function.addVCSPatt
711a0 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 ern($pattern).{.self::$vcsPatter
711c0 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ns[].=.$pattern;.}..............
711e0 0a 0a 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 ...public.function.sort(\Closure
71200 20 24 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 .$closure).{.$this->sort.=.$clos
71220 75 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 0a 0a ure;..return.$this;.}...........
71240 0a 0a 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 ..public.function.sortByName().{
71260 0a 24 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 .$this->sort.=.Iterator\Sortable
71280 49 74 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 Iterator::SORT_BY_NAME;..return.
712a0 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 6e 63 $this;.}.............public.func
712c0 74 69 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 tion.sortByType().{.$this->sort.
712e0 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 4f 52 =.Iterator\SortableIterator::SOR
71300 54 5f 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 T_BY_TYPE;..return.$this;.}.....
71320 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 6f 72 74 42 79 ..........public.function.sortBy
71340 41 63 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 AccessedTime().{.$this->sort.=.I
71360 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 42 terator\SortableIterator::SORT_B
71380 59 5f 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 Y_ACCESSED_TIME;..return.$this;.
713a0 7d 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 6f }.................public.functio
713c0 6e 20 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 n.sortByChangedTime().{.$this->s
713e0 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 6f 72 3a ort.=.Iterator\SortableIterator:
71400 3a 53 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 :SORT_BY_CHANGED_TIME;..return.$
71420 74 68 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 this;.}...............public.fun
71440 63 74 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 ction.sortByModifiedTime().{.$th
71460 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 65 72 is->sort.=.Iterator\SortableIter
71480 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 3b 0a 0a 72 65 ator::SORT_BY_MODIFIED_TIME;..re
714a0 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 0a 0a 0a 70 75 62 turn.$this;.}................pub
714c0 6c 69 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 lic.function.filter(\Closure.$cl
714e0 6f 73 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 osure).{.$this->filters[].=.$clo
71500 73 75 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 sure;..return.$this;.}.........p
71520 75 62 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 ublic.function.followLinks().{.$
71540 74 68 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 this->followLinks.=.true;..retur
71560 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
71580 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 29 0a 7b 0a 24 64 69 72 73 20 3d 20 28 61 72 72 61 nction.in($dirs).{.$dirs.=.(arra
715a0 79 29 20 24 64 69 72 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 y).$dirs;..foreach.($dirs.as.$di
715c0 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 r).{.if.(!is_dir($dir)).{.throw.
715e0 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
71600 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e rintf('The."%s".directory.does.n
71620 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e ot.exist.',.$dir));.}.}..$this->
71640 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 69 72 73 2c 20 dirs.=.array_merge($this->dirs,.
71660 24 64 69 72 73 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 $dirs);..return.$this;.}........
71680 0a 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 74 6f 72 28 29 ...public.function.getIterator()
716a0 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 64 69 72 73 29 29 .{.if.(0.===.count($this->dirs))
716c0 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 59 6f .{.throw.new.\LogicException('Yo
716e0 75 20 6d 75 73 74 20 63 61 6c 6c 20 74 68 65 20 69 6e 28 29 20 6d 65 74 68 6f 64 20 62 65 66 6f u.must.call.the.in().method.befo
71700 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 27 29 3b 0a 7d re.iterating.over.a.Finder.');.}
71720 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 72 73 29 20 26 ..if.(1.===.count($this->dirs).&
71740 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 6f 72 73 29 29 &.0.===.count($this->iterators))
71760 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 72 65 63 74 6f .{.return.$this->searchInDirecto
71780 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 72 61 74 6f 72 ry($this->dirs[0]);.}..$iterator
717a0 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 6f 72 65 61 63 .=.new.\AppendIterator();.foreac
717c0 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 69 74 65 72 61 h.($this->dirs.as.$dir).{.$itera
717e0 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 44 69 72 65 63 tor->append($this->searchInDirec
71800 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 68 69 73 2d 3e tory($dir));.}..foreach.($this->
71820 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 6f 72 2d 3e 61 iterators.as.$it).{.$iterator->a
71840 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 61 74 6f 72 3b ppend($it);.}..return.$iterator;
71860 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 70 70 65 6e .}.........public.function.appen
71880 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 d($iterator).{.if.($iterator.ins
718a0 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 29 20 7b 0a 24 74 tanceof.\IteratorAggregate).{.$t
718c0 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 2d 3e 67 65 his->iterators[].=.$iterator->ge
718e0 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 tIterator();.}.elseif.($iterator
71900 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e .instanceof.\Iterator).{.$this->
71920 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 20 65 6c 73 65 69 iterators[].=.$iterator;.}.elsei
71940 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 f.($iterator.instanceof.\Travers
71960 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 74 6f 72 29 29 20 7b 0a 24 able.||.is_array($iterator)).{.$
71980 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 it.=.new.\ArrayIterator();.forea
719a0 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 69 74 2d 3e 61 ch.($iterator.as.$file).{.$it->a
719c0 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 70 6c 46 69 6c 65 49 ppend($file.instanceof.\SplFileI
719e0 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 nfo.?.$file.:.new.\SplFileInfo($
71a00 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 file));.}.$this->iterators[].=.$
71a20 69 74 3b 0a 7d 20 65 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 it;.}.else.{.throw.new.\InvalidA
71a40 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a 3a 61 70 70 65 6e 64 rgumentException('Finder::append
71a60 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 74 79 70 65 2e 27 29 ().method.wrong.argument.type.')
71a80 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 63 6f 75 6e ;.}.}.......public.function.coun
71aa0 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e 74 28 24 74 68 69 t().{.return.iterator_count($thi
71ac0 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 s->getIterator());.}..private.fu
71ae0 6e 63 74 69 6f 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 nction.searchInDirectory($dir).{
71b00 0a 24 66 6c 61 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 .$flags.=.\RecursiveDirectoryIte
71b20 72 61 74 6f 72 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 rator::SKIP_DOTS;..if.($this->fo
71b40 6c 6c 6f 77 4c 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 llowLinks).{.$flags.|=.\Recursiv
71b60 65 44 69 72 65 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 eDirectoryIterator::FOLLOW_SYMLI
71b80 4e 4b 53 3b 0a 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 NKS;.}..$iterator.=.new.\Recursi
71ba0 76 65 49 74 65 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 veIteratorIterator(.new.Iterator
71bc0 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 28 24 64 69 72 \RecursiveDirectoryIterator($dir
71be0 2c 20 24 66 6c 61 67 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 ,.$flags),.\RecursiveIteratorIte
71c00 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d rator::SELF_FIRST.);..if.($this-
71c20 3e 64 65 70 74 68 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 >depths).{.$iterator.=.new.Itera
71c40 74 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 tor\DepthRangeFilterIterator($it
71c60 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 erator,.$this->depths);.}..if.($
71c80 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 this->mode).{.$iterator.=.new.It
71ca0 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 28 24 69 erator\FileTypeFilterIterator($i
71cc0 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 terator,.$this->mode);.}..if.(st
71ce0 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 atic::IGNORE_VCS_FILES.===.(stat
71d00 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 ic::IGNORE_VCS_FILES.&.$this->ig
71d20 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f nore)).{.$this->exclude.=.array_
71d40 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 76 63 73 merge($this->exclude,.self::$vcs
71d60 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 Patterns);.}..if.(static::IGNORE
71d80 5f 44 4f 54 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 44 _DOT_FILES.===.(static::IGNORE_D
71da0 4f 54 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 68 OT_FILES.&.$this->ignore)).{.$th
71dc0 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 27 2f 5e 5c 2e 2e 2b 2f 27 3b 0a 7d 0a 0a 69 is->notNames[].=.'/^\..+/';.}..i
71de0 66 20 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 f.($this->exclude).{.$iterator.=
71e00 20 6e 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 .new.Iterator\ExcludeDirectoryFi
71e20 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 2d 3e 65 lterIterator($iterator,.$this->e
71e40 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c 20 xclude);.}..if.($this->names.||.
71e60 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e $this->notNames).{.$iterator.=.n
71e80 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 ew.Iterator\FilenameFilterIterat
71ea0 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 69 or($iterator,.$this->names,.$thi
71ec0 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 s->notNames);.}..if.($this->cont
71ee0 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 73 29 20 7b 0a 24 69 ains.||.$this->notContains).{.$i
71f00 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 63 6f 6e 74 65 terator.=.new.Iterator\Fileconte
71f20 6e 74 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 ntFilterIterator($iterator,.$thi
71f40 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 s->contains,.$this->notContains)
71f60 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 65 72 61 74 ;.}..if.($this->sizes).{.$iterat
71f80 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 or.=.new.Iterator\SizeRangeFilte
71fa0 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 73 69 7a 65 rIterator($iterator,.$this->size
71fc0 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 69 74 65 72 s);.}..if.($this->dates).{.$iter
71fe0 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c ator.=.new.Iterator\DateRangeFil
72000 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 2d 3e 64 61 terIterator($iterator,.$this->da
72020 74 65 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 20 7b 0a 24 tes);.}..if.($this->filters).{.$
72040 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 6f 6d 46 69 iterator.=.new.Iterator\CustomFi
72060 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 2d 3e 66 lterIterator($iterator,.$this->f
72080 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 ilters);.}..if.($this->sort).{.$
720a0 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 iteratorAggregate.=.new.Iterator
720c0 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 \SortableIterator($iterator,.$th
720e0 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 is->sort);.$iterator.=.$iterator
72100 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 72 65 74 Aggregate->getIterator();.}..ret
72120 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a urn.$iterator;.}.}.<?php........
72140 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 63 6c 61 ...namespace.Seld\JsonLint;..cla
72160 73 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ss.Undefined.{.}.<?php..........
72180 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 75 73 65 20 73 .namespace.Seld\JsonLint;..use.s
721a0 74 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f tdClass;...............class.Jso
721c0 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 nParser.{.private.$stack;.privat
721e0 65 20 24 76 73 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 e.$vstack;...private.$lstack;...
72200 70 72 69 76 61 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 private.$yy;.private.$symbols.=.
72220 61 72 72 61 79 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 array(.'error'.=>.2,.'JSONString
72240 27 20 3d 3e 20 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 '.=>.3,.'STRING'.=>.4,.'JSONNumb
72260 65 72 27 20 3d 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 er'.=>.5,.'NUMBER'.=>.6,.'JSONNu
72280 6c 6c 4c 69 74 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 llLiteral'.=>.7,.'NULL'.=>.8,.'J
722a0 53 4f 4e 42 6f 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 SONBooleanLiteral'.=>.9,.'TRUE'.
722c0 3d 3e 20 31 30 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 =>.10,.'FALSE'.=>.11,.'JSONText'
722e0 20 3d 3e 20 31 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 .=>.12,.'JSONValue'.=>.13,.'EOF'
72300 20 3d 3e 20 31 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 .=>.14,.'JSONObject'.=>.15,.'JSO
72320 4e 41 72 72 61 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 NArray'.=>.16,.'{'.=>.17,.'}'.=>
72340 20 31 38 2c 0a 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 .18,.'JSONMemberList'.=>.19,.'JS
72360 4f 4e 4d 65 6d 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 ONMember'.=>.20,.':'.=>.21,.','.
72380 3d 3e 20 32 32 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 =>.22,.'['.=>.23,.']'.=>.24,.'JS
723a0 4f 4e 45 6c 65 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 ONElementList'.=>.25,.'$accept'.
723c0 3d 3e 20 30 2c 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 =>.0,.'$end'.=>.1,.);..private.$
723e0 74 65 72 6d 69 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 terminals_.=.array(.2.=>."error"
72400 2c 0a 34 20 3d 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 ,.4.=>."STRING",.6.=>."NUMBER",.
72420 38 20 3d 3e 20 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 8.=>."NULL",.10.=>."TRUE",.11.=>
72440 20 22 46 41 4c 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 ."FALSE",.14.=>."EOF",.17.=>."{"
72460 2c 0a 31 38 20 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 ,.18.=>."}",.21.=>.":",.22.=>.",
72480 22 2c 0a 32 33 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 ",.23.=>."[",.24.=>."]",.);..pri
724a0 76 61 74 65 20 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 vate.$productions_.=.array(.0,.a
724c0 72 72 61 79 28 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 rray(3,.1),.array(5,.1),.array(7
724e0 2c 20 31 29 2c 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 ,.1),.array(9,.1),.array(9,.1),.
72500 61 72 72 61 79 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 array(12,.2),.array(13,.1),.arra
72520 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 61 79 28 31 33 y(13,.1),.array(13,.1),.array(13
72540 2c 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 ,.1),.array(13,.1),.array(13,.1)
72560 2c 0a 61 72 72 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 ,.array(15,.2),.array(15,.3),.ar
72580 72 61 79 28 32 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 ray(20,.3),.array(19,.1),.array(
725a0 31 39 2c 20 33 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 19,.3),.array(16,.2),.array(16,.
725c0 33 29 2c 0a 61 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 3),.array(25,.1),.array(25,.3).)
725e0 3b 0a 0a 70 72 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 ;..private.$table.=.array(array(
72600 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 20 3d 3e 20 36 3.=>.5,.4.=>.array(1,12),.5.=>.6
72620 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 20 38 20 3d 3e ,.6.=>.array(1,13),.7.=>.3,.8.=>
72640 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 61 72 72 61 79 .array(1,9),.9.=>.4,.10.=>.array
72660 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 31 32 20 3d 3e (1,10),.11.=>.array(1,11),.12.=>
72680 20 31 2c 20 31 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 .1,.13.=>.2,.15.=>.7,.16.=>.8,.1
726a0 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 79 28 31 2c 7.=>.array(1,14),.23.=>.array(1,
726c0 31 35 29 29 2c 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 15)),.array(.1.=>.array(3)),.arr
726e0 61 79 28 20 31 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 ay(.14.=>.array(1,16)),.array(.1
72700 34 20 3d 3e 20 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 4.=>.array(2,7),.18.=>.array(2,7
72720 29 2c 20 32 32 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 ),.22.=>.array(2,7),.24.=>.array
72740 28 32 2c 37 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 38 29 2c (2,7)),.array(.14.=>.array(2,8),
72760 20 31 38 20 3d 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 .18.=>.array(2,8),.22.=>.array(2
72780 2c 38 29 2c 20 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 ,8),.24.=>.array(2,8)),.array(.1
727a0 34 20 3d 3e 20 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 4.=>.array(2,9),.18.=>.array(2,9
727c0 29 2c 20 32 32 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 ),.22.=>.array(2,9),.24.=>.array
727e0 28 32 2c 39 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 30 29 (2,9)),.array(.14.=>.array(2,10)
72800 2c 20 31 38 20 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 ,.18.=>.array(2,10),.22.=>.array
72820 28 32 2c 31 30 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 (2,10),.24.=>.array(2,10)),.arra
72840 79 28 20 31 34 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 y(.14.=>.array(2,11),.18.=>.arra
72860 79 28 32 2c 31 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 y(2,11),.22.=>.array(2,11),.24.=
72880 3e 20 61 72 72 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 >.array(2,11)),.array(.14.=>.arr
728a0 61 79 28 32 2c 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 ay(2,12),.18.=>.array(2,12),.22.
728c0 3d 3e 20 61 72 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 =>.array(2,12),.24.=>.array(2,12
728e0 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 33 29 2c 20 31 38 20 )),.array(.14.=>.array(2,3),.18.
72900 3d 3e 20 61 72 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 =>.array(2,3),.22.=>.array(2,3),
72920 20 32 34 20 3d 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 .24.=>.array(2,3)),.array(.14.=>
72940 20 61 72 72 61 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 .array(2,4),.18.=>.array(2,4),.2
72960 32 20 3d 3e 20 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 2.=>.array(2,4),.24.=>.array(2,4
72980 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 35 29 2c 20 31 38 20 )),.array(.14.=>.array(2,5),.18.
729a0 3d 3e 20 61 72 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 =>.array(2,5),.22.=>.array(2,5),
729c0 20 32 34 20 3d 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 .24.=>.array(2,5)),.array(.14.=>
729e0 20 61 72 72 61 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 .array(2,1),.18.=>.array(2,1),.2
72a00 31 20 3d 3e 20 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 1.=>.array(2,1),.22.=>.array(2,1
72a20 29 2c 20 32 34 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 ),.24.=>.array(2,1)),.array(.14.
72a40 3d 3e 20 61 72 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 =>.array(2,2),.18.=>.array(2,2),
72a60 20 32 32 20 3d 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 .22.=>.array(2,2),.24.=>.array(2
72a80 2c 32 29 29 2c 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 ,2)),.array(.3.=>.20,.4.=>.array
72aa0 28 31 2c 31 32 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 (1,12),.18.=>.array(1,17),.19.=>
72ac0 20 31 38 2c 20 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 .18,.20.=>.19.),.array(.3.=>.5,.
72ae0 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 3e 20 61 4.=>.array(1,12),.5.=>.6,.6.=>.a
72b00 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 79 28 31 rray(1,13),.7.=>.3,.8.=>.array(1
72b20 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 29 2c 20 ,9),.9.=>.4,.10.=>.array(1,10),.
72b40 31 31 20 3d 3e 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 11.=>.array(1,11),.13.=>.23,.15.
72b60 3d 3e 20 37 2c 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 =>.7,.16.=>.8,.17.=>.array(1,14)
72b80 2c 20 32 33 20 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 ,.23.=>.array(1,15),.24.=>.array
72ba0 28 31 2c 32 31 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 (1,21),.25.=>.22.),.array(.1.=>.
72bc0 61 72 72 61 79 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 array(2,6)),.array(.14.=>.array(
72be0 32 2c 31 33 29 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 2,13),.18.=>.array(2,13),.22.=>.
72c00 61 72 72 61 79 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 array(2,13),.24.=>.array(2,13)),
72c20 20 61 72 72 61 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 .array(.18.=>.array(1,24),.22.=>
72c40 20 61 72 72 61 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 .array(1,25)),.array(.18.=>.arra
72c60 79 28 32 2c 31 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 y(2,16),.22.=>.array(2,16)),.arr
72c80 61 79 28 20 32 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 ay(.21.=>.array(1,26)),.array(.1
72ca0 34 20 3d 3e 20 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 4.=>.array(2,18),.18.=>.array(2,
72cc0 31 38 29 2c 20 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 18),.22.=>.array(2,18),.24.=>.ar
72ce0 72 61 79 28 32 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 ray(2,18)),.array(.22.=>.array(1
72d00 2c 32 38 29 2c 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 ,28),.24.=>.array(1,27)),.array(
72d20 20 32 32 20 3d 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 .22.=>.array(2,20),.24.=>.array(
72d40 32 2c 32 30 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 34 29 2,20)),.array(.14.=>.array(2,14)
72d60 2c 20 31 38 20 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 ,.18.=>.array(2,14),.22.=>.array
72d80 28 32 2c 31 34 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 (2,14),.24.=>.array(2,14)),.arra
72da0 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 29 2c 20 32 30 y(.3.=>.20,.4.=>.array(1,12),.20
72dc0 20 3d 3e 20 32 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 .=>.29.),.array(.3.=>.5,.4.=>.ar
72de0 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 31 2c ray(1,12),.5.=>.6,.6.=>.array(1,
72e00 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 39 20 13),.7.=>.3,.8.=>.array(1,9),.9.
72e20 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 20 61 =>.4,.10.=>.array(1,10),.11.=>.a
72e40 72 72 61 79 28 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 rray(1,11),.13.=>.30,.15.=>.7,.1
72e60 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 3d 3e 6.=>.8,.17.=>.array(1,14),.23.=>
72e80 20 61 72 72 61 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 .array(1,15)),.array(.14.=>.arra
72ea0 79 28 32 2c 31 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 y(2,19),.18.=>.array(2,19),.22.=
72ec0 3e 20 61 72 72 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 >.array(2,19),.24.=>.array(2,19)
72ee0 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 2c 31 ),.array(.3.=>.5,.4.=>.array(1,1
72f00 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 37 20 2),.5.=>.6,.6.=>.array(1,13),.7.
72f20 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 20 31 =>.3,.8.=>.array(1,9),.9.=>.4,.1
72f40 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 31 2c 0.=>.array(1,10),.11.=>.array(1,
72f60 31 31 29 2c 20 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 11),.13.=>.31,.15.=>.7,.16.=>.8,
72f80 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 79 28 .17.=>.array(1,14),.23.=>.array(
72fa0 31 2c 31 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 37 29 1,15)),.array(.18.=>.array(2,17)
72fc0 2c 20 32 32 20 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 ,.22.=>.array(2,17)),.array(.18.
72fe0 3d 3e 20 61 72 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 =>.array(2,15),.22.=>.array(2,15
73000 29 29 2c 20 61 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 )),.array(.22.=>.array(2,21),.24
73020 20 3d 3e 20 61 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 .=>.array(2,21)),.);..private.$d
73040 65 66 61 75 6c 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 efaultActions.=.array(.16.=>.arr
73060 61 79 28 32 2c 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 ay(2,.6).);......public.function
73080 20 6c 69 6e 74 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 .lint($input).{.try.{.$this->par
730a0 73 65 28 24 69 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 se($input);.}.catch.(ParsingExce
730c0 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 7d 0a 0a 0a 0a 0a 0a ption.$e).{.return.$e;.}.}......
730e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 69 6e 70 75 74 29 0a 7b .public.function.parse($input).{
73100 0a 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 .$this->stack.=.array(0);.$this-
73120 3e 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 >vstack.=.array(null);.$this->ls
73140 74 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 tack.=.array();..$yytext.=.'';.$
73160 79 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 yylineno.=.0;.$yyleng.=.0;.$reco
73180 76 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 vering.=.0;.$TERROR.=.2;.$EOF.=.
731a0 31 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 1;..$this->lexer.=.new.Lexer();.
731c0 24 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 $this->lexer->setInput($input);.
731e0 0a 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 .$yyloc.=.$this->lexer->yylloc;.
73200 24 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 $this->lstack[].=.$yyloc;..$symb
73220 6f 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 ol.=.null;.$preErrorSymbol.=.nul
73240 6c 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 l;.$state.=.null;.$action.=.null
73260 3b 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 ;.$a.=.null;.$r.=.null;.$yyval.=
73280 20 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 .new.stdClass;.$p.=.null;.$len.=
732a0 20 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 .null;.$newState.=.null;.$expect
732c0 65 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 ed.=.null;.$errStr.=.null;..whil
732e0 65 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 e.(true).{...$state.=.$this->sta
73300 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 0a 0a 20 69 66 ck[count($this->stack)-1];....if
73320 20 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 .(isset($this->defaultActions[$s
73340 74 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 tate])).{.$action.=.$this->defau
73360 6c 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 ltActions[$state];.}.else.{.if.(
73380 24 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 $symbol.==.null).{.$symbol.=.$th
733a0 69 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 is->lex();.}...$action.=.isset($
733c0 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 29 20 3f 20 this->table[$state][$symbol]).?.
733e0 24 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 $this->table[$state][$symbol].:.
73400 66 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 false;.}....if.(!$action.||.!$ac
73420 74 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 tion[0]).{.if.(!$recovering).{..
73440 20 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 .$expected.=.array();.foreach.($
73460 74 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 this->table[$state].as.$p.=>.$ig
73480 6e 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 nore).{.if.(isset($this->termina
734a0 6c 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 ls_[$p]).&&.$p.>.2).{.$expected[
734c0 5d 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 ].=."'"...$this->terminals_[$p].
734e0 2e 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 .."'";.}.}..$errStr.=.'Parse.err
73500 6f 72 20 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 or.on.line.'...($yylineno+1)..."
73520 3a 5c 6e 22 20 2e 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 :\n"...$this->lexer->showPositio
73540 6e 28 29 20 2e 20 22 5c 6e 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 2e 20 69 6d n()..."\nExpected.one.of:."...im
73560 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 70 plode(',.',.$expected);.$this->p
73580 61 72 73 65 45 72 72 6f 72 28 24 65 72 72 53 74 72 2c 20 61 72 72 61 79 28 0a 27 74 65 78 74 27 arseError($errStr,.array(.'text'
735a0 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 0a 27 74 6f 6b 65 6e 27 .=>.$this->lexer->match,.'token'
735c0 20 3d 3e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 .=>.!empty($this->terminals_[$sy
735e0 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 mbol]).?.$this->terminals_[$symb
73600 6f 6c 5d 20 3a 20 24 73 79 6d 62 6f 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e ol].:.$symbol,.'line'.=>.$this->
73620 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 27 6c 6f 63 27 20 3d 3e 20 24 79 79 6c 6f 63 lexer->yylineno,.'loc'.=>.$yyloc
73640 2c 0a 27 65 78 70 65 63 74 65 64 27 20 3d 3e 20 24 65 78 70 65 63 74 65 64 2c 0a 29 29 3b 0a 7d ,.'expected'.=>.$expected,.));.}
73660 0a 0a 0a 20 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 3d 20 33 29 20 7b 0a 69 66 20 28 ....if.($recovering.==.3).{.if.(
73680 24 73 79 6d 62 6f 6c 20 3d 3d 20 24 45 4f 46 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 $symbol.==.$EOF).{.throw.new.Par
736a0 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e singException($errStr.?:.'Parsin
736c0 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 g.halted.');.}....$yyleng.=.$thi
736e0 73 2d 3e 6c 65 78 65 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 s->lexer->yyleng;.$yytext.=.$thi
73700 73 2d 3e 6c 65 78 65 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 s->lexer->yytext;.$yylineno.=.$t
73720 68 69 73 2d 3e 6c 65 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 his->lexer->yylineno;.$yyloc.=.$
73740 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 this->lexer->yylloc;.$symbol.=.$
73760 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 0a 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b this->lex();.}....while.(true).{
73780 0a 0a 20 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 54 45 52 52 4f 52 2c ...if.(array_key_exists($TERROR,
737a0 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 62 72 65 61 6b 3b .$this->table[$state])).{.break;
737c0 0a 7d 0a 69 66 20 28 24 73 74 61 74 65 20 3d 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 .}.if.($state.==.0).{.throw.new.
737e0 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 3f 3a 20 27 50 61 72 ParsingException($errStr.?:.'Par
73800 73 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 sing.halted.');.}.$this->popStac
73820 6b 28 31 29 3b 0a 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e k(1);.$state.=.$this->stack[coun
73840 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 7d 0a 0a 24 70 72 65 45 72 72 6f 72 t($this->stack)-1];.}..$preError
73860 53 79 6d 62 6f 6c 20 3d 20 24 73 79 6d 62 6f 6c 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 54 Symbol.=.$symbol;...$symbol.=.$T
73880 45 52 52 4f 52 3b 20 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 ERROR;...$state.=.$this->stack[c
738a0 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 24 61 63 74 69 6f 6e 20 3d ount($this->stack)-1];.$action.=
738c0 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 .isset($this->table[$state][$TER
738e0 52 4f 52 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 ROR]).?.$this->table[$state][$TE
73900 52 52 4f 52 5d 20 3a 20 66 61 6c 73 65 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 33 3b 20 RROR].:.false;.$recovering.=.3;.
73920 0a 20 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 ..}....if.(is_array($action[0]).
73940 26 26 20 63 6f 75 6e 74 28 24 61 63 74 69 6f 6e 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e &&.count($action).>.1).{.throw.n
73960 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 50 61 72 73 65 20 45 72 72 6f 72 ew.ParsingException('Parse.Error
73980 3a 20 6d 75 6c 74 69 70 6c 65 20 61 63 74 69 6f 6e 73 20 70 6f 73 73 69 62 6c 65 20 61 74 20 73 :.multiple.actions.possible.at.s
739a0 74 61 74 65 3a 20 27 20 2e 20 24 73 74 61 74 65 20 2e 20 27 2c 20 74 6f 6b 65 6e 3a 20 27 20 2e tate:.'...$state...',.token:.'..
739c0 20 24 73 79 6d 62 6f 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 61 63 74 69 6f 6e 5b 30 5d .$symbol);.}..switch.($action[0]
739e0 29 20 7b 0a 63 61 73 65 20 31 3a 20 0a 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 ).{.case.1:...$this->stack[].=.$
73a00 73 79 6d 62 6f 6c 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d symbol;.$this->vstack[].=.$this-
73a20 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 >lexer->yytext;.$this->lstack[].
73a40 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 74 68 69 73 2d 3e 73 =.$this->lexer->yylloc;.$this->s
73a60 74 61 63 6b 5b 5d 20 3d 20 24 61 63 74 69 6f 6e 5b 31 5d 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d tack[].=.$action[1];...$symbol.=
73a80 20 6e 75 6c 6c 3b 0a 69 66 20 28 21 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 29 20 7b 20 0a .null;.if.(!$preErrorSymbol).{..
73aa0 20 24 79 79 6c 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 .$yyleng.=.$this->lexer->yyleng;
73ac0 0a 24 79 79 74 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 .$yytext.=.$this->lexer->yytext;
73ae0 0a 24 79 79 6c 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 .$yylineno.=.$this->lexer->yylin
73b00 65 6e 6f 3b 0a 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 eno;.$yyloc.=.$this->lexer->yyll
73b20 6f 63 3b 0a 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3e 20 30 29 20 7b 0a 24 72 65 63 6f oc;.if.($recovering.>.0).{.$reco
73b40 76 65 72 69 6e 67 2d 2d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d vering--;.}.}.else.{...$symbol.=
73b60 20 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f .$preErrorSymbol;.$preErrorSymbo
73b80 6c 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 32 3a 20 0a 20 24 6c l.=.null;.}.break;..case.2:...$l
73ba0 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e en.=.$this->productions_[$action
73bc0 5b 31 5d 5d 5b 31 5d 3b 0a 0a 0a 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 68 69 [1]][1];....$yyval->token.=.$thi
73be0 73 2d 3e 76 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 29 20 2d s->vstack[count($this->vstack).-
73c00 20 24 6c 65 6e 5d 3b 20 0a 20 0a 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 20 3d 20 61 72 72 61 .$len];.....$yyval->store.=.arra
73c20 79 28 20 0a 20 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 y(...'first_line'.=>.$this->lsta
73c40 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 6e 20 ck[count($this->lstack).-.($len.
73c60 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 ?:.1)]['first_line'],.'last_line
73c80 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 74 68 69 73 2d 3e '.=>.$this->lstack[count($this->
73ca0 6c 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 66 69 72 73 lstack).-.1]['last_line'],.'firs
73cc0 74 5f 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 t_column'.=>.$this->lstack[count
73ce0 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 ($this->lstack).-.($len.?:.1)]['
73d00 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e first_column'],.'last_column'.=>
73d20 20 24 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 .$this->lstack[count($this->lsta
73d40 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 29 3b 0a 24 72 20 3d ck).-.1]['last_column'],.);.$r.=
73d60 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 79 79 76 61 6c 2c 20 24 79 .$this->performAction($yyval,.$y
73d80 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 61 63 74 69 ytext,.$yyleng,.$yylineno,.$acti
73da0 6f 6e 5b 31 5d 2c 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 24 74 68 69 73 2d 3e 6c 73 74 on[1],.$this->vstack,.$this->lst
73dc0 61 63 6b 29 3b 0a 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 ack);..if.(!$r.instanceof.Undefi
73de0 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 6e 29 20 7b ned).{.return.$r;.}..if.($len).{
73e00 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 .$this->popStack($len);.}..$this
73e20 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b ->stack[].=.$this->productions_[
73e40 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 30 5d 3b 20 0a 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b $action[1]][0];...$this->vstack[
73e60 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b ].=.$yyval->token;.$this->lstack
73e80 5b 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 [].=.$yyval->store;.$newState.=.
73ea0 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 $this->table[$this->stack[count(
73ec0 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 32 5d 5d 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 $this->stack)-2]][$this->stack[c
73ee0 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 5d 3b 0a 24 74 68 69 73 2d 3e 73 ount($this->stack)-1]];.$this->s
73f00 74 61 63 6b 5b 5d 20 3d 20 24 6e 65 77 53 74 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 tack[].=.$newState;.break;..case
73f20 20 33 3a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 72 65 74 75 72 6e 20 74 72 .3:...return.true;.}.}.return.tr
73f40 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 70 61 72 73 65 45 ue;.}..protected.function.parseE
73f60 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 rror($str,.$hash).{.throw.new.Pa
73f80 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a rsingException($str,.$hash);.}..
73fa0 0a 20 0a 20 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 ......private.function.performAc
73fc0 74 69 6f 6e 28 73 74 64 43 6c 61 73 73 20 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 tion(stdClass.$yyval,.$yytext,.$
73fe0 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 79 79 73 74 61 74 65 2c 20 26 24 74 yyleng,.$yylineno,.$yystate,.&$t
74000 6f 6b 65 6e 73 29 20 7b 0a 0a 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 okens).{...$len.=.count($tokens)
74020 20 2d 20 31 3b 0a 73 77 69 74 63 68 20 28 24 79 79 73 74 61 74 65 29 20 7b 0a 63 61 73 65 20 31 .-.1;.switch.($yystate).{.case.1
74040 3a 0a 24 79 79 74 65 78 74 20 3d 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b :.$yytext.=preg_replace_callback
74060 28 27 7b 28 3f 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 ('{(?:\\\\["bfnrt/\\\\]|\\\\u[a-
74080 66 41 2d 46 30 2d 39 5d 7b 34 7d 29 7d 27 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 73 74 fA-F0-9]{4})}',.array($this,.'st
740a0 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 29 2c 20 24 79 79 74 65 78 74 29 3b 0a 24 ringInterpolation'),.$yytext);.$
740c0 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 79 79 74 65 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 yyval->token.=.$yytext;.break;.c
740e0 61 73 65 20 32 3a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 65 27 29 20 ase.2:.if.(strpos($yytext,.'e').
74100 21 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 45 27 !==.false.||.strpos($yytext,.'E'
74120 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 ).!==.false).{.$yyval->token.=.f
74140 6c 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 loatval($yytext);.}.else.{.$yyva
74160 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 2e 27 29 20 l->token.=.strpos($yytext,.'.').
74180 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 69 6e 74 76 61 6c 28 24 79 79 74 65 78 74 29 20 3a 20 66 6c ===.false.?.intval($yytext).:.fl
741a0 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 33 oatval($yytext);.}.break;.case.3
741c0 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 :.$yyval->token.=.null;.break;.c
741e0 61 73 65 20 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 74 72 75 65 3b 0a 62 72 65 ase.4:.$yyval->token.=.true;.bre
74200 61 6b 3b 0a 63 61 73 65 20 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 ak;.case.5:.$yyval->token.=.fals
74220 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 24 79 79 76 61 6c 2d e;.break;.case.6:.return.$yyval-
74240 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 63 61 73 65 20 31 >token.=.$tokens[$len-1];.case.1
74260 33 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 3:.$yyval->token.=.new.stdClass;
74280 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d .break;.case.14:.$yyval->token.=
742a0 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 63 61 73 65 20 31 35 .$tokens[$len-1];.break;.case.15
742c0 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 74 6f 6b 65 6e 73 5b :.$yyval->token.=.array($tokens[
742e0 24 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a $len-2],.$tokens[$len]);.break;.
74300 63 61 73 65 20 31 36 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 case.16:.$yyval->token.=.new.std
74320 43 6c 61 73 73 3b 0a 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 Class;.$property.=.$tokens[$len]
74340 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 [0].===.''.?.'_empty_'.:.$tokens
74360 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 70 72 6f 70 65 [$len][0];.$yyval->token->$prope
74380 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 rty.=.$tokens[$len][1];.break;.c
743a0 61 73 65 20 31 37 3a 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 ase.17:.$yyval->token.=.$tokens[
743c0 24 6c 65 6e 2d 32 5d 3b 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 74 6f 6b 65 $len-2];.$tokens[$len-2]->{$toke
743e0 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 7d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b ns[$len][0]}.=.$tokens[$len][1];
74400 0a 62 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 .break;.case.18:.$yyval->token.=
74420 20 61 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 .array();.break;.case.19:.$yyval
74440 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 65 61 6b ->token.=.$tokens[$len-1];.break
74460 3b 0a 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 ;.case.20:.$yyval->token.=.array
74480 28 24 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 ($tokens[$len]);.break;.case.21:
744a0 0a 24 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 .$tokens[$len-2][].=.$tokens[$le
744c0 6e 5d 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 n];.$yyval->token.=.$tokens[$len
744e0 2d 32 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 -2];.break;.}..return.new.Undefi
74500 6e 65 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 ned();.}..private.function.strin
74520 67 49 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 gInterpolation($match).{.switch.
74540 28 24 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 ($match[0]).{.case.'\\\\':.retur
74560 6e 20 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 n.'\\';.case.'\"':.return.'"';.c
74580 61 73 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 ase.'\b':.return.chr(8);.case.'\
745a0 66 27 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 f':.return.chr(12);.case.'\n':.r
745c0 65 74 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 eturn."\n";.case.'\r':.return."\
745e0 72 22 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 r";.case.'\t':.return."\t";.case
74600 20 27 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 .'\/':.return."/";.default:.retu
74620 72 6e 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 rn.html_entity_decode('&#x'.ltri
74640 6d 28 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 m(substr($match[0],.2),.'0').';'
74660 2c 20 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 ,.0,.'UTF-8');.}.}..private.func
74680 74 69 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 tion.popStack($n).{.$this->stack
746a0 20 3d 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 .=.array_slice($this->stack,.0,.
746c0 2d 20 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 -.(2.*.$n));.$this->vstack.=.arr
746e0 61 79 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 ay_slice($this->vstack,.0,.-.$n)
74700 3b 0a 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 ;.$this->lstack.=.array_slice($t
74720 68 69 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 his->lstack,.0,.-.$n);.}..privat
74740 65 20 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 e.function.lex().{.$token.=.$thi
74760 73 2d 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 s->lexer->lex().?:.1;.....if.(!i
74780 73 5f 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 s_numeric($token)).{.$token.=.is
747a0 73 65 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 set($this->symbols[$token]).?.$t
747c0 68 69 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 his->symbols[$token].:.$token;.}
747e0 0a 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 .return.$token;.}.}.<?php.......
74800 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 6e 74 3b 0a 0a 0a 0a ....namespace.Seld\JsonLint;....
74820 0a 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 ...class.Lexer.{.private.$EOF.=.
74840 31 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 1;.private.$rules.=.array(.0.=>.
74860 27 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 '/^\s+/',.1.=>.'/^-?([0-9]|[1-9]
74880 5b 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 [0-9]+)(\.[0-9]+)?([eE][+-]?[0-9
748a0 5d 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 ]+)?\b/',.2.=>.'{^"(\\\\["bfnrt/
748c0 5c 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 \\\\]|\\\\u[a-fA-F0-9]{4}|[^\0-\
748e0 78 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 x09\x0a-\x1f\\\\"])*"}',.3.=>.'/
74900 5e 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 ^\{/',.4.=>.'/^\}/',.5.=>.'/^\[/
74920 27 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 ',.6.=>.'/^\]/',.7.=>.'/^,/',.8.
74940 3d 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 =>.'/^:/',.9.=>.'/^true\b/',.10.
74960 3d 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 =>.'/^false\b/',.11.=>.'/^null\b
74980 2f 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 /',.12.=>.'/^$/',.13.=>.'/^./',.
749a0 29 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 );..private.$conditions.=.array(
749c0 0a 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 ."INITIAL".=>.array(."rules".=>.
749e0 61 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 array(0,1,2,3,4,5,6,7,8,9,10,11,
74a00 31 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 12,13),."inclusive".=>.true,.),.
74a20 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 72 20 3d );..public.function.lex().{.$r.=
74a40 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 .$this->next();.if.(!$r.instance
74a60 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 72 65 74 of.Undefined).{.return.$r;.}.ret
74a80 75 72 6e 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this->lex();.}..public.func
74aa0 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f tion.setInput($input).{.$this->_
74ac0 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 24 input.=.$input;.$this->_more.=.$
74ae0 74 68 69 73 2d 3e 5f 6c 65 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 this->_less.=.$this->done.=.fals
74b00 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 6c 65 e;.$this->yylineno.=.$this->yyle
74b20 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 3e 6d ng.=.0;.$this->yytext.=.$this->m
74b40 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 68 69 atched.=.$this->match.=.'';.$thi
74b60 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 54 49 s->conditionStack.=.array('INITI
74b80 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 69 72 AL');.$this->yylloc.=.array('fir
74ba0 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 3d 3e st_line'.=>.1,.'first_column'.=>
74bc0 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 6c 75 .0,.'last_line'.=>.1,.'last_colu
74be0 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 75 62 mn'.=>.0);..return.$this;.}..pub
74c00 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 24 70 lic.function.showPosition().{.$p
74c20 72 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 73 74 49 6e 70 75 74 28 29 3b 0a 24 63 20 3d 20 73 74 re.=.$this->pastInput();.$c.=.st
74c40 72 5f 72 65 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 20 72 r_repeat('-',.strlen($pre));...r
74c60 65 74 75 72 6e 20 24 70 72 65 20 2e 20 24 74 68 69 73 2d 3e 75 70 63 6f 6d 69 6e 67 49 6e 70 75 eturn.$pre...$this->upcomingInpu
74c80 74 28 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 t()..."\n"...$c..."^";.}..protec
74ca0 74 65 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 ted.function.parseError($str,.$h
74cc0 61 73 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 ash).{.throw.new.\Exception($str
74ce0 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 70 75 74 28 29 0a 7b );.}..private.function.input().{
74d00 0a 24 63 68 20 3d 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e .$ch.=.$this->_input[0];.$this->
74d20 79 79 74 65 78 74 20 2b 3d 20 24 63 68 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2b 2b 3b 0a yytext.+=.$ch;.$this->yyleng++;.
74d40 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2b 3d 20 24 63 68 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 $this->match.+=.$ch;.$this->matc
74d60 68 65 64 20 2b 3d 20 24 63 68 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 63 68 2c 20 22 5c 6e 22 hed.+=.$ch;.if.(strpos($ch,."\n"
74d80 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 2b ).!==.false).{.$this->yylineno++
74da0 3b 0a 7d 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 29 3b 20 ;.}.array_shift($this->_input);.
74dc0 0a 20 72 65 74 75 72 6e 20 24 63 68 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ..return.$ch;.}..private.functio
74de0 6e 20 75 6e 70 75 74 28 24 63 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 24 n.unput($ch).{.$this->_input.=.$
74e00 63 68 20 2e 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ch...$this->_input;.return.$this
74e20 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 72 65 28 29 0a 7b 0a 24 ;.}..private.function.more().{.$
74e40 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 74 72 75 65 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 this->_more.=.true;.return.$this
74e60 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 73 74 49 6e 70 75 74 28 ;.}..private.function.pastInput(
74e80 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 ).{.$past.=.substr($this->matche
74ea0 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 29 20 2d 20 73 d,.0,.strlen($this->matched).-.s
74ec0 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 29 3b 0a 72 65 74 75 72 6e 20 28 73 74 trlen($this->match));.return.(st
74ee0 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e rlen($past).>.20.?.'...'.:.'')..
74f00 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 70 .str_replace("\n",.'',.substr($p
74f20 61 73 74 2c 20 2d 32 30 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ast,.-20));.}..private.function.
74f40 75 70 63 6f 6d 69 6e 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 upcomingInput().{.$next.=.$this-
74f60 3e 6d 61 74 63 68 3b 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 >match;.if.(strlen($next).<.20).
74f80 7b 0a 24 6e 65 78 74 20 2b 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c {.$next.+=.substr($this->_input,
74fa0 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 72 65 74 75 72 .0,.20.-.strlen($next));.}.retur
74fc0 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 n.str_replace("\n",.'',.substr($
74fe0 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 20 3e 20 next,.0,.20)...(strlen($next).>.
75000 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 20.?.'...'.:.''));.}..private.fu
75020 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 6f 6e 65 29 nction.next().{.if.($this->done)
75040 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 .{.return.$this->EOF;.}.if.(!$th
75060 69 73 2d 3e 5f 69 6e 70 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 74 72 75 65 is->_input).{.$this->done.=.true
75080 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 74 63 68 20 3d 20 6e 75 6c ;.}..$token.=.null;.$match.=.nul
750a0 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 69 6e 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a l;.$col.=.null;.$lines.=.null;..
750c0 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 74 65 if.(!$this->_more).{.$this->yyte
750e0 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 7d 0a 0a 24 xt.=.'';.$this->match.=.'';.}..$
75100 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 5f 63 75 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a rules.=.$this->_currentRules();.
75120 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 73 29 3b 0a 0a 66 6f 72 20 $rulesLen.=.count($rules);..for.
75140 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c 65 73 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 ($i=0;.$i.<.$rulesLen;.$i++).{.i
75160 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 72 75 6c 65 f.(preg_match($this->rules[$rule
75180 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 s[$i]],.$this->_input,.$match)).
751a0 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 5c 6e 2e 2a 2f 27 2c 20 24 6d 61 74 63 {.preg_match_all('/\n.*/',.$matc
751c0 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 24 6c 69 6e 65 73 5b 30 h[0],.$lines);.$lines.=.$lines[0
751e0 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f ];.if.($lines).{.$this->yylineno
75200 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 79 79 6c .+=.count($lines);.}..$this->yyl
75220 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 loc.=.array(.'first_line'.=>.$th
75240 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c is->yylloc['last_line'],.'last_l
75260 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 2c 0a 27 66 69 72 73 ine'.=>.$this->yylineno+1,.'firs
75280 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 t_column'.=>.$this->yylloc['last
752a0 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 6c 69 6e _column'],.'last_column'.=>.$lin
752c0 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 73 5b 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 es.?.strlen($lines[count($lines)
752e0 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 .-.1]).-.1.:.$this->yylloc['last
75300 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 2c 0a 29 _column'].+.strlen($match[0]),.)
75320 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 ;.$this->yytext..=.$match[0];.$t
75340 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e his->match..=.$match[0];.$this->
75360 6d 61 74 63 68 65 73 20 3d 20 24 6d 61 74 63 68 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 matches.=.$match;.$this->yyleng.
75380 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e =.strlen($this->yytext);.$this->
753a0 5f 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 73 _more.=.false;.$this->_input.=.s
753c0 75 62 73 74 72 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 ubstr($this->_input,.strlen($mat
753e0 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 2e 3d 20 24 6d 61 74 63 ch[0]));.$this->matched..=.$matc
75400 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 h[0];.$token.=.$this->performAct
75420 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e ion($rules[$i],.$this->condition
75440 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 6e 53 74 61 63 Stack[count($this->conditionStac
75460 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f k)-1]);.if.($token).{.return.$to
75480 6b 65 6e 3b 0a 7d 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d ken;.}.return.new.Undefined();.}
754a0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 3d 3d 20 22 22 29 20 7b 0a .}..if.($this->_input.===."").{.
754c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 return.$this->EOF;.}..$this->par
754e0 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 61 6c 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 seError(.'Lexical.error.on.line.
75500 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 2e 20 55 6e 72 '...($this->yylineno+1)..."..Unr
75520 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 73 68 6f 77 ecognized.text.\n"...$this->show
75540 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 22 22 2c Position(),.array(.'text'.=>."",
75560 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 .'token'.=>.null,.'line'.=>.$thi
75580 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e s->yylineno,.).);.}..private.fun
755a0 63 74 69 6f 6e 20 62 65 67 69 6e 28 24 63 6f 6e 64 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d ction.begin($condition).{.$this-
755c0 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 5d 20 3d 20 24 63 6f 6e 64 69 74 69 6f 6e 3b 0a >conditionStack[].=.$condition;.
755e0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 74 65 28 29 0a 7b }..private.function.popState().{
75600 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 63 6f 6e 64 69 74 69 .return.array_pop($this->conditi
75620 6f 6e 53 74 61 63 6b 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 63 onStack);.}..private.function._c
75640 75 72 72 65 6e 74 52 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f urrentRules().{.return.$this->co
75660 6e 64 69 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 nditions[$this->conditionStack[c
75680 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b ount($this->conditionStack)-1]][
756a0 27 72 75 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 'rules'];.}..private.function.pe
756c0 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 rformAction($avoiding_name_colli
756e0 73 69 6f 6e 73 2c 20 24 59 59 5f 53 54 41 52 54 29 0a 7b 0a 24 59 59 53 54 41 54 45 20 3d 20 24 sions,.$YY_START).{.$YYSTATE.=.$
75700 59 59 5f 53 54 41 52 54 3b 0a 73 77 69 74 63 68 20 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 YY_START;.switch.($avoiding_name
75720 5f 63 6f 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 _collisions).{.case.0:.break;.ca
75740 73 65 20 31 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 se.1:.return.6;.break;.case.2:.$
75760 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 79 79 74 this->yytext.=.substr($this->yyt
75780 65 78 74 2c 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 72 65 74 75 72 6e ext,.1,.$this->yyleng-2);.return
757a0 20 34 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 .4;.case.3:.return.17;.case.4:.r
757c0 65 74 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 eturn.18;.case.5:.return.23;.cas
757e0 65 20 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 e.6:.return.24;.case.7:.return.2
75800 32 3b 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 2;.case.8:.return.21;.case.9:.re
75820 74 75 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 turn.10;.case.10:.return.11;.cas
75840 65 20 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 e.11:.return.8;.case.12:.return.
75860 31 34 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 14;.case.13:.return.'INVALID';.}
75880 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
758a0 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 50 61 72 73 69 6e 67 45 78 63 65 eld\JsonLint;..class.ParsingExce
758c0 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 70 72 6f 74 65 ption.extends.\Exception.{.prote
758e0 63 74 65 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 cted.$details;..public.function.
75900 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 20 3d __construct($message,.$details.=
75920 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 20 3d 20 24 64 65 .array()).{.$this->details.=.$de
75940 74 61 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 tails;.parent::__construct($mess
75960 61 67 65 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 44 65 74 61 age);.}..public.function.getDeta
75980 69 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d ils().{.return.$this->details;.}
759a0 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 6d 61 3b 0a 0a .}<?php..namespace.JsonSchema;..
759c0 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 5c 53 63 68 65 6d use.JsonSchema\Constraints\Schem
759e0 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 6e 74 73 5c 43 6f a;.use.JsonSchema\Constraints\Co
75a00 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 6c 69 64 61 74 6f nstraint;.........class.Validato
75a20 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 0a 0a 0a 0a 66 75 r.extends.Constraint.{........fu
75a40 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 6d 61 20 3d 20 6e nction.check($value,.$schema.=.n
75a60 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).{.
75a80 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 68 69 73 2d 3e 63 $validator.=.new.Schema($this->c
75aa0 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
75ac0 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 72 72 6f 72 73 28 lue,.$schema);.$this->addErrors(
75ae0 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 7d 0a 7d 3c 3f 70 $validator->getErrors());.}.}<?p
75b00 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 72 61 hp..namespace.JsonSchema\Constra
75b20 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 20 65 78 74 ints;........class.Undefined.ext
75b40 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 69 6f 6e 20 63 68 ends.Constraint.{....function.ch
75b60 65 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 eck($value,.$schema.=.null,.$pat
75b80 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 21 69 73 5f 6f h.=.null,.$i.=.null).{.if.(!is_o
75ba0 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 bject($schema)).{.return;.}..$pa
75bc0 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c th.=.$this->incrementPath($path,
75be0 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 .$i);....$this->validateCommonPr
75c00 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 operties($value,.$schema,.$path)
75c20 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 ;....$this->validateTypes($value
75c40 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 7d 0a 0a 0a 0a 0a 0a ,.$schema,.$path,.$i);...}......
75c60 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 54 79 70 65 ....public.function.validateType
75c80 73 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 20 s($value,.$schema.=.null,.$path.
75ca0 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 5f 61 72 =.null,.$i.=.null).{...if.(is_ar
75cc0 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 41 72 72 61 79 ray($value)).{.$this->checkArray
75ce0 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);.}.
75d00 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 69 73 73 65 ...if.(is_object($value).&&.isse
75d20 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 24 74 68 69 73 2d t($schema->properties)).{.$this-
75d40 3e 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 2d 3e 70 72 >checkObject($value,.$schema->pr
75d60 6f 70 65 72 74 69 65 73 2c 20 24 70 61 74 68 2c 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e operties,.$path,.isset($schema->
75d80 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d additionalProperties).?.$schema-
75da0 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 29 3b 0a 7d >additionalProperties.:.null);.}
75dc0 0a 0a 0a 20 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 ....if.(is_string($value)).{.$th
75de0 69 73 2d 3e 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c is->checkString($value,.$schema,
75e00 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 6e 75 6d 65 72 69 63 .$path,.$i);.}....if.(is_numeric
75e20 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 ($value)).{.$this->checkNumber($
75e40 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 0a 0a value,.$schema,.$path,.$i);.}...
75e60 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b 0a 24 74 68 .if.(isset($schema->enum)).{.$th
75e80 69 73 2d 3e 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 is->checkEnum($value,.$schema,.$
75ea0 70 61 74 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 path,.$i);.}.}..........protecte
75ec0 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 d.function.validateCommonPropert
75ee0 69 65 73 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 ies($value,.$schema.=.null,.$pat
75f00 68 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 h.=.null,.$i.=.null).{...if.(iss
75f20 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 et($schema->extends)).{.$this->c
75f40 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 61 2d 3e 65 heckUndefined($value,.$schema->e
75f60 78 74 65 6e 64 73 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 xtends,.$path,.$i);.}....if.(is_
75f80 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 object($value).&&.$value.instanc
75fa0 65 4f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 eOf.Undefined).{.if.(isset($sche
75fc0 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 ma->required).&&.$schema->requir
75fe0 65 64 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 69 73 ed).{.$this->addError($path,."is
76000 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 69 74 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d .missing.and.it.is.required");.}
76020 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 .}.else.{.$this->checkType($valu
76040 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 e,.$schema,.$path);.}....if.(iss
76060 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e 69 74 45 72 et($schema->disallow)).{.$initEr
76080 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 0a 24 74 68 69 rors.=.$this->getErrors();..$thi
760a0 73 2d 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 73 63 68 65 6d s->checkUndefined($value,.$schem
760c0 61 2d 3e 64 69 73 61 6c 6c 6f 77 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e a->disallow,.$path);....if.(coun
760e0 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 t($this->getErrors()).==.count($
76100 69 6e 69 74 45 72 72 6f 72 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 initErrors)).{.$this->addError($
76120 70 61 74 68 2c 20 22 20 64 69 73 61 6c 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 20 6d 61 74 path,.".disallowed.value.was.mat
76140 63 68 65 64 22 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d ched");.}.else.{.$this->errors.=
76160 20 24 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 .$initErrors;.}.}.}.}<?php..name
76180 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 74 73 3b 0a 0a 0a space.JsonSchema\Constraints;...
761a0 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6e 73 74 72 61 69 6e 74 20 69 .....abstract.class.Constraint.i
761c0 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a mplements.ConstraintInterface.{.
761e0 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 protected.$checkMode.=.self::CHE
76200 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 CK_MODE_NORMAL;.protected.$error
76220 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 6c 69 6e 65 53 63 s.=.array();.protected.$inlineSc
76240 68 65 6d 61 50 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d 61 27 3b 0a 0a 63 6f 6e 73 74 hemaProperty.=.'$schema';..const
76260 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 .CHECK_MODE_NORMAL.=.1;.const.CH
76280 45 43 4b 5f 4d 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 75 62 6c ECK_MODE_TYPE_CAST.=.2;.....publ
762a0 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 68 65 63 6b 4d 6f ic.function.__construct($checkMo
762c0 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a de.=.self::CHECK_MODE_NORMAL).{.
762e0 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 65 63 6b 4d 6f 64 65 3b 0a 7d $this->checkMode.=.$checkMode;.}
76300 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 28 24 70 .....public.function.addError($p
76320 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d ath,.$message).{.$this->errors[]
76340 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 3d 3e 20 24 70 61 74 68 2c 0a 27 .=.array(.'property'.=>.$path,.'
76360 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 message'.=>.$message.);.}.....pu
76380 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 28 61 72 72 61 79 20 24 65 blic.function.addErrors(array.$e
763a0 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d rrors).{.$this->errors.=.array_m
763c0 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a erge($this->errors,.$errors);.}.
763e0 0a 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 73 28 29 0a ....public.function.getErrors().
76400 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 74 68 69 73 2d 3e 65 72 72 {.return.array_unique($this->err
76420 6f 72 73 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ors,.SORT_REGULAR);.}.........pr
76440 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 otected.function.incrementPath($
76460 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 27 27 29 20 7b 0a path,.$i).{.if.($path.!==.'').{.
76480 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 5b 27 20 2e if.(is_int($i)).{.$path..=.'['..
764a0 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 69 20 3d 3d 20 27 27 29 20 .$i...']';.}.else.if.($i.==.'').
764c0 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 2e 3d {.$path..=.'';.}.else.{.$path..=
764e0 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 24 69 .'.'...$i;.}.}.else.{.$path.=.$i
76500 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ;.}..return.$path;.}..........pr
76520 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 6c otected.function.checkArray($val
76540 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
76560 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.
76580 43 6f 6c 6c 65 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 Collection($this->checkMode);.$v
765a0 61 6c 69 64 61 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 alidator->check($value,.$schema,
765c0 20 24 70 61 74 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 .$path,.$i);..$this->addErrors($
765e0 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 7d 0a 0a 0a 0a 0a 0a validator->getErrors());.}......
76600 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 4f 62 6a 65 ....protected.function.checkObje
76620 63 74 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 ct($value,.$schema.=.null,.$path
76640 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 74 6f 72 .=.null,.$i.=.null).{.$validator
76660 20 3d 20 6e 65 77 20 4f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b .=.new.Object($this->checkMode);
76680 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 2c 20 24 73 63 68 65 .$validator->check($value,.$sche
766a0 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 64 64 45 72 72 6f 72 ma,.$path,.$i);..$this->addError
766c0 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 7d 0a 0a 0a s($validator->getErrors());.}...
766e0 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 54 .......protected.function.checkT
76700 79 70 65 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 ype($value,.$schema.=.null,.$pat
76720 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 74 6f h.=.null,.$i.=.null).{.$validato
76740 72 20 3d 20 6e 65 77 20 54 79 70 65 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a r.=.new.Type($this->checkMode);.
76760 24 76 61 6c 69 64 61 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 $validator->check($value,.$schem
76780 61 2c 20 24 70 61 74 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 a,.$path,.$i);..$this->addErrors
767a0 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 7d 0a 0a 0a 0a ($validator->getErrors());.}....
767c0 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 55 6e ......protected.function.checkUn
767e0 64 65 66 69 6e 65 64 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 defined($value,.$schema.=.null,.
76800 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 24 76 61 6c 69 $path.=.null,.$i.=.null).{.$vali
76820 64 61 74 6f 72 20 3d 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 24 74 68 69 73 2d 3e 63 68 65 dator.=.new.Undefined($this->che
76840 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 75 ckMode);.$validator->check($valu
76860 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 3e e,.$schema,.$path,.$i);..$this->
76880 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 28 addErrors($validator->getErrors(
768a0 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 6f ));.}..........protected.functio
768c0 6e 20 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 n.checkString($value,.$schema.=.
768e0 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).{
76900 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e .$validator.=.new.String($this->
76920 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 63 6b 28 24 76 checkMode);.$validator->check($v
76940 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 0a 24 74 68 69 alue,.$schema,.$path,.$i);..$thi
76960 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 67 65 74 45 72 72 6f s->addErrors($validator->getErro
76980 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 65 64 20 66 75 6e 63 rs());.}..........protected.func
769a0 74 69 6f 6e 20 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 61 tion.checkNumber($value,.$schema
769c0 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
769e0 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 4e 75 6d 62 65 72 28 24 74 68 69 ).{.$validator.=.new.Number($thi
76a00 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 63 6b s->checkMode);.$validator->check
76a20 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 0a 24 ($value,.$schema,.$path,.$i);..$
76a40 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 67 65 74 45 this->addErrors($validator->getE
76a60 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 65 64 20 66 rrors());.}..........protected.f
76a80 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d unction.checkEnum($value,.$schem
76aa0 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
76ac0 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 45 6e 75 6d 28 24 74 68 69 73 l).{.$validator.=.new.Enum($this
76ae0 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 63 6b 28 ->checkMode);.$validator->check(
76b00 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 0a 24 74 $value,.$schema,.$path,.$i);..$t
76b20 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 67 65 74 45 72 his->addErrors($validator->getEr
76b40 72 6f 72 73 28 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 rors());.}.....public.function.i
76b60 73 56 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 45 72 72 sValid().{.return.!$this->getErr
76b80 6f 72 73 28 29 3b 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 ors();.}.}<?php..namespace.JsonS
76ba0 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.
76bc0 53 63 68 65 6d 61 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 Schema.extends.Constraint.{....p
76be0 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 65 6e 74 2c 20 24 ublic.function.check($element,.$
76c00 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.
76c20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 =.null).{.if.($schema.!==.null).
76c40 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 6d 65 {...$this->checkUndefined($eleme
76c60 6e 74 2c 20 24 73 63 68 65 6d 61 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 nt,.$schema,.'',.'');.}.elseif.(
76c80 69 73 73 65 74 28 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 isset($element->{$this->inlineSc
76ca0 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b hemaProperty})).{...$this->check
76cc0 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 65 6c 65 6d 65 6e 74 2d 3e 7b 24 Undefined($element,.$element->{$
76ce0 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 2c 20 27 27 2c this->inlineSchemaProperty},.'',
76d00 20 27 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 76 61 6c 69 .'');.}.else.{.throw.new.\Invali
76d20 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 6e 6f 20 73 63 68 65 6d 61 20 66 6f dArgumentException('no.schema.fo
76d40 75 6e 64 20 74 6f 20 76 65 72 69 66 79 20 61 67 61 69 6e 73 74 27 29 3b 0a 7d 0a 7d 0a 7d 3c 3f und.to.verify.against');.}.}.}<?
76d60 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 72 php..namespace.JsonSchema\Constr
76d80 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 70 65 20 65 78 74 65 6e 64 73 aints;........class.Type.extends
76da0 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 .Constraint.{....function.check(
76dc0 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 $value.=.null,.$schema.=.null,.$
76de0 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 24 74 79 70 65 20 path.=.null,.$i.=.null).{.$type.
76e00 3d 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 29 20 3f 20 24 73 63 68 65 6d 61 =.isset($schema->type).?.$schema
76e20 2d 3e 74 79 70 65 20 3a 20 6e 75 6c 6c 3b 0a 24 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a ->type.:.null;.$isValid.=.true;.
76e40 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 29 29 20 7b 0a 0a 20 24 76 61 6c 69 64 .if.(is_array($type)).{...$valid
76e60 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 66 61 6c 73 65 3b 0a 24 65 72 72 6f 72 73 20 3d 20 61 atedOneType.=.false;.$errors.=.a
76e80 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 20 61 73 20 24 74 70 29 20 7b rray();.foreach.($type.as.$tp).{
76ea0 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
76ec0 65 63 6b 4d 6f 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 eckMode);.$subSchema.=.new.\stdC
76ee0 6c 61 73 73 28 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 74 70 3b 0a lass();.$subSchema->type.=.$tp;.
76f00 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 75 62 53 63 $validator->check($value,.$subSc
76f20 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a 24 65 72 72 6f 72 20 3d 20 24 76 61 hema,.$path,.null);.$error.=.$va
76f40 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e lidator->getErrors();..if.(!coun
76f60 74 28 24 65 72 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d t($error)).{.$validatedOneType.=
76f80 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 20 3d .true;.break;.}.else.{.$errors.=
76fa0 20 24 65 72 72 6f 72 3b 0a 7d 0a 7d 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 .$error;.}.}.if.(!$validatedOneT
76fc0 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 ype).{.return.$this->addErrors($
76fe0 65 72 72 6f 72 73 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 errors);.}.}.elseif.(is_object($
77000 74 79 70 65 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 28 24 type)).{.$this->checkUndefined($
77020 76 61 6c 75 65 2c 20 24 74 79 70 65 2c 20 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 value,.$type,.$path);.}.else.{.$
77040 69 73 56 61 6c 69 64 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 isValid.=.$this->validateType($v
77060 61 6c 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 56 61 6c 69 64 20 3d 3d alue,.$type);.}..if.($isValid.==
77080 3d 20 66 61 6c 73 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 =.false).{.$this->addError($path
770a0 2c 20 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 20 2e 20 22 20 76 61 6c 75 65 20 66 6f 75 6e ,.gettype($value)...".value.foun
770c0 64 2c 20 62 75 74 20 61 20 22 20 2e 20 24 74 79 70 65 20 2e 20 22 20 69 73 20 72 65 71 75 69 72 d,.but.a."...$type...".is.requir
770e0 65 64 22 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 6e ed");.}.}..........protected.fun
77100 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 ction.validateType($value,.$type
77120 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b ).{...if.(!$type).{.return.true;
77140 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 27 69 6e 74 65 67 .}..switch.($type).{.case.'integ
77160 65 72 27 20 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 65 67 65 72 29 24 76 61 6c 75 65 20 3d 3d 20 er'.:.return.(integer)$value.==.
77180 24 76 61 6c 75 65 20 3f 20 74 72 75 65 20 3a 20 69 73 5f 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a $value.?.true.:.is_int($value);.
771a0 63 61 73 65 20 27 6e 75 6d 62 65 72 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 case.'number'.:.return.is_numeri
771c0 63 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 62 6f 6f 6c 65 61 6e 27 20 3a 0a 72 65 74 75 c($value);.case.'boolean'.:.retu
771e0 72 6e 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6f 62 6a 65 63 74 rn.is_bool($value);.case.'object
77200 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 3b 0a 0a 20 '.:.return.is_object($value);...
77220 63 61 73 65 20 27 61 72 72 61 79 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 28 24 case.'array'.:.return.is_array($
77240 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 73 74 72 69 6e 67 27 20 3a 0a 72 65 74 75 72 6e 20 69 value);.case.'string'.:.return.i
77260 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6e 75 6c 6c 27 20 3a 0a s_string($value);.case.'null'.:.
77280 72 65 74 75 72 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 61 6e return.is_null($value);.case.'an
772a0 79 27 20 3a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 y'.:.return.true;.default:.throw
772c0 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 28 .new.\InvalidArgumentException((
772e0 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f 62 6a 65 63 74 27 20 3a 20 24 is_object($value).?.'object'.:.$
77300 76 61 6c 75 65 29 20 2e 20 27 20 69 73 20 61 20 69 6e 76 61 6c 69 64 20 74 79 70 65 20 66 6f 72 value)...'.is.a.invalid.type.for
77320 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 .'...$type);.}.}.}<?php..namespa
77340 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 0a 0a ce.JsonSchema\Constraints;......
77360 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 73 74 ..class.Collection.extends.Const
77380 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 63 6b raint.{....public.function.check
773a0 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 20 3d ($value,.$schema.=.null,.$path.=
773c0 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 74 28 .null,.$i.=.null).{...if.(isset(
773e0 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 61 6c $schema->minItems).&&.count($val
77400 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 69 73 ue).<.$schema->minItems).{.$this
77420 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 62 65 ->addError($path,."There.must.be
77440 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 49 74 .a.minimum.of."...$schema->minIt
77460 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 20 28 ems...".in.the.array");.}...if.(
77480 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 75 6e isset($schema->maxItems).&&.coun
774a0 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 20 7b t($value).>.$schema->maxItems).{
774c0 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 20 6d .$this->addError($path,."There.m
774e0 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 61 2d ust.be.a.maximum.of."...$schema-
77500 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 7d 0a >maxItems...".in.the.array");.}.
77520 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 74 65 ....if.(isset($schema->uniqueIte
77540 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 20 24 ms).&&.array_unique($value).!=.$
77560 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 2c 20 value).{.$this->addError($path,.
77580 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 65 64 "There.are.no.duplicates.allowed
775a0 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 74 28 .in.the.array");.}....if.(isset(
775c0 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 64 61 $schema->items)).{.$this->valida
775e0 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 2c 20 teItems($value,.$schema,.$path,.
77600 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 6e 63 $i);.}.}..........protected.func
77620 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 68 65 tion.validateItems($value,.$sche
77640 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
77660 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 74 65 ll).{.if.(!is_array($schema->ite
77680 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 20 3d ms)).{...foreach.($value.as.$k.=
776a0 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 65 74 >.$v).{.$initErrors.=.$this->get
776c0 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 61 2d Errors();....if.(!isset($schema-
776e0 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 61 64 >additionalItems).||.$schema->ad
77700 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 69 73 ditionalItems.===.false).{.$this
77720 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 69 74 ->checkUndefined($v,.$schema->it
77740 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 74 28 ems,.$path,.$k);.}....if.(count(
77760 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 74 45 $initErrors).<.count($this->getE
77780 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 64 69 rrors()).&&.(isset($schema->addi
777a0 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 69 6f tionalItems).&&.$schema->additio
777c0 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 45 72 nalItems.!==.false)).{.$secondEr
777e0 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 69 73 rors.=.$this->getErrors();.$this
77800 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 61 64 ->checkUndefined($v,.$schema->ad
77820 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 0a 20 ditionalItems,.$path,.$k);.}....
77840 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 75 6e if.(isset($secondErrors).&&.coun
77860 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 72 72 t($secondErrors).<.$this->getErr
77880 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 6e 64 ors()).{.$this->errors.=.$second
778a0 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 64 45 Errors;.}.elseif.(isset($secondE
778c0 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 20 3d rrors).&&.count($secondErrors).=
778e0 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 0a 24 =.count($this->getErrors())).{.$
77900 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 7d 0a this->errors.=.$initErrors;.}.}.
77920 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 24 6b }.else.{...foreach.($value.as.$k
77940 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 28 24 .=>.$v).{.if.(array_key_exists($
77960 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 68 65 k,.$schema->items)).{.$this->che
77980 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 5b 24 ckUndefined($v,.$schema->items[$
779a0 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 28 61 k],.$path,.$k);.}.else.{...if.(a
779c0 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 6d 73 rray_key_exists('additionalItems
779e0 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 6f 6e ',.$schema).&&.$schema->addition
77a00 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 65 63 alItems.!==.false).{.$this->chec
77a20 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 6f 6e kUndefined($v,.$schema->addition
77a40 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 24 74 alItems,.$path,.$k);.}.else.{.$t
77a60 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 6d 20 his->addError(.$path,.'The.item.
77a80 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 64 65 '...$i...'['...$k...'].is.not.de
77aa0 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 65 20 fined.in.the.objTypeDef.and.the.
77ac0 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 74 69 objTypeDef.does.not.allow.additi
77ae0 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 6f 72 onal.properties'.);.}.}.}....for
77b00 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 6e 74 .($k.=.count($value);.$k.<.count
77b20 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 73 2d ($schema->items);.$k++).{.$this-
77b40 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 29 2c >checkUndefined(new.Undefined(),
77b60 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 29 3b .$schema->items[$k],.$path,.$k);
77b80 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
77ba0 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 53 74 ema\Constraints;........class.St
77bc0 72 69 6e 67 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 ring.extends.Constraint.{....pub
77be0 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
77c00 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.=.
77c20 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 6d 61 78 null).{...if.(isset($schema->max
77c40 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3e 20 24 73 Length).&&.strlen($element).>.$s
77c60 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 chema->maxLength).{.$this->addEr
77c80 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6d 6f 73 74 20 22 20 2e 20 ror($path,."must.be.at.most."...
77ca0 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 $schema->maxLength...".character
77cc0 73 20 6c 6f 6e 67 22 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 s.long");.}....if.(isset($schema
77ce0 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 ->minLength).&&.strlen($element)
77d00 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e .<.$schema->minLength).{.$this->
77d20 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 6c 65 61 73 addError($path,."must.be.at.leas
77d40 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 t."...$schema->minLength...".cha
77d60 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 28 24 racters.long");.}....if.(isset($
77d80 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 schema->pattern).&&.!preg_match(
77da0 27 2f 27 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 20 2e 20 27 2f 27 2c 20 24 65 '/'...$schema->pattern...'/',.$e
77dc0 6c 65 6d 65 6e 74 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 lement)).{.$this->addError($path
77de0 2c 20 22 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 72 65 67 65 78 20 70 61 74 74 ,."does.not.match.the.regex.patt
77e00 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 7d 0a 7d ern."...$schema->pattern);.}.}.}
77e20 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 6d 61 5c 43 6f 6e 73 <?php..namespace.JsonSchema\Cons
77e40 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 65 63 74 20 65 78 74 traints;........class.Object.ext
77e60 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 69 6f 6e 20 63 68 ends.Constraint.{....function.ch
77e80 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 20 3d 20 6e 75 6c 6c eck($element,.$definition.=.null
77ea0 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 6f 70 20 ,.$path.=.null,.$additionalProp.
77ec0 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 74 65 44 65 66 69 6e =.null).{...$this->validateDefin
77ee0 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 6f 6e 2c 20 24 70 61 ition($element,.$definition,.$pa
77f00 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 65 6d 65 6e 74 28 24 th);....$this->validateElement($
77f20 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 74 68 2c 20 24 61 64 element,.$definition,.$path,.$ad
77f40 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 0a 70 75 62 6c 69 63 ditionalProp);.}..........public
77f60 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 28 24 65 6c 65 6d 65 .function.validateElement($eleme
77f80 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 75 6c 6c 2c 20 24 70 nt,.$objectDefinition.=.null,.$p
77fa0 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 6f 70 20 3d 20 6e 75 ath.=.null,.$additionalProp.=.nu
77fc0 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 73 20 24 69 20 3d 3e ll).{.foreach.($element.as.$i.=>
77fe0 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 74 68 69 73 2d 3e 67 .$value).{..$property.=.$this->g
78000 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 6e 65 77 20 55 6e 64 etProperty($element,.$i,.new.Und
78020 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 24 74 68 69 73 2d 3e efined());.$definition.=.$this->
78040 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 74 69 6f 6e 2c 20 24 getProperty($objectDefinition,.$
78060 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 65 72 74 79 28 24 64 i);....if.($this->getProperty($d
78080 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 20 21 24 70 72 6f 70 efinition,.'required').&&.!$prop
780a0 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 70 61 74 68 2c 20 22 erty).{.$this->addError($path,."
780c0 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 73 20 72 65 71 75 69 the.property."...$i...".is.requi
780e0 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 61 6c 50 72 6f 70 20 red");.}....if.($additionalProp.
78100 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 65 53 63 68 65 6d 61 ===.false.&&.$this->inlineSchema
78120 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 6e 69 74 69 6f 6e 29 Property.!==.$i.&&.!$definition)
78140 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 20 70 .{.$this->addError($path,."The.p
78160 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 20 64 65 66 69 6e 65 roperty."...$i...".is.not.define
78180 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 20 6e 6f 74 20 61 6c d.and.the.definition.does.not.al
781a0 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 22 29 3b 0a 7d 0a 0a low.additional.properties");.}..
781c0 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 21 24 64 65 66 69 6e ..if.($additionalProp.&&.!$defin
781e0 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 66 69 6e 65 64 28 24 ition).{.$this->checkUndefined($
78200 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 70 61 74 68 2c 20 24 value,.$additionalProp,.$path,.$
78220 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 2d 3e 67 65 74 50 72 i);.}....$require.=.$this->getPr
78240 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 69 72 65 73 27 29 3b operty($definition,.'requires');
78260 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 67 65 74 50 72 6f 70 .if.($require.&&.!$this->getProp
78280 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 20 7b 0a 24 74 68 69 erty($element,.$require)).{.$thi
782a0 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 72 65 73 65 6e 63 65 s->addError($path,."the.presence
782c0 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 20 22 20 72 65 71 75 .of.the.property."...$i...".requ
782e0 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 22 20 61 6c 73 6f 20 ires.that."...$require...".also.
78300 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 3e 63 68 65 63 6b 55 be.present");.}....$this->checkU
78320 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 69 6f 6e 20 3f 20 3a ndefined($value,.$definition.?.:
78340 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 24 69 29 3b 0a 7d 0a .new.\stdClass(),.$path,.$i);.}.
78360 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 76 61 6c 69 64 61 }.........public.function.valida
78380 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 62 6a 65 63 74 44 65 teDefinition($element,.$objectDe
783a0 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 6e 75 6c 6c 29 0a 7b finition.=.null,.$path.=.null).{
783c0 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 6f 6e 20 61 73 20 24 .foreach.($objectDefinition.as.$
783e0 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 3d 20 24 74 68 69 73 i.=>.$value).{.$property.=.$this
78400 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 6e 65 77 20 ->getProperty($element,.$i,.new.
78420 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 24 74 68 69 Undefined());.$definition.=.$thi
78440 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 74 69 6f 6e s->getProperty($objectDefinition
78460 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 6e 65 64 28 24 70 72 ,.$i);.$this->checkUndefined($pr
78480 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 68 2c 20 24 69 29 3b operty,.$definition,.$path,.$i);
784a0 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 6e 63 74 69 6f 6e .}.}..........protected.function
784c0 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 72 6f 70 65 72 74 79 .getProperty($element,.$property
784e0 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 28 69 73 5f 61 72 72 ,.$fallback.=.null).{.if.(is_arr
78500 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 72 72 61 79 5f 6b 65 ay($element).).{.return.array_ke
78520 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 65 6e 74 29 20 3f 20 y_exists($property,.$element).?.
78540 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 6c 6c 62 61 63 6b 3b $element[$property].:.$fallback;
78560 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 6c 65 6d 65 6e 74 2d .}.else.{.return.isset($element-
78580 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 70 72 6f 70 65 72 74 >$property).?.$element->$propert
785a0 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 0a 0a 6e 61 6d 65 73 y.:.$fallback;.}.}.}<?php..names
785c0 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;....
785e0 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 74 65 72 66 61 63 65 ...interface.ConstraintInterface
78600 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 73 28 29 3b 0a 0a 0a .{......function.getErrors();...
78620 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 72 61 79 20 24 65 72 ....function.addErrors(array.$er
78640 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 64 45 72 72 6f 72 28 rors);........function.addError(
78660 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 75 6e 63 74 69 6f 6e $path,.$message);.......function
78680 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 63 74 69 6f 6e 20 63 .isValid();...........function.c
786a0 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 6c 6c 2c 20 24 70 61 heck($value,.$schema.=.null,.$pa
786c0 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 3f 70 68 70 0a 0a 6e th.=.null,.$i.=.null);.}<?php..n
786e0 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 74 73 3b amespace.JsonSchema\Constraints;
78700 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6e 75 6d 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 ........class.Enum.extends.Const
78720 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 63 6b raint.{....public.function.check
78740 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 20 24 70 61 74 68 ($element,.$schema.=.null,.$path
78760 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 .=.null,.$i.=.null).{.foreach.($
78780 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 73 20 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 65 29 20 schema->enum.as.$possibleValue).
787a0 7b 0a 69 66 20 28 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 65 20 3d 3d 20 24 65 6c 65 6d 65 6e 74 {.if.($possibleValue.==.$element
787c0 29 20 7b 0a 24 66 6f 75 6e 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 ).{.$found.=.true;.break;.}.}..i
787e0 66 20 28 21 69 73 73 65 74 28 24 66 6f 75 6e 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 f.(!isset($found)).{.$this->addE
78800 72 72 6f 72 28 24 70 61 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 76 61 6c rror($path,."does.not.have.a.val
78820 75 65 20 69 6e 20 74 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 22 20 2e 20 69 6d 70 6c 6f 64 ue.in.the.enumeration."...implod
78840 65 28 27 2c 20 27 2c 20 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 3b 0a 7d 0a 7d 0a 7d 3c 3f e(',.',.$schema->enum));.}.}.}<?
78860 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 72 php..namespace.JsonSchema\Constr
78880 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 20 65 78 74 65 6e aints;........class.Number.exten
788a0 64 73 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 ds.Constraint.{....public.functi
788c0 6f 6e 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 on.check($element,.$schema.=.nul
788e0 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 0a 20 l,.$path.=.null,.$i.=.null).{...
78900 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 26 26 20 24 if.(isset($schema->minimum).&&.$
78920 65 6c 65 6d 65 6e 74 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 element.<.$schema->minimum).{.$t
78940 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 20 his->addError($path,."must.have.
78960 61 20 6d 69 6e 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 3e a.minimum.value.of."...$schema->
78980 6d 69 6e 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 61 minimum);.}....if.(isset($schema
789a0 2d 3e 6d 61 78 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 65 6d 61 ->maximum).&&.$element.>.$schema
789c0 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 ->maximum).{.$this->addError($pa
789e0 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f th,."must.have.a.maximum.value.o
78a00 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 f."...$schema->maximum);.}....if
78a20 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 20 26 26 .(isset($schema->divisibleBy).&&
78a40 20 24 65 6c 65 6d 65 6e 74 20 25 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 .$element.%.$schema->divisibleBy
78a60 20 21 3d 20 30 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 .!=.0).{.$this->addError($path,.
78a80 22 69 73 20 6e 6f 74 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 "is.not.divisible.by."...$schema
78aa0 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 69 66 20 ->divisibleBy);.}.}.}<?php...if.
78ac0 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f (!class_exists('Composer\\Autolo
78ae0 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 2c 20 66 61 6c 73 65 29 29 20 7b 0a 72 65 71 75 ad\\ClassLoader',.false)).{.requ
78b00 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 43 6c ire.__DIR__...'/composer'...'/Cl
78b20 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 assLoader.php';.}..return.call_u
78b40 73 65 72 5f 66 75 6e 63 28 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 ser_func(function().{.$loader.=.
78b60 6e 65 77 20 5c 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 new.\Composer\Autoload\ClassLoad
78b80 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 er();.$composerDir.=.__DIR__...'
78ba0 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d /composer';..$map.=.require.$com
78bc0 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 poserDir...'/autoload_namespaces
78be0 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 .php';.foreach.($map.as.$namespa
78c00 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d ce.=>.$path).{.$loader->add($nam
78c20 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 espace,.$path);.}..$classMap.=.r
78c40 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 equire.$composerDir...'/autoload
78c60 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 4d 61 70 29 20 7b _classmap.php';.if.($classMap).{
78c80 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 73 73 4d 61 70 29 .$loader->addClassMap($classMap)
78ca0 3b 0a 7d 0a 0a 24 6c 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 ;.}..$loader->register();..retur
78cc0 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 n.$loader;.});.<?php....$vendorD
78ce0 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 73 65 44 69 72 20 ir.=.dirname(__DIR__);.$baseDir.
78d00 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 6e 20 61 =.dirname($vendorDir);..return.a
78d20 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 rray(.'Symfony\\Component\\Proce
78d40 73 73 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ss'.=>.$baseDir...'/vendor/symfo
78d60 6e 79 2f 70 72 6f 63 65 73 73 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e ny/process/',.'Symfony\\Componen
78d80 74 5c 5c 46 69 6e 64 65 72 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 76 65 6e 64 6f t\\Finder'.=>.$baseDir...'/vendo
78da0 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f r/symfony/finder/',.'Symfony\\Co
78dc0 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 mponent\\Console'.=>.$baseDir...
78de0 27 2f 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 27 2c 0a 27 53 65 6c '/vendor/symfony/console/',.'Sel
78e00 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 76 65 6e d\\JsonLint'.=>.$baseDir...'/ven
78e20 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 27 2c 0a 27 4a 73 6f 6e 53 63 dor/seld/jsonlint/src/',.'JsonSc
78e40 68 65 6d 61 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 76 65 6e 64 6f 72 2f 6a 75 73 hema'.=>.$baseDir...'/vendor/jus
78e60 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 27 2c 0a 27 43 tinrainbow/json-schema/src/',.'C
78e80 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 63 2f 27 2c 0a omposer'.=>.$baseDir...'/src/',.
78ea0 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 72 6e 61 6d 65 );.<?php....$vendorDir.=.dirname
78ec0 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 (__DIR__);.$baseDir.=.dirname($v
78ee0 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 29 3b 0a 3c 3f 70 endorDir);..return.array(.);.<?p
78f00 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
78f20 5c 41 75 74 6f 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 \Autoload;......................
78f40 0a 0a 0a 0a 0a 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 ........class.ClassLoader.{.priv
78f60 61 74 65 20 24 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 ate.$prefixes.=.array();.private
78f80 20 24 66 61 6c 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 .$fallbackDirs.=.array();.privat
78fa0 65 20 24 75 73 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 e.$useIncludePath.=.false;.priva
78fc0 74 65 20 24 63 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 te.$classMap.=.array();..public.
78fe0 66 75 6e 63 74 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 function.getPrefixes().{.return.
79000 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $this->prefixes;.}..public.funct
79020 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.$
79040 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
79060 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
79080 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
790a0 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
790c0 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
790e0 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->
79100 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.{.$
79120 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;.}.}.
79140 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 66 .......public.function.add($pref
79160 69 78 2c 20 24 70 61 74 68 73 29 0a 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 66 6f ix,.$paths).{.if.(!$prefix).{.fo
79180 72 65 61 63 68 20 28 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 reach.((array).$paths.as.$path).
791a0 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b {.$this->fallbackDirs[].=.$path;
791c0 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 .}..return;.}.if.(isset($this->p
791e0 72 65 66 69 78 65 73 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 refixes[$prefix])).{.$this->pref
79200 69 78 65 73 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 ixes[$prefix].=.array_merge(.$th
79220 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 is->prefixes[$prefix],.(array).$
79240 70 61 74 68 73 0a 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 paths.);.}.else.{.$this->prefixe
79260 73 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 7d 0a 7d s[$prefix].=.(array).$paths;.}.}
79280 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 55 73 65 49 6e 63 .......public.function.setUseInc
792a0 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 7b 0a 24 74 68 69 ludePath($useIncludePath).{.$thi
792c0 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 63 6c 75 64 65 50 s->useIncludePath.=.$useIncludeP
792e0 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 69 6f 6e 20 67 65 ath;.}........public.function.ge
79300 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 20 24 74 68 69 73 tUseIncludePath().{.return.$this
79320 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 70 75 62 6c 69 63 ->useIncludePath;.}.......public
79340 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 64 20 3d 20 66 61 .function.register($prepend.=.fa
79360 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 65 72 28 61 72 72 lse).{.spl_autoload_register(arr
79380 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 75 65 2c 20 24 70 ay($this,.'loadClass'),.true,.$p
793a0 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 74 69 6f 6e 20 75 repend);.}.....public.function.u
793c0 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 5f 75 6e 72 65 67 nregister().{.spl_autoload_unreg
793e0 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 61 73 73 27 29 29 ister(array($this,.'loadClass'))
79400 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 6c 6f 61 64 43 ;.}........public.function.loadC
79420 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 20 24 74 68 69 73 lass($class).{.if.($file.=.$this
79440 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 72 65 71 75 69 72 65 20 24 66 ->findFile($class)).{.require.$f
79460 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 0a 0a 0a 0a 0a 70 ile;..return.true;.}.}.........p
79480 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 6c 61 73 73 29 0a ublic.function.findFile($class).
794a0 7b 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
794c0 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[$
794e0 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d class];.}..if.('\\'.==.$class[0]
79500 29 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 ).{.$class.=.substr($class,.1);.
79520 7d 0a 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 72 70 6f 73 28 }..if.(false.!==.$pos.=.strrpos(
79540 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 $class,.'\\')).{...$classPath.=.
79560 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 str_replace('\\',.DIRECTORY_SEPA
79580 52 41 54 4f 52 2c 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 70 6f 73 29 29 20 RATOR,.substr($class,.0,.$pos)).
795a0 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 61 6d ..DIRECTORY_SEPARATOR;.$classNam
795c0 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 7d 20 e.=.substr($class,.$pos.+.1);.}.
795e0 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 6c 61 else.{...$classPath.=.null;.$cla
79600 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 20 2e ssName.=.$class;.}..$classPath..
79620 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 =.str_replace('_',.DIRECTORY_SEP
79640 41 52 41 54 4f 52 2c 20 24 63 6c 61 73 73 4e 61 6d 65 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 66 ARATOR,.$className)...'.php';..f
79660 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 20 61 73 20 24 70 72 65 66 oreach.($this->prefixes.as.$pref
79680 69 78 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 ix.=>.$dirs).{.if.(0.===.strpos(
796a0 24 63 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 $class,.$prefix)).{.foreach.($di
796c0 72 73 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 rs.as.$dir).{.if.(file_exists($d
796e0 69 72 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 ir...DIRECTORY_SEPARATOR...$clas
79700 73 50 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 sPath)).{.return.$dir...DIRECTOR
79720 59 5f 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 Y_SEPARATOR...$classPath;.}.}.}.
79740 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.
79760 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.
79780 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
797a0 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
797c0 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.(
797e0 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.=
79800 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
79820 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 7d 0a 7d 0a assPath)).{.return.$file;.}.}.}.
79840 3c 3f 70 68 70 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 73 72 63 2f <?php..require.__DIR__.'/../src/
79860 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f bootstrap.php';..use.Composer\Co
79880 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 nsole\Application;..error_report
798a0 69 6e 67 28 2d 31 29 3b 0a 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f 65 72 72 6f 72 73 ing(-1);.ini_set('display_errors
798c0 27 2c 20 31 29 3b 0a 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 ',.1);..//.run.the.command.appli
798e0 63 61 74 69 6f 6e 0a 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 cation.$application.=.new.Applic
79900 61 74 69 6f 6e 28 29 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 ation();.$application->run();..C
79920 6f 70 79 72 69 67 68 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 opyright.(c).2011.Nils.Adermann,
79940 20 4a 6f 72 64 69 20 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 .Jordi.Boggiano..Permission.is.h
79960 65 72 65 62 79 20 67 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 ereby.granted,.free.of.charge,.t
79980 6f 20 61 6e 79 20 70 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 o.any.person.obtaining.a.copy.of
799a0 20 74 68 69 73 20 73 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 .this.software.and.associated.do
799c0 63 75 6d 65 6e 74 61 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 cumentation.files.(the."Software
799e0 22 29 2c 20 74 6f 20 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 "),.to.deal.in.the.Software.with
79a00 6f 75 74 20 72 65 73 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 out.restriction,.including.witho
79a20 75 74 20 6c 69 6d 69 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 ut.limitation.the.rights.to.use,
79a40 20 63 6f 70 79 2c 20 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 .copy,.modify,.merge,.publish,.d
79a60 69 73 74 72 69 62 75 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 istribute,.sublicense,.and/or.se
79a80 6c 6c 0a 63 6f 70 69 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 ll.copies.of.the.Software,.and.t
79aa0 6f 20 70 65 72 6d 69 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 o.permit.persons.to.whom.the.Sof
79ac0 74 77 61 72 65 20 69 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 tware.is.furnished.to.do.so,.sub
79ae0 6a 65 63 74 20 74 6f 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 ject.to.the.following.conditions
79b00 3a 0a 0a 54 68 65 20 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 :..The.above.copyright.notice.an
79b20 64 20 74 68 69 73 20 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 d.this.permission.notice.shall.b
79b40 65 20 69 6e 63 6c 75 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 e.included.in.all.copies.or.subs
79b60 74 61 6e 74 69 61 6c 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 tantial.portions.of.the.Software
79b80 2e 0a 0a 54 48 45 20 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 ...THE.SOFTWARE.IS.PROVIDED."AS.
79ba0 49 53 22 2c 20 57 49 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 IS",.WITHOUT.WARRANTY.OF.ANY.KIN
79bc0 44 2c 20 45 58 50 52 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 D,.EXPRESS.OR.IMPLIED,.INCLUDING
79be0 20 42 55 54 20 4e 4f 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 .BUT.NOT.LIMITED.TO.THE.WARRANTI
79c00 45 53 20 4f 46 20 4d 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 ES.OF.MERCHANTABILITY,.FITNESS.F
79c20 4f 52 20 41 20 50 41 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 OR.A.PARTICULAR.PURPOSE.AND.NONI
79c40 4e 46 52 49 4e 47 45 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 NFRINGEMENT..IN.NO.EVENT.SHALL.T
79c60 48 45 0a 41 55 54 48 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 HE.AUTHORS.OR.COPYRIGHT.HOLDERS.
79c80 42 45 20 4c 49 41 42 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 BE.LIABLE.FOR.ANY.CLAIM,.DAMAGES
79ca0 20 4f 52 20 4f 54 48 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 .OR.OTHER.LIABILITY,.WHETHER.IN.
79cc0 41 4e 20 41 43 54 49 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 AN.ACTION.OF.CONTRACT,.TORT.OR.O
79ce0 54 48 45 52 57 49 53 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 THERWISE,.ARISING.FROM,.OUT.OF.O
79d00 52 20 49 4e 20 43 4f 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 R.IN.CONNECTION.WITH.THE.SOFTWAR
79d20 45 20 4f 52 20 54 48 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 E.OR.THE.USE.OR.OTHER.DEALINGS.I
79d40 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 3e 00 05 0d 15 1e cb a8 87 98 89 20 10 c9 8b N.THE.SOFTWARE...>..............
79d60 48 70 1a 19 9f 02 00 00 00 47 42 4d 42 Hp.......GBMB