<?xml version="1.0" standalone="no"?>
<?xml-stylesheet type="text/css" href="diagrams.css" ?>
<!--
 * Copyright 2004 The Apache Software Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="root" width="460" height="530" x="0" y="0">

<script type="text/ecmascript" xlink:href="diagrams.js"/>
<script type="text/ecmascript" xlink:href="diagrams-cli2.js"/>
<script type="text/ecmascript">

displayAttributes = false;
displayMethods = false;

</script>

<g 
	onload="new PackageSymbol('org.apache.commons.cli2',440,510).insert(evt)" 
	transform="translate(10,10)"><g transform="translate(10,30)">
	
	<g transform="translate(  0, 30)" class="option"   onload="Option.insert(evt);" />
	<g transform="translate( 50,120)" class="group"    onload="Group.insert(evt);"/>
	<g transform="translate( 50,210)" class="parent"   onload="Parent.insert(evt);"/>
	<g transform="translate( 50,390)" class="argument" onload="Argument.insert(evt);"/>
	
	
	<g 
		onload="new PackageSymbol('option',180,470).insert(evt)" 
		transform="translate(240,0)"><g transform="translate(10,30)">
		
		<g transform="translate(0,  0)" class="option"   onload="PropertyOption.insert(evt);" />
		<g transform="translate(0, 90)" class="parent"   onload="DefaultOption.insert(evt);" />
		<g transform="translate(0,180)" class="parent"   onload="Command.insert(evt);" />
		<g transform="translate(0,270)" class="parent"   onload="Switch.insert(evt);" />
		<g transform="translate(0,360)" class="argument" onload="SourceDestArgument.insert(evt);" />
	</g></g>
</g></g>

<polyline class="implements" points="270,85 190,85 "/>

<polyline class="implements" points="270,175 250,175 250,265 240,265"/>
<polyline class="implements" points="270,265 250,265 250,265 240,265"/>
<polyline class="implements" points="270,355 250,355 250,265 240,265"/>

<polyline class="implements" points="270,445 240,445 "/>

<polyline class="extends" points="70,445 40,445 40,110"/>
<polyline class="extends" points="70,265 40,265 40,110"/>
<polyline class="extends" points="70,175 40,175 40,110"/>


</svg>