# Tracing options for the org.eclipse.gmf.tooling.examples.affixednode.diagram plug-in

# Common issues
org.eclipse.gmf.tooling.examples.affixednode.diagram/debug=false

# Visual IDs
org.eclipse.gmf.tooling.examples.affixednode.diagram/debug/visualID=false
