PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` array ( 'pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'aliases' => array ( ), 'reference' => NULL, 'name' => 'laravel/laravel', ), 'versions' => array ( 'asm89/stack-cors' => array ( 'pretty_version' => 'v2.1.1', 'version' => '2.1.1.0', 'aliases' => array ( ), 'reference' => '73e5b88775c64ccc0b84fb60836b30dc9d92ac4a', ), 'brick/math' => array ( 'pretty_version' => '0.9.3', 'version' => '0.9.3.0', 'aliases' => array ( ), 'reference' => 'ca57d18f028f84f777b2168cd1911b0dee2343ae', ), 'cordoval/hamcrest-php' => array ( 'replaced' => array ( 0 => '*', ), ), 'davedevelopment/hamcrest-php' => array ( 'replaced' => array ( 0 => '*', ), ), 'doctrine/inflector' => array ( 'pretty_version' => '2.0.6', 'version' => '2.0.6.0', 'aliases' => array ( ), 'reference' => 'd9d313a36c872fd6ee06d9a6cbcf713eaa40f024', ), 'doctrine/instantiator' => array ( 'pretty_version' => '1.4.1', 'version' => '1.4.1.0', 'aliases' => array ( ), 'reference' => '10dcfce151b967d20fde1b34ae6640712c3891bc', ), 'doctrine/lexer' => array ( 'pretty_version' => '1.2.3', 'version' => '1.2.3.0', 'aliases' => array ( ), 'reference' => 'c268e882d4dbdd85e36e4ad69e02dc284f89d229', ), 'dragonmantank/cron-expression' => array ( 'pretty_version' => 'v3.3.2', 'version' => '3.3.2.0', 'aliases' => array ( ), 'reference' => '782ca5968ab8b954773518e9e49a6f892a34b2a8', ), 'egulias/email-validator' => array ( 'pretty_version' => '2.1.25', 'version' => '2.1.25.0', 'aliases' => array ( ), 'reference' => '0dbf5d78455d4d6a41d186da50adc1122ec066f4', ), 'facade/flare-client-php' => array ( 'pretty_version' => '1.10.0', 'version' => '1.10.0.0', 'aliases' => array ( ), 'reference' => '213fa2c69e120bca4c51ba3e82ed1834ef3f41b8', ), 'facade/ignition' => array ( 'pretty_version' => '2.17.6', 'version' => '2.17.6.0', 'aliases' => array ( ), 'reference' => '6acd82e986a2ecee89e2e68adfc30a1936d1ab7c', ), 'facade/ignition-contracts' => array ( 'pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'aliases' => array ( ), 'reference' => '3c921a1cdba35b68a7f0ccffc6dffc1995b18267', ), 'fakerphp/faker' => array ( 'pretty_version' => 'v1.20.0', 'version' => '1.20.0.0', 'aliases' => array ( ), 'reference' => '37f751c67a5372d4e26353bd9384bc03744ec77b', ), 'filp/whoops' => array ( 'pretty_version' => '2.14.5', 'version' => '2.14.5.0', 'aliases' => array ( ), 'reference' => 'a63e5e8f26ebbebf8ed3c5c691637325512eb0dc', ), 'fruitcake/laravel-cors' => array ( 'pretty_version' => 'v2.2.0', 'version' => '2.2.0.0', 'aliases' => array ( ), 'reference' => '783a74f5e3431d7b9805be8afb60fd0a8f743534', ), 'graham-campbell/result-type' => array ( 'pretty_version' => 'v1.1.0', 'version' => '1.1.0.0', 'aliases' => array ( ), 'reference' => 'a878d45c1914464426dc94da61c9e1d36ae262a8', ), 'guzzlehttp/guzzle' => array ( 'pretty_version' => '7.5.0', 'version' => '7.5.0.0', 'aliases' => array ( ), 'reference' => 'b50a2a1251152e43f6a37f0fa053e730a67d25ba', ), 'guzzlehttp/promises' => array ( 'pretty_version' => '1.5.2', 'version' => '1.5.2.0', 'aliases' => array ( ), 'reference' => 'b94b2807d85443f9719887892882d0329d1e2598', ), 'guzzlehttp/psr7' => array ( 'pretty_version' => '2.4.1', 'version' => '2.4.1.0', 'aliases' => array ( ), 'reference' => '69568e4293f4fa993f3b0e51c9723e1e17c41379', ), 'hamcrest/hamcrest-php' => array ( 'pretty_version' => 'v2.0.1', 'version' => '2.0.1.0', 'aliases' => array ( ), 'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3', ), 'illuminate/auth' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/broadcasting' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/bus' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/cache' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/collections' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/config' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/console' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/container' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/contracts' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/cookie' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/database' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/encryption' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/events' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/filesystem' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/hashing' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/http' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/log' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/macroable' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/mail' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/notifications' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/pagination' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/pipeline' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/queue' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/redis' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/routing' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/session' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/support' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/testing' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/translation' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/validation' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'illuminate/view' => array ( 'replaced' => array ( 0 => 'v8.83.25', ), ), 'josiasmontag/laravel-recaptchav3' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => 'd9e529bdb3addd4b9129c7064bc541c743b3563c', ), 'kodova/hamcrest-php' => array ( 'replaced' => array ( 0 => '*', ), ), 'laravel/framework' => array ( 'pretty_version' => 'v8.83.25', 'version' => '8.83.25.0', 'aliases' => array ( ), 'reference' => 'b77b908a9426efa41d6286a2ef4c3adbf5398ca1', ), 'laravel/laravel' => array ( 'pretty_version' => '1.0.0+no-version-set', 'version' => '1.0.0.0', 'aliases' => array ( ), 'reference' => NULL, ), 'laravel/sail' => array ( 'pretty_version' => 'v1.16.2', 'version' => '1.16.2.0', 'aliases' => array ( ), 'reference' => '7d1ed5f856ec8b9708712e3fc0708fcabe114659', ), 'laravel/sanctum' => array ( 'pretty_version' => 'v2.15.1', 'version' => '2.15.1.0', 'aliases' => array ( ), 'reference' => '31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473', ), 'laravel/serializable-closure' => array ( 'pretty_version' => 'v1.2.2', 'version' => '1.2.2.0', 'aliases' => array ( ), 'reference' => '47afb7fae28ed29057fdca37e16a84f90cc62fae', ), 'laravel/tinker' => array ( 'pretty_version' => 'v2.7.2', 'version' => '2.7.2.0', 'aliases' => array ( ), 'reference' => 'dff39b661e827dae6e092412f976658df82dbac5', ), 'laravel/ui' => array ( 'pretty_version' => 'v3.4.6', 'version' => '3.4.6.0', 'aliases' => array ( ), 'reference' => '65ec5c03f7fee2c8ecae785795b829a15be48c2c', ), 'league/commonmark' => array ( 'pretty_version' => '1.6.7', 'version' => '1.6.7.0', 'aliases' => array ( ), 'reference' => '2b8185c13bc9578367a5bf901881d1c1b5bbd09b', ), 'league/flysystem' => array ( 'pretty_version' => '1.1.10', 'version' => '1.1.10.0', 'aliases' => array ( ), 'reference' => '3239285c825c152bcc315fe0e87d6b55f5972ed1', ), 'league/mime-type-detection' => array ( 'pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'aliases' => array ( ), 'reference' => 'ff6248ea87a9f116e78edd6002e39e5128a0d4dd', ), 'mockery/mockery' => array ( 'pretty_version' => '1.5.1', 'version' => '1.5.1.0', 'aliases' => array ( ), 'reference' => 'e92dcc83d5a51851baf5f5591d32cb2b16e3684e', ), 'monolog/monolog' => array ( 'pretty_version' => '2.8.0', 'version' => '2.8.0.0', 'aliases' => array ( ), 'reference' => '720488632c590286b88b80e62aa3d3d551ad4a50', ), 'mtdowling/cron-expression' => array ( 'replaced' => array ( 0 => '^1.0', ), ), 'myclabs/deep-copy' => array ( 'pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'aliases' => array ( ), 'reference' => '14daed4296fae74d9e3201d2c4925d1acb7aa614', ), 'nesbot/carbon' => array ( 'pretty_version' => '2.62.1', 'version' => '2.62.1.0', 'aliases' => array ( ), 'reference' => '01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a', ), 'nikic/php-parser' => array ( 'pretty_version' => 'v4.15.1', 'version' => '4.15.1.0', 'aliases' => array ( ), 'reference' => '0ef6c55a3f47f89d7a374e6f835197a0b5fcf900', ), 'nunomaduro/collision' => array ( 'pretty_version' => 'v5.11.0', 'version' => '5.11.0.0', 'aliases' => array ( ), 'reference' => '8b610eef8582ccdc05d8f2ab23305e2d37049461', ), 'opis/closure' => array ( 'pretty_version' => '3.6.3', 'version' => '3.6.3.0', 'aliases' => array ( ), 'reference' => '3d81e4309d2a927abbe66df935f4bb60082805ad', ), 'phar-io/manifest' => array ( 'pretty_version' => '2.0.3', 'version' => '2.0.3.0', 'aliases' => array ( ), 'reference' => '97803eca37d319dfa7826cc2437fc020857acb53', ), 'phar-io/version' => array ( 'pretty_version' => '3.2.1', 'version' => '3.2.1.0', 'aliases' => array ( ), 'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74', ), 'phpoption/phpoption' => array ( 'pretty_version' => '1.9.0', 'version' => '1.9.0.0', 'aliases' => array ( ), 'reference' => 'dc5ff11e274a90cc1c743f66c9ad700ce50db9ab', ), 'phpunit/php-code-coverage' => array ( 'pretty_version' => '9.2.17', 'version' => '9.2.17.0', 'aliases' => array ( ), 'reference' => 'aa94dc41e8661fe90c7316849907cba3007b10d8', ), 'phpunit/php-file-iterator' => array ( 'pretty_version' => '3.0.6', 'version' => '3.0.6.0', 'aliases' => array ( ), 'reference' => 'cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf', ), 'phpunit/php-invoker' => array ( 'pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'aliases' => array ( ), 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67', ), 'phpunit/php-text-template' => array ( 'pretty_version' => '2.0.4', 'version' => '2.0.4.0', 'aliases' => array ( ), 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28', ), 'phpunit/php-timer' => array ( 'pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'aliases' => array ( ), 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2', ), 'phpunit/phpunit' => array ( 'pretty_version' => '9.5.25', 'version' => '9.5.25.0', 'aliases' => array ( ), 'reference' => '3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d', ), 'psr/container' => array ( 'pretty_version' => '1.1.1', 'version' => '1.1.1.0', 'aliases' => array ( ), 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', ), 'psr/container-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psr/event-dispatcher' => array ( 'pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'aliases' => array ( ), 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', ), 'psr/event-dispatcher-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psr/http-client' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621', ), 'psr/http-client-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psr/http-factory' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be', ), 'psr/http-factory-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psr/http-message' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', ), 'psr/http-message-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psr/log' => array ( 'pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'aliases' => array ( ), 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', ), 'psr/log-implementation' => array ( 'provided' => array ( 0 => '1.0.0 || 2.0.0 || 3.0.0', 1 => '1.0|2.0', ), ), 'psr/simple-cache' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', ), 'psr/simple-cache-implementation' => array ( 'provided' => array ( 0 => '1.0', ), ), 'psy/psysh' => array ( 'pretty_version' => 'v0.11.8', 'version' => '0.11.8.0', 'aliases' => array ( ), 'reference' => 'f455acf3645262ae389b10e9beba0c358aa6994e', ), 'ralouphie/getallheaders' => array ( 'pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'aliases' => array ( ), 'reference' => '120b605dfeb996808c31b6477290a714d356e822', ), 'ramsey/collection' => array ( 'pretty_version' => '1.2.2', 'version' => '1.2.2.0', 'aliases' => array ( ), 'reference' => 'cccc74ee5e328031b15640b51056ee8d3bb66c0a', ), 'ramsey/uuid' => array ( 'pretty_version' => '4.2.3', 'version' => '4.2.3.0', 'aliases' => array ( ), 'reference' => 'fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df', ), 'rhumsaa/uuid' => array ( 'replaced' => array ( 0 => '4.2.3', ), ), 'sebastian/cli-parser' => array ( 'pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'aliases' => array ( ), 'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2', ), 'sebastian/code-unit' => array ( 'pretty_version' => '1.0.8', 'version' => '1.0.8.0', 'aliases' => array ( ), 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120', ), 'sebastian/code-unit-reverse-lookup' => array ( 'pretty_version' => '2.0.3', 'version' => '2.0.3.0', 'aliases' => array ( ), 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5', ), 'sebastian/comparator' => array ( 'pretty_version' => '4.0.8', 'version' => '4.0.8.0', 'aliases' => array ( ), 'reference' => 'fa0f136dd2334583309d32b62544682ee972b51a', ), 'sebastian/complexity' => array ( 'pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'aliases' => array ( ), 'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88', ), 'sebastian/diff' => array ( 'pretty_version' => '4.0.4', 'version' => '4.0.4.0', 'aliases' => array ( ), 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d', ), 'sebastian/environment' => array ( 'pretty_version' => '5.1.4', 'version' => '5.1.4.0', 'aliases' => array ( ), 'reference' => '1b5dff7bb151a4db11d49d90e5408e4e938270f7', ), 'sebastian/exporter' => array ( 'pretty_version' => '4.0.5', 'version' => '4.0.5.0', 'aliases' => array ( ), 'reference' => 'ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d', ), 'sebastian/global-state' => array ( 'pretty_version' => '5.0.5', 'version' => '5.0.5.0', 'aliases' => array ( ), 'reference' => '0ca8db5a5fc9c8646244e629625ac486fa286bf2', ), 'sebastian/lines-of-code' => array ( 'pretty_version' => '1.0.3', 'version' => '1.0.3.0', 'aliases' => array ( ), 'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc', ), 'sebastian/object-enumerator' => array ( 'pretty_version' => '4.0.4', 'version' => '4.0.4.0', 'aliases' => array ( ), 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71', ), 'sebastian/object-reflector' => array ( 'pretty_version' => '2.0.4', 'version' => '2.0.4.0', 'aliases' => array ( ), 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7', ), 'sebastian/recursion-context' => array ( 'pretty_version' => '4.0.4', 'version' => '4.0.4.0', 'aliases' => array ( ), 'reference' => 'cd9d8cf3c5804de4341c283ed787f099f5506172', ), 'sebastian/resource-operations' => array ( 'pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'aliases' => array ( ), 'reference' => '0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8', ), 'sebastian/type' => array ( 'pretty_version' => '3.2.0', 'version' => '3.2.0.0', 'aliases' => array ( ), 'reference' => 'fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e', ), 'sebastian/version' => array ( 'pretty_version' => '3.0.2', 'version' => '3.0.2.0', 'aliases' => array ( ), 'reference' => 'c6c1022351a901512170118436c764e473f6de8c', ), 'swiftmailer/swiftmailer' => array ( 'pretty_version' => 'v6.3.0', 'version' => '6.3.0.0', 'aliases' => array ( ), 'reference' => '8a5d5072dca8f48460fce2f4131fcc495eec654c', ), 'symfony/console' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '984ea2c0f45f42dfed01d2f3987b187467c4b16d', ), 'symfony/css-selector' => array ( 'pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'aliases' => array ( ), 'reference' => 'c1681789f059ab756001052164726ae88512ae3d', ), 'symfony/deprecation-contracts' => array ( 'pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'aliases' => array ( ), 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', ), 'symfony/error-handler' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '5fe6d42ffeb68b094df8fdbf3acf23f391cc6be0', ), 'symfony/event-dispatcher' => array ( 'pretty_version' => 'v5.4.9', 'version' => '5.4.9.0', 'aliases' => array ( ), 'reference' => '8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc', ), 'symfony/event-dispatcher-contracts' => array ( 'pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'aliases' => array ( ), 'reference' => 'f98b54df6ad059855739db6fcbc2d36995283fe1', ), 'symfony/event-dispatcher-implementation' => array ( 'provided' => array ( 0 => '2.0', ), ), 'symfony/finder' => array ( 'pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'aliases' => array ( ), 'reference' => '7872a66f57caffa2916a584db1aa7f12adc76f8c', ), 'symfony/http-foundation' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => 'e7c7b395c3a61d746919c21e915f51f0039c3f75', ), 'symfony/http-kernel' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '6f77fabc1a37c2dceecc6f78cca44772705dc52f', ), 'symfony/mime' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '1c118b253bb3495d81e95a6e3ec6c2766a98a0c4', ), 'symfony/polyfill-ctype' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4', ), 'symfony/polyfill-iconv' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '143f1881e655bebca1312722af8068de235ae5dc', ), 'symfony/polyfill-intl-grapheme' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '433d05519ce6990bf3530fba6957499d327395c2', ), 'symfony/polyfill-intl-idn' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '59a8d271f00dd0e4c2e518104cc7963f655a1aa8', ), 'symfony/polyfill-intl-normalizer' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '219aa369ceff116e673852dce47c3a41794c14bd', ), 'symfony/polyfill-mbstring' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', ), 'symfony/polyfill-php72' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => 'bf44a9fd41feaac72b074de600314a93e2ae78e2', ), 'symfony/polyfill-php73' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => 'e440d35fa0286f77fb45b79a03fedbeda9307e85', ), 'symfony/polyfill-php80' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', ), 'symfony/polyfill-php81' => array ( 'pretty_version' => 'v1.26.0', 'version' => '1.26.0.0', 'aliases' => array ( ), 'reference' => '13f6d1271c663dc5ae9fb843a8f16521db7687a1', ), 'symfony/process' => array ( 'pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'aliases' => array ( ), 'reference' => '6e75fe6874cbc7e4773d049616ab450eff537bf1', ), 'symfony/routing' => array ( 'pretty_version' => 'v5.4.11', 'version' => '5.4.11.0', 'aliases' => array ( ), 'reference' => '3e01ccd9b2a3a4167ba2b3c53612762300300226', ), 'symfony/service-contracts' => array ( 'pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'aliases' => array ( ), 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', ), 'symfony/string' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '089e7237497fae7a9c404d0c3aeb8db3254733e4', ), 'symfony/translation' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => 'f0ed07675863aa6e3939df8b1bc879450b585cab', ), 'symfony/translation-contracts' => array ( 'pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'aliases' => array ( ), 'reference' => '136b19dd05cdf0709db6537d058bcab6dd6e2dbe', ), 'symfony/translation-implementation' => array ( 'provided' => array ( 0 => '2.3', ), ), 'symfony/var-dumper' => array ( 'pretty_version' => 'v5.4.14', 'version' => '5.4.14.0', 'aliases' => array ( ), 'reference' => '6894d06145fefebd9a4c7272baa026a1c394a430', ), 'theseer/tokenizer' => array ( 'pretty_version' => '1.2.1', 'version' => '1.2.1.0', 'aliases' => array ( ), 'reference' => '34a41e998c2183e22995f158c581e7b5e755ab9e', ), 'tijsverkoyen/css-to-inline-styles' => array ( 'pretty_version' => '2.2.5', 'version' => '2.2.5.0', 'aliases' => array ( ), 'reference' => '4348a3a06651827a27d989ad1d13efec6bb49b19', ), 'vlucas/phpdotenv' => array ( 'pretty_version' => 'v5.5.0', 'version' => '5.5.0.0', 'aliases' => array ( ), 'reference' => '1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7', ), 'voku/portable-ascii' => array ( 'pretty_version' => '1.6.1', 'version' => '1.6.1.0', 'aliases' => array ( ), 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a', ), 'webmozart/assert' => array ( 'pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'aliases' => array ( ), 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', ), ), ); private static $canGetVendors; private static $installedByVendor = array(); public static function getInstalledPackages() { $packages = array(); foreach (self::getInstalled() as $installed) { $packages[] = array_keys($installed['versions']); } if (1 === \count($packages)) { return $packages[0]; } return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); } public static function isInstalled($packageName) { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { return true; } } return false; } public static function satisfies(VersionParser $parser, $packageName, $constraint) { $constraint = $parser->parseConstraints($constraint); $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); return $provided->matches($constraint); } public static function getVersionRanges($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } $ranges = array(); if (isset($installed['versions'][$packageName]['pretty_version'])) { $ranges[] = $installed['versions'][$packageName]['pretty_version']; } if (array_key_exists('aliases', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); } if (array_key_exists('replaced', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); } if (array_key_exists('provided', $installed['versions'][$packageName])) { $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); } return implode(' || ', $ranges); } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getVersion($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['version'])) { return null; } return $installed['versions'][$packageName]['version']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getPrettyVersion($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['pretty_version'])) { return null; } return $installed['versions'][$packageName]['pretty_version']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getReference($packageName) { foreach (self::getInstalled() as $installed) { if (!isset($installed['versions'][$packageName])) { continue; } if (!isset($installed['versions'][$packageName]['reference'])) { return null; } return $installed['versions'][$packageName]['reference']; } throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); } public static function getRootPackage() { $installed = self::getInstalled(); return $installed[0]['root']; } public static function getRawData() { return self::$installed; } public static function reload($data) { self::$installed = $data; self::$installedByVendor = array(); } private static function getInstalled() { if (null === self::$canGetVendors) { self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); } $installed = array(); if (self::$canGetVendors) { foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; } } } $installed[] = self::$installed; return $installed; } }