+ ->arrayNode('fonts')
+ ->treatNullLike([])
+ ->defaultValue($defaults['fonts'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->arrayNode('map')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('border')->cannotBeEmpty()->defaultValue($defaults['map']['border'])->end()
+ ->scalarNode('fill')->cannotBeEmpty()->defaultValue($defaults['map']['fill'])->end()
+ ->scalarNode('height')->cannotBeEmpty()->defaultValue($defaults['map']['height'])->end()
+ ->scalarNode('quality')->cannotBeEmpty()->defaultValue($defaults['map']['quality'])->end()
+ ->scalarNode('radius')->cannotBeEmpty()->defaultValue($defaults['map']['radius'])->end()
+ ->scalarNode('server')->cannotBeEmpty()->defaultValue($defaults['map']['server'])->end()
+ ->scalarNode('thickness')->cannotBeEmpty()->defaultValue($defaults['map']['thickness'])->end()
+ ->scalarNode('tz')->cannotBeEmpty()->defaultValue($defaults['map']['tz'])->end()
+ ->scalarNode('width')->cannotBeEmpty()->defaultValue($defaults['map']['width'])->end()
+ ->scalarNode('zoom')->cannotBeEmpty()->defaultValue($defaults['map']['zoom'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('multi')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('border')->cannotBeEmpty()->defaultValue($defaults['multi']['border'])->end()
+ ->scalarNode('fill')->cannotBeEmpty()->defaultValue($defaults['multi']['fill'])->end()
+ ->scalarNode('height')->cannotBeEmpty()->defaultValue($defaults['multi']['height'])->end()
+ ->scalarNode('highborder')->cannotBeEmpty()->defaultValue($defaults['multi']['highborder'])->end()
+ ->scalarNode('highfill')->cannotBeEmpty()->defaultValue($defaults['multi']['highfill'])->end()
+ ->scalarNode('highradius')->cannotBeEmpty()->defaultValue($defaults['multi']['highradius'])->end()
+ ->scalarNode('highsize')->cannotBeEmpty()->defaultValue($defaults['multi']['highsize'])->end()
+ ->scalarNode('highthickness')->cannotBeEmpty()->defaultValue($defaults['multi']['highthickness'])->end()
+ ->scalarNode('quality')->cannotBeEmpty()->defaultValue($defaults['multi']['quality'])->end()
+ ->scalarNode('radius')->cannotBeEmpty()->defaultValue($defaults['multi']['radius'])->end()
+ ->scalarNode('server')->cannotBeEmpty()->defaultValue($defaults['multi']['server'])->end()
+ ->scalarNode('size')->cannotBeEmpty()->defaultValue($defaults['multi']['size'])->end()
+ ->scalarNode('thickness')->cannotBeEmpty()->defaultValue($defaults['multi']['thickness'])->end()
+ ->scalarNode('tz')->cannotBeEmpty()->defaultValue($defaults['multi']['tz'])->end()
+ ->scalarNode('width')->cannotBeEmpty()->defaultValue($defaults['multi']['width'])->end()
+ ->scalarNode('zoom')->cannotBeEmpty()->defaultValue($defaults['multi']['zoom'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('prefixes')
+ ->treatNullLike([])
+ ->defaultValue($defaults['prefixes'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->scalarNode('public')->cannotBeEmpty()->defaultValue($defaults['public'])->end()
+ ->arrayNode('routes')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('css')->cannotBeEmpty()->defaultValue($defaults['routes']['css'])->end()
+ ->scalarNode('img')->cannotBeEmpty()->defaultValue($defaults['routes']['img'])->end()
+ ->scalarNode('js')->cannotBeEmpty()->defaultValue($defaults['routes']['js'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('servers')
+ ->treatNullLike([])
+ ->defaultValue($defaults['servers'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->arrayNode('thumb')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('height')->cannotBeEmpty()->defaultValue($defaults['thumb']['height'])->end()
+ ->scalarNode('width')->cannotBeEmpty()->defaultValue($defaults['thumb']['width'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('tokens')