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` * * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) * - (c) John MacFarlane * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Util; final class Configuration implements ConfigurationInterface { /** @var array */ private $config; /** * @param array $config */ public function __construct(array $config = []) { $this->config = $config; } public function merge(array $config = []) { $this->config = \array_replace_recursive($this->config, $config); } public function replace(array $config = []) { $this->config = $config; } public function get(?string $key = null, $default = null) { if ($key === null) { @\trigger_error('Calling Configuration::get() without a $key is deprecated in league/commonmark 1.6 and will not be allowed in 2.0', \E_USER_DEPRECATED); return $this->config; } // accept a/b/c as ['a']['b']['c'] if (\strpos($key, '/')) { return $this->getConfigByPath($key, $default); } if (!isset($this->config[$key])) { return $default; } return $this->config[$key]; } public function set(string $key, $value = null) { if (\func_num_args() === 1) { @\trigger_error('Calling Configuration::set() without a $value is deprecated in league/commonmark 1.6 and will not be allowed in 2.0', \E_USER_DEPRECATED); } // accept a/b/c as ['a']['b']['c'] if (\strpos($key, '/')) { $this->setByPath($key, $value); } $this->config[$key] = $value; } public function exists(string $key): bool { return $this->getConfigByPath($key, self::MISSING) !== self::MISSING; } /** * @param string $keyPath * @param string|null $default * * @return mixed|null */ private function getConfigByPath(string $keyPath, $default = null) { $keyArr = \explode('/', $keyPath); $data = $this->config; foreach ($keyArr as $k) { if (!\is_array($data) || !isset($data[$k])) { return $default; } $data = $data[$k]; } return $data; } /** * @param string $keyPath * @param string|null $value */ private function setByPath(string $keyPath, $value = null): void { $keyArr = \explode('/', $keyPath); $pointer = &$this->config; while (($k = \array_shift($keyArr)) !== null) { if (!\is_array($pointer)) { $pointer = []; } if (!isset($pointer[$k])) { $pointer[$k] = null; } $pointer = &$pointer[$k]; } $pointer = $value; } }