anchor.diff:      function autoDiffRange: Double;
       function BuildLegendJSON(aLegendFormat: TLegendFormat): string;
       function CreateUSLayer(aScenario: TScenario; const aTablePrefix: string; const aConnectString: string;
  -      const aDataEvent: array of TIMBEventEntry; aSourceProjection: TGIS_CSProjectedCoordinateSystem; const aDomain, aName: string): TUSLayer;
  +      const aDataEvent: array of TIMBEventEntry; aSourceProjection: TGIS_CSProjectedCoordinateSystem; const aDomain, aName: string): TLayerBase;
     end;
   
     TMetaLayer = TDictionary<Integer, TMetaLayerEntry>;
  
positive.code:     property DefTableName: string read fDefTableName;
      property DatTableName: string read fDatTableName;
      procedure SetEvent(aDataEvent: TIMBEventEntry);
    end;
  
    TUSLayer = class(TLayer)
  
negative.code:               Layers.Add(layer.ID, layer);
                Log.WriteLn(elementID+': added layer '+layer.ID+', '+layer.domain+'/'+layer.description, llNormal, 1);
                // schedule reading objects and send to tiler
                if layer is TUSLayer
                then AddCommandToQueue(oraSession, (layer as TUSLayer).ReadObjects)
                else if layer is TUSControlsLayer
                then AddCommandToQueue(oraSession, (layer as TUSControlsLayer).ReadObjects)
              end
              else Log.WriteLn(elementID+': skipped layer ('+mlp.Key.ToString+') type '+mlp.Value.LAYER_TYPE.ToString+' '+mlp.Value.LAYER_TABLE+'-'+mlp.Value.VALUE_EXPR, llRemark, 1);
            end;
  