penguin/AstroJS

Javascript framework for my blog

commit 7cdcd3b681e524cf46ba4a47a12c3629070c810c

author斟酌 鵬兄 <tgckpg@gmail.com>
date2026-06-13T23:28:00Z
subjectMigrate old externs 3/x
commit 7cdcd3b681e524cf46ba4a47a12c3629070c810c
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2026-06-13T23:28:00Z

    Migrate old externs 3/x
---
 botanjs/src/Astro/Blog/AstroEdit/Article.js        |   2 +-
 .../src/Astro/Blog/AstroEdit/SmartInput/_this.js   |   2 +-
 botanjs/src/Astro/Blog/AstroEdit/Uploader.js       |   2 +
 .../Blog/AstroEdit/Visualizer/Snippet/SiteFile.js  |   8 +-
 .../Blog/AstroEdit/Visualizer/Snippet/Sound.js     |   2 +-
 .../src/Astro/Blog/AstroEdit/Visualizer/_this.js   |  11 +-
 botanjs/src/Astro/utils/Date.js                    |   4 +-
 botanjs/src/Components/Mouse/Clipboard.js          |  13 +-
 botanjs/src/Components/Mouse/ContextMenu.js        |  10 +-
 botanjs/src/Components/Vim/Actions/INSERT.js       |   2 +-
 botanjs/src/Components/Vim/Actions/REPLACE.js      |   4 +-
 botanjs/src/Components/Vim/Actions/TO.js           |   2 +-
 botanjs/src/Components/Vim/Cursor.js               |   2 +-
 botanjs/src/Components/Vim/DateTime/_this.js       |   1 +
 botanjs/src/Components/Vim/Ex/Command.js           |   2 -
 botanjs/src/Components/Vim/_this.js                |   3 +-
 botanjs/src/_this.js                               | 220 +++++++++++++--------
 botanjs/src/externs/BotanEvent.js                  |  11 +-
 botanjs/src/externs/EventDispatcher.js             |   7 +-
 botanjs/src/externs/System.Debug.js                |   4 +-
 botanjs/src/externs/_AstConf_.SiteFile.js          |  48 ++---
 resolver-go/internal/generated/buildinfo_gen.go    |   2 +-
 resolver-go/internal/generated/classmap_gen.go     |  64 +++---
 23 files changed, 245 insertions(+), 181 deletions(-)

diff --git a/botanjs/src/Astro/Blog/AstroEdit/Article.js b/botanjs/src/Astro/Blog/AstroEdit/Article.js
index 440ab93..09c8fb6 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/Article.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/Article.js
@@ -82,6 +82,7 @@
 		var _content = "";
 
 		//// Classes & obj
+		var __statePusher;
 		var _visualizer = null;
 		var timestamp = new Date();
 
@@ -441,7 +442,6 @@
 
 		this.invoke = function (_class)
 		{
-			if ( _class instanceof Draft ) _ae_draft = _class;
 			if ( _class instanceof Visualizer )
 			{
 				_visualizer = _class;
diff --git a/botanjs/src/Astro/Blog/AstroEdit/SmartInput/_this.js b/botanjs/src/Astro/Blog/AstroEdit/SmartInput/_this.js
index 15eba49..1f410b7 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/SmartInput/_this.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/SmartInput/_this.js
@@ -131,7 +131,7 @@
 	};
 	// }}}
 
-	/** @param {Astro.Blog.AstroEdit.Visualizer} */
+	/** @param {Astro.Blog.AstroEdit.Visualizer} visualizer */
 	var SmartInput = function( visualizer )
 	{
 		this.Present = false;
diff --git a/botanjs/src/Astro/Blog/AstroEdit/Uploader.js b/botanjs/src/Astro/Blog/AstroEdit/Uploader.js
index c6bdbc4..97beb82 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/Uploader.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/Uploader.js
@@ -9,6 +9,8 @@
 	var EventKey                                = __import( "System.utils.EventKey" );
 	/** @type {Components.Mouse.ContextMenu} */
 	var ContextMenu                             = __import( "Components.Mouse.ContextMenu" );
+	/** @type {typeof Components.MessageBox} */
+	var MessageBox                              = __import( "Components.MessageBox" );
 	/** @type {typeof Dandelion} */
 	var Dand                                    = __import( "Dandelion" );
 	/** @type {Dandelion.IDOMObject} */
diff --git a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js
index 4fa26fc..5e6fadb 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js
@@ -145,10 +145,10 @@
 					);
 
 					// ad handlers to handles size change event
-					IDOMElement(s).addEventListener("Change", selectionChanged.bind({size: "small"}));
-					IDOMElement(m).addEventListener("Change", selectionChanged.bind({size: "medium"}));
-					IDOMElement(l).addEventListener("Change", selectionChanged.bind({size: "large"}));
-					IDOMElement(o).addEventListener("Change", selectionChanged.bind({size: "original"}));
+					IDOMElement(s).element.addEventListener("Change", selectionChanged.bind({size: "small"}));
+					IDOMElement(m).element.addEventListener("Change", selectionChanged.bind({size: "medium"}));
+					IDOMElement(l).element.addEventListener("Change", selectionChanged.bind({size: "large"}));
+					IDOMElement(o).element.addEventListener("Change", selectionChanged.bind({size: "original"}));
 
 					var hasValue = _stage.getDAttribute( "size" );
 					if( hasValue )
diff --git a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js
index cb680d4..432a0d6 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js
@@ -50,7 +50,7 @@
 			, "OK", "Cancel", visualizer.bind({url:input_url, albumArt:input_albumArt, lrc:input_lrc, stage: this._stage})).show();
 		}
 	
-		, visualizer = function (submitted)
+		, visualizer = function (submitted, override)
 		{
 			var src, albumArt , lrc, stage = this && this.stage;
 			
diff --git a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/_this.js b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/_this.js
index 79dd2ef..29bca68 100644
--- a/botanjs/src/Astro/Blog/AstroEdit/Visualizer/_this.js
+++ b/botanjs/src/Astro/Blog/AstroEdit/Visualizer/_this.js
@@ -64,11 +64,10 @@
 			article = e_document;
 			// Allow Html snippet
 		}
-		else if ( e_document instanceof CeDocument )
+		else
 		{
-			article = e_document;
+			return;
 		}
-		else return;
 
 		////// Variables
 		var contentDiv = Dand.wrap()
@@ -388,7 +387,7 @@
 				}
 
 				// Append module"s control
-				temp = Dand.wrapne( "span", mod_name, new IKey( "data-name", mod_name ) );
+				var temp = Dand.wrapne( "span", mod_name, new IKey( "data-name", mod_name ) );
 
 				snippetControls.appendChild( temp );
 				snippetControls.appendChild( Dand.textNode( "\t" ) );
@@ -431,7 +430,7 @@
 				return true;
 			};
 			
-			temp = IDOMElement( contentDiv );
+			var temp = IDOMElement( contentDiv );
 			temp.addEventListener( "Input", ensureGoodness );
 			temp.addEventListener( "KeyUp", ensureGoodness );
 			temp.addEventListener( "Click", ensureGoodness );
@@ -463,7 +462,7 @@
 			if ( lastOffset != raw.length )
 			{
 				// innerText does not work in firefox:(
-				temp = Dand.wrape( raw.substr( lastOffset, raw.length - lastOffset ) );
+				var temp = Dand.wrape( raw.substr( lastOffset, raw.length - lastOffset ) );
 				// innerHTML will escape html entities, now replace linebreaks to br
 				temp.innerHTML = temp.innerHTML.replace( /[\r\n]/g, "<br>" );
 				IDOMElement( contentDiv ).loot( temp );
diff --git a/botanjs/src/Astro/utils/Date.js b/botanjs/src/Astro/utils/Date.js
index 96a8d0c..2a032e4 100644
--- a/botanjs/src/Astro/utils/Date.js
+++ b/botanjs/src/Astro/utils/Date.js
@@ -27,7 +27,7 @@
 	// get responding chinese char from number
 	var cCountDay = function (num)
 	{
-		str = num.toString();
+		var str = num.toString();
 		if( num != 0 && num % 10 == 0 )
 		{
 			return ( num == 10 ? "" : String.fromCharCode( cChar[ str[0] ] ) )
@@ -98,7 +98,7 @@
 		var str = date.getFullYear().toString();
 		var datestmp = "";
 
-		for(i in str)
+		for(var i = 0, l = str.length; i < l; i ++)
 		{
 			datestmp += String.fromCharCode( cChar[ str[i] ] );
 		}
diff --git a/botanjs/src/Components/Mouse/Clipboard.js b/botanjs/src/Components/Mouse/Clipboard.js
index 7b8bfe8..0637774 100644
--- a/botanjs/src/Components/Mouse/Clipboard.js
+++ b/botanjs/src/Components/Mouse/Clipboard.js
@@ -61,15 +61,16 @@
 	{
 		cCallback = callback;
 
-		document.onmousemove = function (e)
+		document.onmousemove = function(e)
 		{
-			if( trigger() )
+			e = e || window.event;
+
+			if (trigger())
 			{
-				Global.IE && (event || (event = e));
-				stage.style.left = ( e.pageX - 10 ) + "px";
-				stage.style.top = ( e.pageY - 10 ) + "px";
+				stage.style.left = (e.pageX - 10) + "px";
+				stage.style.top = (e.pageY - 10) + "px";
 			}
-		}
+		};
 	};
 
 	var setTextToCopy = function( _text )
diff --git a/botanjs/src/Components/Mouse/ContextMenu.js b/botanjs/src/Components/Mouse/ContextMenu.js
index b290b1c..ca333a1 100644
--- a/botanjs/src/Components/Mouse/ContextMenu.js
+++ b/botanjs/src/Components/Mouse/ContextMenu.js
@@ -419,8 +419,8 @@
 
 	var bodyOnContext = function (event)
 	{
-		var i, j;
-		for (i in bodyClickPairs)
+		var j;
+		for (var i = 0, l = bodyClickPairs.length; i < l; i ++)
 		{
 			if ( Dand.id( ( j = bodyClickPairs[i] )._id ) )
 			{
@@ -444,8 +444,8 @@
 
 	var cleanUpActionList = function ()
 	{
-		var i, j;
-		for ( i in bodyClickPairs )
+		var j;
+		for (var i = 0, l = bodyClickPairs.length; i < l; i ++)
 		{
 			if ( !Dand.id( ( j = bodyClickPairs[i] )._id ) )
 			{
@@ -479,7 +479,7 @@
 
 	var tryGetAction = function (id)
 	{
-		for (i in bodyClickPairs)
+		for (var i = 0, l = bodyClickPairs.length; i < l; i ++)
 		{
 			if (bodyClickPairs[i]._id == id)
 			{
diff --git a/botanjs/src/Components/Vim/Actions/INSERT.js b/botanjs/src/Components/Vim/Actions/INSERT.js
index be97b56..76fef14 100644
--- a/botanjs/src/Components/Vim/Actions/INSERT.js
+++ b/botanjs/src/Components/Vim/Actions/INSERT.js
@@ -215,7 +215,7 @@
 
 		debug.Info( "Realize Indentation: " + ind );
 
-		l = ind[ IN_END ];
+		var l = ind[ IN_END ];
 		for( var i = ind[ IN_START ]; i < l; i ++ )
 		{
 			this.__rec( this.__cursor.feeder.content[ i ] );
diff --git a/botanjs/src/Components/Vim/Actions/REPLACE.js b/botanjs/src/Components/Vim/Actions/REPLACE.js
index 0161595..3c22a06 100644
--- a/botanjs/src/Components/Vim/Actions/REPLACE.js
+++ b/botanjs/src/Components/Vim/Actions/REPLACE.js
@@ -56,7 +56,7 @@
 					}
 					else
 					{
-						throw new Error( "Missing token impl: \"" + tok + "\"" );
+						throw new Error( "Missing token impl: \"" + j + "\"" );
 					}
 					break;
 
@@ -151,7 +151,7 @@
 
 		feeder.content = content;
 
-		this.__msg = Mesg( "REPLACE", numSubs, "<TODO>" );
+		this.__msg = Mesg( "REPLACED", numSubs, "<TODO>" );
 
 		// Record this step for UNDO / REDO
 		this.__rec();
diff --git a/botanjs/src/Components/Vim/Actions/TO.js b/botanjs/src/Components/Vim/Actions/TO.js
index 83daa03..35bee45 100644
--- a/botanjs/src/Components/Vim/Actions/TO.js
+++ b/botanjs/src/Components/Vim/Actions/TO.js
@@ -29,7 +29,7 @@
 		var n = cur.getLine().lineNum;
 
 		var p = 0;
-		for( i = 0; p != -1 && i < n; i ++ )
+		for( var i = 0; p != -1 && i < n; i ++ )
 		{
 			p = f.content.indexOf( "\n", p + 1 );
 		}
diff --git a/botanjs/src/Components/Vim/Cursor.js b/botanjs/src/Components/Vim/Cursor.js
index 65e4e46..e874768 100644
--- a/botanjs/src/Components/Vim/Cursor.js
+++ b/botanjs/src/Components/Vim/Cursor.js
@@ -709,7 +709,7 @@
 		if( 0 < n )
 		{
 			p = f.content.indexOf( "\n" );
-			for( i = 1; p != -1 && i < n; i ++ )
+			for( var i = 1; p != -1 && i < n; i ++ )
 			{
 				p = f.content.indexOf( "\n", p + 1 );
 			}
diff --git a/botanjs/src/Components/Vim/DateTime/_this.js b/botanjs/src/Components/Vim/DateTime/_this.js
index 1a9312c..7a8dd7f 100644
--- a/botanjs/src/Components/Vim/DateTime/_this.js
+++ b/botanjs/src/Components/Vim/DateTime/_this.js
@@ -147,6 +147,7 @@
 
 	var RelativeTime = function( given )
 	{
+		var result;
 		var diffSecs = Math.round( 0.001 * ( new Date().getTime() - given.getTime() ) );
 
 		if( Year < diffSecs )
diff --git a/botanjs/src/Components/Vim/Ex/Command.js b/botanjs/src/Components/Vim/Ex/Command.js
index 85df394..b8b9ea3 100644
--- a/botanjs/src/Components/Vim/Ex/Command.js
+++ b/botanjs/src/Components/Vim/Ex/Command.js
@@ -62,14 +62,12 @@
 			var comm = _self.__command;
 			var pos = _self.__curPos;
 			var cLen = comm.length;
-			var faced = true;
 
 			for( var i = 0; i < cLen; i ++ )
 			{
 				var v = comm[i];
 				if( __blink && i == pos )
 				{
-					face = true;
 					v = Cursor.face + v.substr( 1 );
 				}
 
diff --git a/botanjs/src/Components/Vim/_this.js b/botanjs/src/Components/Vim/_this.js
index afe9494..01f603f 100644
--- a/botanjs/src/Components/Vim/_this.js
+++ b/botanjs/src/Components/Vim/_this.js
@@ -11,7 +11,6 @@ var VIMRE_VERSION = "1.0.2";
 		, "REGISTERS": "--- Registers ---"
 		, "WRITE": "\"%1\" %2L, %3C written"
 		, "WAIT_FOR_INPUT": "Press ENTER or type command to continue"
-		, "SEARCH_HIT_BOTTOM": "Seach hit BOTTOM, contining at TOP"
 		, "TOP": "Top"
 		, "BOTTOM": "Bot"
 		, "ALL": "All"
@@ -30,7 +29,7 @@ var VIMRE_VERSION = "1.0.2";
 
 		, "SEARCH_HIT_BOTTOM": "search hit BOTTOM, continuing at TOP"
 		, "SEARCH_HIT_TOP": "search hit TOP, continuing at BOTTOM"
-		, "REPLACE": "%1 substitution(s) on %2 line(s)"
+		, "REPLACED": "%1 substitution(s) on %2 line(s)"
 
 		, "VA_REC_START": "Recording Session ..."
 		, "VA_REC_REPLAY": "Replaying Session ..."
diff --git a/botanjs/src/_this.js b/botanjs/src/_this.js
index d2fea28..e3413a4 100644
--- a/botanjs/src/_this.js
+++ b/botanjs/src/_this.js
@@ -26,9 +26,11 @@ var __const = __static_method;
 /* End Shorthand Functions }}}*/
 
 /*{{{ BotanEvent & EventDispatcher */
-/** @constructor */
-/** @this {BotanEvent} */
-var BotanEvent = function( name, data )
+
+/** @type {typeof BotanEvent} */
+var BotanEvent;
+
+BotanEvent = function( name, data )
 {
 	var __propagating = false;
 	var __propagated = false;
@@ -66,69 +68,155 @@ var BotanEvent = function( name, data )
 	}.bind( this );
 };
 
-
-/** type {typeof EventDispatcher} */
-var EventDispatcher;
-
-EventDispatcher = function() {
+/**
+ * @constructor
+ * @implements {EventTarget}
+ */
+var EventDispatcher = function() {
 	var events = {};
 	var _self = this;
 
-	var getStack = function( name )
+	var getStack = function(name)
 	{
-		if( !events[ name ] ) events[ name ] = [];
-		return events[ name ];
+		if (!events[name]) events[name] = [];
+		return events[name];
 	};
 
 	var _dispatch = function()
 	{
 		this.evt.propagate();
-		for( var i in this.stack )
+
+		for (var i in this.stack)
 		{
-			if( this.evt.propagating )
+			if (this.evt.propagating)
 			{
-				this.stack[ i ]( this.evt );
+				this.stack[i](this.evt);
 			}
 		}
+
 		this.evt.stopPropagating();
 	};
 
-	this.addEventListener = function( type, handler )
+	/**
+	 * @param {string} type
+	 * @param {function(!BotanEvent): void} handler
+	 * @return {void}
+	 */
+	this.addEventListener = function(type, handler)
 	{
-		var stack = getStack( type );
-		stack[ stack.length ] = handler;
+		var stack = getStack(type);
+		stack[stack.length] = handler;
 	};
 
-	this.removeEventListener = function( type, handler )
+	/**
+	 * @param {string} type
+	 * @param {function(!BotanEvent): void} handler
+	 * @return {void}
+	 */
+	this.removeEventListener = function(type, handler)
 	{
-		var stack = getStack( type );
-		var i = stack.indexOf( handler );
-		if( i < 0 ) return;
-		delete stack[ i ];
+		var stack = getStack(type);
+		var i = stack.indexOf(handler);
+		if (i < 0) return;
+		delete stack[i];
 	};
 
-	/** @type {Function}
-	 *  @param {BotanEvent} evt
+	/**
+	 * @param {!BotanEvent} _evt
+	 * @return {boolean}
 	 */
-	this.dispatchEvent = function( _evt )
+	this.dispatchEvent = function(_evt)
 	{
-		var _stack = getStack( _evt.type );
-		if( _evt.setTarget ) _evt.setTarget( _self );
-		// Dispatch the event asynchronously
-		setTimeout( _dispatch.bind({ evt: _evt, stack: _stack }), 0 );
+		var _stack = getStack(_evt.type);
+		if (_evt.setTarget) _evt.setTarget(_self);
+
+		setTimeout(_dispatch.bind({ evt: _evt, stack: _stack }), 0);
+		return true;
 	};
 };
 
 /* End BotanEvent & EventDispatcher }}}*/
 
-/** @type {Array}
- *  @extends {EventDispatcher}
+/**
+ * @constructor
+ * @extends {EventDispatcher}
+ * @param {!Object<string, *>} target
+ * @param {string} name
+ */
+var NamespaceObj = function(target, name)
+{
+	EventDispatcher.call(this);
+
+	/** @private {!Object<string, *>} */
+	this.t_ = target;
+
+	/** @private {string} */
+	this.n_ = name;
+};
+
+NamespaceObj.prototype = Object.create(EventDispatcher.prototype);
+NamespaceObj.prototype.constructor = NamespaceObj;
+
+/**
+ * @param {string} type
+ * @param {string} name
+ * @param {*} obj
+ * @return {void}
+ */
+NamespaceObj.prototype.exportSymbol = function(type, name, obj)
+{
+	if (this.t_[name]) return;
+
+	this.t_[name] = [type, obj];
+
+	var evt = new BotanEvent("NS_EXPORT", {
+		"name": this.n_ + "." + name,
+		"type": type
+	});
+
+	BotanJS.dispatchEvent(evt);
+};
+
+/**
+ * @param {string} target
+ * @return {*}
+ */
+NamespaceObj.prototype.invoke = function(target)
+{
+	if (!this.t_[target])
+	{
+		throw new Error(
+			"[" + this.n_ + "] "
+			+ "Invoke failed: " + target + " does not exists"
+		);
+	}
+
+	return this.t_[target][1];
+};
+
+/**
+ * @param {string} code
+ * @param {function(...?): *} func
+ * @return {void}
  */
-var NamespaceObj = function() {
-	EventDispatcher.call( this );
+NamespaceObj.prototype.trigger = function(code, func)
+{
+	this.t_.__TRIGGERS[code] = func;
 };
 
-NamespaceObj.prototype = new Array();
+/**
+ * @param {string} message
+ * @param {string=} subclass
+ * @return {void}
+ */
+NamespaceObj.prototype.throwError = function(message, subclass)
+{
+	subclass = subclass ? ("." + subclass) : "";
+
+	throw new Error(
+		"[" + this.n_ + subclass + "] " + message
+	);
+};
 
 var packages = {};
 var _global = {};
@@ -193,65 +281,33 @@ BotanJS = BotanJS || (function()
 /* End Root level bug-free handlers }}}*/
 
 /*{{{ Namespace declarator */
-__namespace = __namespace || function( ns )
+__namespace = __namespace || function(ns)
 {
-	if( _NSs[ ns ] ) return _NSs[ ns ];
+	if (_NSs[ns]) return _NSs[ns];
 
 	var p = ns.split(".");
 	var l = p.length;
 
 	var target = packages;
-	for( var i = 0; i < l; i ++ ) {
-		target[ p[i] ] = target[ p[i] ] || {};
-		target = target[ p[i] ];
-	}
-
-	target.__TRIGGERS = [];
-
-	var nsObj = new NamespaceObj;
-	nsObj[ NS_EXPORT ] = function( type, name, obj )
+	for (var i = 0; i < l; i++)
 	{
-		if( this.t[ name ] ) return;
-		this.t[ name ] = [ type, obj ];
-
-		/** @type {BotanEvent} */
-		var evt = new BotanEvent( "NS_EXPORT", {
-			"name": this.n + "." + name
-			, "type": type
-		});
+		target[p[i]] = target[p[i]] || {};
+		target = target[p[i]];
+	}
 
-		BotanJS.dispatchEvent( evt );
+	/** @type {!Object<string, function(...?): *>} */
+	target.__TRIGGERS = {};
 
-	}.bind({ t: target, n: ns });
+	var nsObj = new NamespaceObj(target, ns);
 
-	nsObj[ NS_INVOKE ] = function( target )
-	{
-		if( !this.t[ target ] )
-		{
-			throw new Error(
-				"[" + this.n + "] "
-				+ "Invoke failed: " + target + " does not exists"
-			);
-		}
+	BotanJS.dispatchEvent(new BotanEvent("NS_INIT", ns));
 
-		return this.t[ target ][1];
-	}.bind({ t: target, n: ns });
-
-	nsObj[ NS_TRIGGER ] = function( code, func )
-	{
-		this.__TRIGGERS[ code ] = func;
-	}.bind( target );
-
-	nsObj[ NS_THROW ] = function( message, subclass )
-	{
-		subclass = subclass ? ( "." + subclass ) : "";
-		throw new Error(
-			"[" + this.n + subclass + "] " + message
-		);
-	}.bind({ n: ns });
+	nsObj[NS_EXPORT] = nsObj.exportSymbol.bind(nsObj);
+	nsObj[NS_INVOKE] = nsObj.invoke.bind(nsObj);
+	nsObj[NS_TRIGGER] = nsObj.trigger.bind(nsObj);
+	nsObj[NS_THROW] = nsObj.throwError.bind(nsObj);
 
-	BotanJS.dispatchEvent( new BotanEvent( "NS_INIT", ns ) );
-	return ( _NSs[ ns ] = nsObj );
+	return (_NSs[ns] = nsObj);
 };
 /* End Namespace declarator }}}*/
 
@@ -261,7 +317,7 @@ __import = __import || function( ns, noCache )
 	var nss = ns.replace( ".*", "" );
 	if( _NSs[ nss ] )
 	{
-		_NSs[ nss ].dispatchEvent( new BotanEvent( "NS_IMPORT", target ) );
+		_NSs[ nss ].dispatchEvent( new BotanEvent( "NS_IMPORT", nss ) );
 	}
 
 	// Read The Cache First
diff --git a/botanjs/src/externs/BotanEvent.js b/botanjs/src/externs/BotanEvent.js
index 359660d..a7c486b 100644
--- a/botanjs/src/externs/BotanEvent.js
+++ b/botanjs/src/externs/BotanEvent.js
@@ -1,13 +1,16 @@
-/** @constructor */
-var BotanEvent = function (){};
+/** @constructor
+ * @param {string} name
+ * @param {*} data
+ **/
+var BotanEvent = function (name, data){};
 
 /** @type {*} */
 BotanEvent.data;
 
 /** @type {Function} */
-BotanEvent.propagate;
+BotanEvent.propagate = function() {};
 /** @type {Function} */
-BotanEvent.stopPropagating;
+BotanEvent.stopPropagating = function() {};
 
 /** @type {Boolean} */
 BotanEvent.propagating;
diff --git a/botanjs/src/externs/EventDispatcher.js b/botanjs/src/externs/EventDispatcher.js
index 47d11db..561a4d0 100644
--- a/botanjs/src/externs/EventDispatcher.js
+++ b/botanjs/src/externs/EventDispatcher.js
@@ -1,4 +1,5 @@
-/** @constructor
- *  @implements {EventTarget}
- **/
+/**
+ * @constructor
+ * @implements {EventTarget}
+ */
 var EventDispatcher = function() {};
diff --git a/botanjs/src/externs/System.Debug.js b/botanjs/src/externs/System.Debug.js
index da76ffb..212b7e7 100644
--- a/botanjs/src/externs/System.Debug.js
+++ b/botanjs/src/externs/System.Debug.js
@@ -2,7 +2,7 @@
 System.Debug = function (){}
 
 /** @type {Function} */
-System.Debug.Info;
+System.Debug.prototype.Info = function(){};
 
 /** @type {Function} */
-System.Debug.Error;
+System.Debug.prototype.Error = function(){};
diff --git a/botanjs/src/externs/_AstConf_.SiteFile.js b/botanjs/src/externs/_AstConf_.SiteFile.js
index 6b28484..330441b 100644
--- a/botanjs/src/externs/_AstConf_.SiteFile.js
+++ b/botanjs/src/externs/_AstConf_.SiteFile.js
@@ -1,23 +1,27 @@
-/** @type {Object} */
-_AstConf_.SiteFile = {};
-	/** @type {string} */
-	_AstConf_.SiteFile.f_host;
+/**
+ * @typedef {{
+ *   f_host: string,
+ *   path: !_AstConf_.SiteFile.Path,
+ *   files: !Array<*>
+ * }}
+ */
+_AstConf_.SiteFile;
 
-	/** @type {Object} */
-	_AstConf_.SiteFile.path;
-	/** @type {string} */
-		_AstConf_.SiteFile.path.download;
-		/** @type {string} */
-		_AstConf_.SiteFile.path.info;
-		/** @type {Object} */
-		_AstConf_.SiteFile.path.image;
-			/** @type {string} */
-			_AstConf_.SiteFile.path.image.small;
-			/** @type {string} */
-			_AstConf_.SiteFile.path.image.medium;
-			/** @type {string} */
-			_AstConf_.SiteFile.path.image.large;
-			/** @type {string} */
-			_AstConf_.SiteFile.path.image.original;
-	/** @type {Array} */
-	_AstConf_.SiteFile.files;
+/**
+ * @typedef {{
+ *   download: string,
+ *   info: string,
+ *   image: !_AstConf_.SiteFile.Path.Image
+ * }}
+ */
+_AstConf_.SiteFile.Path;
+
+/**
+ * @typedef {{
+ *   small: string,
+ *   medium: string,
+ *   large: string,
+ *   original: string
+ * }}
+ */
+_AstConf_.SiteFile.Path.Image;
diff --git a/resolver-go/internal/generated/buildinfo_gen.go b/resolver-go/internal/generated/buildinfo_gen.go
index 4aaa663..247a68d 100644
--- a/resolver-go/internal/generated/buildinfo_gen.go
+++ b/resolver-go/internal/generated/buildinfo_gen.go
@@ -2,5 +2,5 @@ package generated
 
 const (
 	IMAGE_TAG   = "dev"
-	Timestamp   = "20260613.215207"
+	Timestamp   = "20260613.232247"
 )
diff --git a/resolver-go/internal/generated/classmap_gen.go b/resolver-go/internal/generated/classmap_gen.go
index 9b5b2e6..4788230 100644
--- a/resolver-go/internal/generated/classmap_gen.go
+++ b/resolver-go/internal/generated/classmap_gen.go
@@ -8,18 +8,18 @@ var ClassMap = &classmap.Map{
 		"Astro":                                           {Name: "Astro", Kind: "class", Parent: "", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Astro.Blog":                                      {Name: "Astro.Blog", Kind: "class", Parent: "Astro", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Astro.Blog.AstroEdit":                            {Name: "Astro.Blog.AstroEdit", Kind: "class", Parent: "Astro.Blog", Imports: []string{"System.utils", "System.Cycle", "Dandelion", "Astro.Bootstrap", "Astro.Blog.Config", "Astro.Blog.AstroEdit.Article", "Astro.Blog.AstroEdit.Draft", "Astro.Blog.AstroEdit.Flag", "Astro.Blog.AstroEdit.Visualizer", "Astro.Blog.AstroEdit.Uploader", "Astro.Blog.AstroEdit.SiteLibrary", "Components.Vim.VimArea", "Astro.Blog.AstroEdit.SmartInput", "Astro.Blog.SharedStyle"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/_this.js", JSHash: "c21f6a1de562e3365d7874696d7e791074f935c1", CSSHash: "2d37776089eeac5d81981f100c1c029c9249e4a9"}},
-		"Astro.Blog.AstroEdit.Article":                    {Name: "Astro.Blog.AstroEdit.Article", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.utils", "System.utils.EventKey", "System.Debug", "Components.MessageBox", "Dandelion", "Dandelion.IDOMObject", "Dandelion.IDOMElement", "Astro.Blog.Config", "Astro.Blog.Components.Bubble", "System.Net.postData", "Astro.utils.Date.pretty", "Astro.Blog.AstroEdit.Visualizer", "Astro.Blog.AstroEdit.Flag", "Astro.Blog.AstroEdit.Draft"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Article.js", JSHash: "03b87f0125635b0cd7cb57c79ba4d3fd5de13e3e", CSSHash: "1"}},
+		"Astro.Blog.AstroEdit.Article":                    {Name: "Astro.Blog.AstroEdit.Article", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.utils", "System.utils.EventKey", "System.Debug", "Components.MessageBox", "Dandelion", "Dandelion.IDOMObject", "Dandelion.IDOMElement", "Astro.Blog.Config", "Astro.Blog.Components.Bubble", "System.Net.postData", "Astro.utils.Date.pretty", "Astro.Blog.AstroEdit.Visualizer", "Astro.Blog.AstroEdit.Flag", "Astro.Blog.AstroEdit.Draft"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Article.js", JSHash: "de5683e8ccc580958a5e8f66feacb58ca0fbd4f7", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.Draft":                      {Name: "Astro.Blog.AstroEdit.Draft", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.utils.IKey", "Dandelion", "System.Net.postData", "Astro.Blog.AstroEdit.Article"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Draft.js", JSHash: "f1d8d898abde5d705dec0c1fc759ee71d368d89a", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.Flag":                       {Name: "Astro.Blog.AstroEdit.Flag", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Debug", "Components.MessageBox", "Dandelion", "Dandelion.IDOMElement", "Astro.Blog.Config", "System.Net.postData"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Flag.js", JSHash: "365be7deb7a621cc7379d8c0d902a45ecceb9ee7", CSSHash: "2af9897e11ed5f3c3a750ce5488c9d91e46c6c58"}},
 		"Astro.Blog.AstroEdit.SiteLibrary":                {Name: "Astro.Blog.AstroEdit.SiteLibrary", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.Debug", "System.utils.Perf", "System.utils.IKey", "System.utils.DataKey", "System.utils.EventKey", "Components.MessageBox", "Components.Mouse.ContextMenu", "Dandelion", "Dandelion.IDOMObject", "Dandelion.IDOMElement", "Astro.Blog.Config", "System.Net.postData", "Astro.utils.Date.pretty"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SiteLibrary.js", JSHash: "06de454d725addb1640bd305b901d385798c3bea", CSSHash: "ef9290487558512fa1db9a4a20b91aa8421b4b26"}},
-		"Astro.Blog.AstroEdit.SmartInput":                 {Name: "Astro.Blog.AstroEdit.SmartInput", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"Dandelion", "Dandelion.IDOMElement", "Dandelion.IDOMObject", "System.Cycle", "System.Debug", "System.Net.ClassLoader", "System.utils", "System.utils.DataKey", "System.utils.IKey", "Components.MessageBox", "Astro.Blog.Config"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/_this.js", JSHash: "b4fcd09ffe90878bddee1309114d1e2ee55e36cb", CSSHash: "4cd01e0c87e41c384afe9d9d5fb9d545bd51bd38"}},
+		"Astro.Blog.AstroEdit.SmartInput":                 {Name: "Astro.Blog.AstroEdit.SmartInput", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"Dandelion", "Dandelion.IDOMElement", "Dandelion.IDOMObject", "System.Cycle", "System.Debug", "System.Net.ClassLoader", "System.utils", "System.utils.DataKey", "System.utils.IKey", "Components.MessageBox", "Astro.Blog.Config"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/_this.js", JSHash: "69d20f62e5f394c2d63537b201c54883d9d7d85f", CSSHash: "4cd01e0c87e41c384afe9d9d5fb9d545bd51bd38"}},
 		"Astro.Blog.AstroEdit.SmartInput.CandidateAction": {Name: "Astro.Blog.AstroEdit.SmartInput.CandidateAction", Kind: "class", Parent: "Astro.Blog.AstroEdit.SmartInput", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Astro.Blog.AstroEdit.SmartInput.CandidateAction.ArticleContent":   {Name: "Astro.Blog.AstroEdit.SmartInput.CandidateAction.ArticleContent", Kind: "class", Parent: "Astro.Blog.AstroEdit.SmartInput.CandidateAction", Imports: []string{"Astro.Blog.Config", "System.Net.getData", "Astro.utils.Date.pretty"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/ArticleReference.js", JSHash: "2e66502daabb251f22f83535899c3c282f32a2c0", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.SmartInput.CandidateAction.ArticleReference": {Name: "Astro.Blog.AstroEdit.SmartInput.CandidateAction.ArticleReference", Kind: "class", Parent: "Astro.Blog.AstroEdit.SmartInput.CandidateAction", Imports: []string{"Astro.Blog.Config", "System.Net.getData", "Astro.utils.Date.pretty"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/ArticleReference.js", JSHash: "2e66502daabb251f22f83535899c3c282f32a2c0", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.SmartInput.CandidateAction.Footnote":         {Name: "Astro.Blog.AstroEdit.SmartInput.CandidateAction.Footnote", Kind: "class", Parent: "Astro.Blog.AstroEdit.SmartInput.CandidateAction", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/Footnote.js", JSHash: "e308b387915865640c00c1c172c20482adaa1e46", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.SmartInput.CandidateAction.Heading":          {Name: "Astro.Blog.AstroEdit.SmartInput.CandidateAction.Heading", Kind: "class", Parent: "Astro.Blog.AstroEdit.SmartInput.CandidateAction", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/Heading.js", JSHash: "65e852a90c2dddce5931f45f841ec932e3b35e59", CSSHash: "1"}},
-		"Astro.Blog.AstroEdit.Uploader":                                    {Name: "Astro.Blog.AstroEdit.Uploader", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.Debug", "System.utils.EventKey", "Components.Mouse.ContextMenu", "Dandelion", "Dandelion.IDOMObject", "Astro.Blog.Config", "System.utils.Perf", "System.Net.postFile"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Uploader.js", JSHash: "bb696230f4ae9785fc482b761f97afd88a1fe993", CSSHash: "1"}},
-		"Astro.Blog.AstroEdit.Visualizer":                                  {Name: "Astro.Blog.AstroEdit.Visualizer", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"Dandelion", "Dandelion.IDOMElement", "System.Debug", "System.utils", "System.utils.Perf", "System.utils.DataKey", "System.utils.EventKey", "System.utils.IKey", "System.Net.ClassLoader", "Components.MessageBox", "Components.Mouse.ContextMenu", "Astro.Blog.Config", "Astro.Blog.AstroEdit.Article"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/_this.js", JSHash: "0ccfbd84763e894cd713f3a89eaa053ba5477d7c", CSSHash: "d43e2d27e52788d755c96f0db4ac500aa38ca2ee"}},
+		"Astro.Blog.AstroEdit.Uploader":                                    {Name: "Astro.Blog.AstroEdit.Uploader", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"System.Cycle", "System.Debug", "System.utils.EventKey", "Components.Mouse.ContextMenu", "Components.MessageBox", "Dandelion", "Dandelion.IDOMObject", "Astro.Blog.Config", "System.utils.Perf", "System.Net.postFile"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Uploader.js", JSHash: "7205f45c289ec5a9b39cf06c3c42f31d1286cba9", CSSHash: "1"}},
+		"Astro.Blog.AstroEdit.Visualizer":                                  {Name: "Astro.Blog.AstroEdit.Visualizer", Kind: "class", Parent: "Astro.Blog.AstroEdit", Imports: []string{"Dandelion", "Dandelion.IDOMElement", "System.Debug", "System.utils", "System.utils.Perf", "System.utils.DataKey", "System.utils.EventKey", "System.utils.IKey", "System.Net.ClassLoader", "Components.MessageBox", "Components.Mouse.ContextMenu", "Astro.Blog.Config", "Astro.Blog.AstroEdit.Article"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/_this.js", JSHash: "6b3cece4cedda7322cfe385fe81f956bc59c01c6", CSSHash: "d43e2d27e52788d755c96f0db4ac500aa38ca2ee"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet":                          {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/_this.js", JSHash: "38f5d8512eabf1ffb4249b1414efd2362af8dc5c", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.AcquireLib":               {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.AcquireLib", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/AcquireLib.js", JSHash: "7af9a09fbf17d439fb810b3485609c4bbd816729", CSSHash: "e3860ca0ac69a86e948b811da1ebf6ba85fad57f"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.ArticleContent":           {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.ArticleContent", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.Config", "System.utils.Perf", "Astro.utils.Date", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.unescapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp", "System.Net.postData"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/ArticleContent.js", JSHash: "83817c1b1e8c73a598e1c090d3dae8fb341bcebe", CSSHash: "e1cfcf676ebfc3a9ab80139ab2f7e63a2a1b286f"}},
@@ -32,8 +32,8 @@ var ClassMap = &classmap.Map{
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.Link":                     {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Link", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.unescapeStr"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Link.js", JSHash: "6e91d7044352f8ecc1d637c0047d1a55300120bf", CSSHash: "963bca1730a62b372e667b0a3f888aeef5504968"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.Meta":                     {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Meta", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.unescapeStr"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Meta.js", JSHash: "4cb72d4d4b6124a6b2c8818d0a9d320b921ac9b2", CSSHash: "43e6cf20a8590ff0a820fed9ae53399edfb53ac4"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.RespH":                    {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.RespH", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.unescapeStr"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/RespH.js", JSHash: "fdd92845b8ab0c957c7d5b695743ddaa785ad75f", CSSHash: "60ee66e1f25468b808af731338d2f10c9e74d8fe"}},
-		"Astro.Blog.AstroEdit.Visualizer.Snippet.SiteFile":                 {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.SiteFile", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.Config", "System.utils.Perf", "System.Cycle.Trigger", "Astro.utils.Date", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp", "System.Net.getData"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js", JSHash: "36f042d8e7efb1a1b2022245f94e6c1d2ec2b538", CSSHash: "47a59715388ff5f8abe4eb4e7e6000bf92de77b2"}},
-		"Astro.Blog.AstroEdit.Visualizer.Snippet.Sound":                    {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Sound", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js", JSHash: "eeff3f7e761a8304ff114b9180ba523e1ef1c4b4", CSSHash: "1"}},
+		"Astro.Blog.AstroEdit.Visualizer.Snippet.SiteFile":                 {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.SiteFile", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.Config", "System.utils.Perf", "System.Cycle.Trigger", "Astro.utils.Date", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp", "System.Net.getData"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js", JSHash: "b98885eb6a931af19b27c5b59c2749b050af768b", CSSHash: "47a59715388ff5f8abe4eb4e7e6000bf92de77b2"}},
+		"Astro.Blog.AstroEdit.Visualizer.Snippet.Sound":                    {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Sound", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js", JSHash: "2c5f32fe1ed50595503978dde85843ca48e55989", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.Spoiler":                  {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Spoiler", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp", "Astro.Blog.AstroEdit.Visualizer.Snippet.escapeStr", "Astro.Blog.AstroEdit.Visualizer.Snippet.unescapeStr"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Spoiler.js", JSHash: "b3a483cc50f0e63c07ae64b52652f07159cdd877", CSSHash: "1"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.Video":                    {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.Video", Kind: "class", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string{"System.utils.IKey", "System.utils.DataKey", "Dandelion.IDOMElement", "Dandelion", "Components.MessageBox", "System.Net.getData", "Dandelion.StaticRes.BLANK_IMG"}, Resource: classmap.Resource{Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Video.js", JSHash: "d6f641a25d4350b98dad2bbeeec5dedfd1c6d532", CSSHash: "ff1d4ae903c244a6aeaf78b12c375f1f45dfb3c2"}},
 		"Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp":              {Name: "Astro.Blog.AstroEdit.Visualizer.Snippet.compileProp", Kind: "method", Parent: "Astro.Blog.AstroEdit.Visualizer.Snippet", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
@@ -105,7 +105,7 @@ var ClassMap = &classmap.Map{
 		"Astro.Starfall.Layout.PureColumn":                                 {Name: "Astro.Starfall.Layout.PureColumn", Kind: "class", Parent: "Astro.Starfall.Layout", Imports: []string{"Astro.Bootstrap", "System.Cycle", "Astro.Blog.Config", "System.Debug"}, Resource: classmap.Resource{Src: "Astro/Starfall/Layout/PureColumn.js", JSHash: "5164bbe0019969bf85c649a6991ccd3b8c780b3a", CSSHash: "d1920d1be9f9d9bbfdfdbb16565454c58ed6c78c"}},
 		"Astro.Starfall.Layout.TwoColumn":                                  {Name: "Astro.Starfall.Layout.TwoColumn", Kind: "class", Parent: "Astro.Starfall.Layout", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/Starfall/Layout/TwoColumn.js", JSHash: "e55bedfac6ff774f7bbf46b69b1b537b28f8e993", CSSHash: "cf05ec131d63e657f0eba0183c8055d0101bcf08"}},
 		"Astro.utils":                                                      {Name: "Astro.utils", Kind: "class", Parent: "Astro", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/utils/_this.js", JSHash: "21e99449ec5c1a4b6d25164db9434132aeea5ad3", CSSHash: "1"}},
-		"Astro.utils.Date":                                                 {Name: "Astro.utils.Date", Kind: "class", Parent: "Astro.utils", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/utils/Date.js", JSHash: "45221fe447d15fd943310fe9d3d3308f884b6aec", CSSHash: "1"}},
+		"Astro.utils.Date":                                                 {Name: "Astro.utils.Date", Kind: "class", Parent: "Astro.utils", Imports: []string(nil), Resource: classmap.Resource{Src: "Astro/utils/Date.js", JSHash: "fe9bc7b983ecfb70f4312c0ce2c74b5e7bf50dc2", CSSHash: "1"}},
 		"Astro.utils.Date.CAP_MONTHS":                                      {Name: "Astro.utils.Date.CAP_MONTHS", Kind: "prop", Parent: "Astro.utils.Date", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Astro.utils.Date.DAY":                                             {Name: "Astro.utils.Date.DAY", Kind: "prop", Parent: "Astro.utils.Date", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Astro.utils.Date.DAY_ABBR":                                        {Name: "Astro.utils.Date.DAY_ABBR", Kind: "prop", Parent: "Astro.utils.Date", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
@@ -121,21 +121,21 @@ var ClassMap = &classmap.Map{
 		"Components.DockPanel":                                             {Name: "Components.DockPanel", Kind: "class", Parent: "Components", Imports: []string{"System.Cycle", "System.utils.DataKey", "Dandelion", "Dandelion.IDOMElement"}, Resource: classmap.Resource{Src: "Components/DockPanel.js", JSHash: "d9f9c996536ac6b5d6f5f7262b7889468a36b13b", CSSHash: "af0d91982c764ee62c46b243be68c08f2808e82b"}},
 		"Components.MessageBox":                                            {Name: "Components.MessageBox", Kind: "class", Parent: "Components", Imports: []string{"System.Cycle.Trigger", "Dandelion", "Dandelion.IDOMObject", "System.utils.EventKey", "Dandelion.CSSAnimations"}, Resource: classmap.Resource{Src: "Components/MessageBox.js", JSHash: "63c831ec6493912492780009a76997d7bc59cad4", CSSHash: "5571fa4c2e1324dcf1f2e18df8b6105cf37dfc53"}},
 		"Components.Mouse":                                                 {Name: "Components.Mouse", Kind: "class", Parent: "Components", Imports: []string(nil), Resource: classmap.Resource{Src: "Components/Mouse/_this.js", JSHash: "9ec5ced53a20ea1d057e2142668e27e5df7d49f6", CSSHash: "1"}},
-		"Components.Mouse.Clipboard":                                       {Name: "Components.Mouse.Clipboard", Kind: "class", Parent: "Components.Mouse", Imports: []string{"System.Global", "System.Debug", "System.utils.Perf", "System.Cycle", "Dandelion.IDOMElement", "Dandelion"}, Resource: classmap.Resource{Src: "Components/Mouse/Clipboard.js", JSHash: "742b2522cd0d5dad897d5c3afa2d568494661912", CSSHash: "1b7f85206ce1560ed23d3b270e093022e25d2e61"}},
+		"Components.Mouse.Clipboard":                                       {Name: "Components.Mouse.Clipboard", Kind: "class", Parent: "Components.Mouse", Imports: []string{"System.Global", "System.Debug", "System.utils.Perf", "System.Cycle", "Dandelion.IDOMElement", "Dandelion"}, Resource: classmap.Resource{Src: "Components/Mouse/Clipboard.js", JSHash: "32de0da9ec7e9a4c4e28267a5f60bb815b5af92d", CSSHash: "1b7f85206ce1560ed23d3b270e093022e25d2e61"}},
 		"Components.Mouse.Clipboard.capture":                               {Name: "Components.Mouse.Clipboard.capture", Kind: "method", Parent: "Components.Mouse.Clipboard", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Mouse.Clipboard.init":                                  {Name: "Components.Mouse.Clipboard.init", Kind: "method", Parent: "Components.Mouse.Clipboard", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Mouse.Clipboard.onMouseOut":                            {Name: "Components.Mouse.Clipboard.onMouseOut", Kind: "prop", Parent: "Components.Mouse.Clipboard", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Mouse.Clipboard.onMouseOver":                           {Name: "Components.Mouse.Clipboard.onMouseOver", Kind: "prop", Parent: "Components.Mouse.Clipboard", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Mouse.Clipboard.setTextToCopy":                         {Name: "Components.Mouse.Clipboard.setTextToCopy", Kind: "method", Parent: "Components.Mouse.Clipboard", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
-		"Components.Mouse.ContextMenu":                                     {Name: "Components.Mouse.ContextMenu", Kind: "class", Parent: "Components.Mouse", Imports: []string{"System.utils", "System.utils.IKey", "System.utils.DataKey", "System.utils.EventKey", "System.Cycle", "Dandelion", "Dandelion.IDOMElement", "Components.Mouse.Clipboard"}, Resource: classmap.Resource{Src: "Components/Mouse/ContextMenu.js", JSHash: "9e9863a463cb3b8b4d71f13bf364a09c1eb2c3c8", CSSHash: "d5a5f1a4a0db9a440b9a070f9879beaddffbd99a"}},
-		"Components.Vim":                                                   {Name: "Components.Vim", Kind: "class", Parent: "Components", Imports: []string(nil), Resource: classmap.Resource{Src: "Components/Vim/_this.js", JSHash: "2abd3bc287e8b8b0b5966457835dcb4bde6174df", CSSHash: "7949b25860fcef736927c01502aad09b56d764b2"}},
+		"Components.Mouse.ContextMenu":                                     {Name: "Components.Mouse.ContextMenu", Kind: "class", Parent: "Components.Mouse", Imports: []string{"System.utils", "System.utils.IKey", "System.utils.DataKey", "System.utils.EventKey", "System.Cycle", "Dandelion", "Dandelion.IDOMElement", "Components.Mouse.Clipboard"}, Resource: classmap.Resource{Src: "Components/Mouse/ContextMenu.js", JSHash: "254b6ff586e11834d28be96a1e2526fe6ef8e8ad", CSSHash: "d5a5f1a4a0db9a440b9a070f9879beaddffbd99a"}},
+		"Components.Vim":                                                   {Name: "Components.Vim", Kind: "class", Parent: "Components", Imports: []string(nil), Resource: classmap.Resource{Src: "Components/Vim/_this.js", JSHash: "f385a56129d2c933fd848501bbf3a5183a2dd3a8", CSSHash: "7949b25860fcef736927c01502aad09b56d764b2"}},
 		"Components.Vim.ActionEvent":                                       {Name: "Components.Vim.ActionEvent", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "Components.Vim.Ex.Command", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Controls.js", JSHash: "d820f2b288a11adfd43eed1186f702013530606f", CSSHash: "1"}},
 		"Components.Vim.Actions":                                           {Name: "Components.Vim.Actions", Kind: "class", Parent: "Components.Vim", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Vim.Actions.BUFFERS":                                   {Name: "Components.Vim.Actions.BUFFERS", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Dandelion", "Components.Vim.Message", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/BUFFERS.js", JSHash: "4142782274b232ea8a80ddeb7fbffbd8b97ba1d2", CSSHash: "1"}},
 		"Components.Vim.Actions.DELETE":                                    {Name: "Components.Vim.Actions.DELETE", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.State.Stator", "Components.Vim.State.Stack", "Components.Vim.Message", "Components.Vim.Beep", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/DELETE.js", JSHash: "12223cd3496265f907c83a6f42bab6eebb174983", CSSHash: "1"}},
 		"Components.Vim.Actions.EDITOR_COMMAND":                            {Name: "Components.Vim.Actions.EDITOR_COMMAND", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/EDITOR_COMMAND.js", JSHash: "38f9bd4f5c880fc172b8f50aae38ebb9d189bfe8", CSSHash: "1"}},
 		"Components.Vim.Actions.FIND":                                      {Name: "Components.Vim.Actions.FIND", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/FIND.js", JSHash: "e408e00eb64bf4daffb39973b41141458966d18f", CSSHash: "1"}},
-		"Components.Vim.Actions.INSERT":                                    {Name: "Components.Vim.Actions.INSERT", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"Components.Vim.State.Stack", "Components.Vim.State.Stator", "System.Debug", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/INSERT.js", JSHash: "cb9d322d663840c1e991559127b5b8ad7b7273f0", CSSHash: "1"}},
+		"Components.Vim.Actions.INSERT":                                    {Name: "Components.Vim.Actions.INSERT", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"Components.Vim.State.Stack", "Components.Vim.State.Stator", "System.Debug", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/INSERT.js", JSHash: "9acbc4ec8c6f7f5cd66520455fcc061d0547bb62", CSSHash: "1"}},
 		"Components.Vim.Actions.JOIN_LINES":                                {Name: "Components.Vim.Actions.JOIN_LINES", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.State.Stator", "Components.Vim.State.Stack", "Components.Vim.Beep", "Components.Vim.Message", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/JOIN_LINES.js", JSHash: "2c0bafefa8edb662e5003780b4ae8a6b8488a317", CSSHash: "1"}},
 		"Components.Vim.Actions.MARK":                                      {Name: "Components.Vim.Actions.MARK", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/MARK.js", JSHash: "4e959247d49f84b20f96c8a186492c93d1ff5960", CSSHash: "1"}},
 		"Components.Vim.Actions.MARKS":                                     {Name: "Components.Vim.Actions.MARKS", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error", "Components.Vim.Message", "Components.Vim.State.Marks"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/MARKS.js", JSHash: "06699d99178aef5758d7cd7ca46d3b7806ed7621", CSSHash: "1"}},
@@ -145,9 +145,9 @@ var ClassMap = &classmap.Map{
 		"Components.Vim.Actions.QUIT":                                      {Name: "Components.Vim.Actions.QUIT", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/QUIT.js", JSHash: "eeb7923e9b8a06ddea2c2d0fff76edb75d04121e", CSSHash: "1"}},
 		"Components.Vim.Actions.REDO":                                      {Name: "Components.Vim.Actions.REDO", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/REDO.js", JSHash: "a2895a9628f9a075f350fcb0583042f64518ce3d", CSSHash: "1"}},
 		"Components.Vim.Actions.REGISTERS":                                 {Name: "Components.Vim.Actions.REGISTERS", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/REGISTERS.js", JSHash: "ddaa381db6d77db810a21a35e05f2008034e43ef", CSSHash: "1"}},
-		"Components.Vim.Actions.REPLACE":                                   {Name: "Components.Vim.Actions.REPLACE", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.State.Stack", "Components.Vim.Error", "Components.Vim.Message", "System.utils.Perf.CountSubstr", "Components.Vim.Actions.FIND"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/REPLACE.js", JSHash: "7d7b173c63c2252eae700be2021a11470b08276c", CSSHash: "1"}},
+		"Components.Vim.Actions.REPLACE":                                   {Name: "Components.Vim.Actions.REPLACE", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.State.Stack", "Components.Vim.Error", "Components.Vim.Message", "System.utils.Perf.CountSubstr", "Components.Vim.Actions.FIND"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/REPLACE.js", JSHash: "91b16f71085d4fa9f98081971f103a63509cc492", CSSHash: "1"}},
 		"Components.Vim.Actions.SHIFT_LINES":                               {Name: "Components.Vim.Actions.SHIFT_LINES", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Beep", "Components.Vim.State.Stator", "Components.Vim.State.Stack", "Components.Vim.Error", "Components.Vim.Message", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/SHIFT_LINES.js", JSHash: "d85ff4738e31e1a8a8acdaf5f00bb5d654290b14", CSSHash: "1"}},
-		"Components.Vim.Actions.TO":                                        {Name: "Components.Vim.Actions.TO", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/TO.js", JSHash: "78a814b3fb5c9feff473a265e7253d699f484871", CSSHash: "1"}},
+		"Components.Vim.Actions.TO":                                        {Name: "Components.Vim.Actions.TO", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/TO.js", JSHash: "50d87381bc34dfefb4dcbd7dce33cdd9ed67dc55", CSSHash: "1"}},
 		"Components.Vim.Actions.UNDO":                                      {Name: "Components.Vim.Actions.UNDO", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/UNDO.js", JSHash: "bb3f119407547329da561213cca7445b63e30d3c", CSSHash: "1"}},
 		"Components.Vim.Actions.VA_REC":                                    {Name: "Components.Vim.Actions.VA_REC", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "System.utils.EventKey", "Components.Vim.ActionEvent", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/VA_REC.js", JSHash: "8904fe42c7211334b063c6d89d0b3deb0ffd3633", CSSHash: "1"}},
 		"Components.Vim.Actions.VERSION":                                   {Name: "Components.Vim.Actions.VERSION", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Error", "Components.Vim.Message"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/VERSION.js", JSHash: "1aae87bf77f87a6202733ef515e927d788cd3bc5", CSSHash: "1"}},
@@ -157,13 +157,13 @@ var ClassMap = &classmap.Map{
 		"Components.Vim.Actions.YANK":                                      {Name: "Components.Vim.Actions.YANK", Kind: "class", Parent: "Components.Vim.Actions", Imports: []string{"System.Debug", "Components.Vim.Message", "Components.Vim.Beep", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Actions/YANK.js", JSHash: "4c428bea3ce9c15b94f294b1d4cd17ee4cde8824", CSSHash: "1"}},
 		"Components.Vim.Beep":                                              {Name: "Components.Vim.Beep", Kind: "method", Parent: "Components.Vim", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Vim.Controls":                                          {Name: "Components.Vim.Controls", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "Components.Vim.Ex.Command", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Controls.js", JSHash: "d820f2b288a11adfd43eed1186f702013530606f", CSSHash: "1"}},
-		"Components.Vim.Cursor":                                            {Name: "Components.Vim.Cursor", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "Components.Vim.State.Recorder", "Components.Vim.Actions.*", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Cursor.js", JSHash: "499fe9a53c9de02138c3440b0433227b00846259", CSSHash: "1"}},
-		"Components.Vim.DateTime":                                          {Name: "Components.Vim.DateTime", Kind: "class", Parent: "Components.Vim", Imports: []string{"Components.Vim.DateTime.String"}, Resource: classmap.Resource{Src: "Components/Vim/DateTime/_this.js", JSHash: "420103edb4f3df39be9eceabd4b88919b5cf7cc7", CSSHash: "1"}},
+		"Components.Vim.Cursor":                                            {Name: "Components.Vim.Cursor", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "Components.Vim.State.Recorder", "Components.Vim.Actions.*", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/Cursor.js", JSHash: "80f768f49924d50dd6a3e77e15b447aea51ea21c", CSSHash: "1"}},
+		"Components.Vim.DateTime":                                          {Name: "Components.Vim.DateTime", Kind: "class", Parent: "Components.Vim", Imports: []string{"Components.Vim.DateTime.String"}, Resource: classmap.Resource{Src: "Components/Vim/DateTime/_this.js", JSHash: "6f1078fe85d74ec1771b7eb491809c665679b907", CSSHash: "1"}},
 		"Components.Vim.DateTime.RelativeTime":                             {Name: "Components.Vim.DateTime.RelativeTime", Kind: "method", Parent: "Components.Vim.DateTime", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Vim.DateTime.String":                                   {Name: "Components.Vim.DateTime.String", Kind: "method", Parent: "Components.Vim.DateTime", Imports: []string(nil), Resource: classmap.Resource{Src: "Components/Vim/DateTime/String.js", JSHash: "07b11e176cccc423e75d8fe66302f8cb8b009418", CSSHash: "1"}},
 		"Components.Vim.Error":                                             {Name: "Components.Vim.Error", Kind: "method", Parent: "Components.Vim", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 		"Components.Vim.Ex":                                                {Name: "Components.Vim.Ex", Kind: "class", Parent: "Components.Vim", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
-		"Components.Vim.Ex.Command":                                        {Name: "Components.Vim.Ex.Command", Kind: "class", Parent: "Components.Vim.Ex", Imports: []string{"System.Cycle", "System.Debug", "System.utils.Perf", "Components.Vim.State.History", "Components.Vim.Message", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Ex/Command.js", JSHash: "04ab6686c5f5543463c1b9668a0832cbe7b08771", CSSHash: "1"}},
+		"Components.Vim.Ex.Command":                                        {Name: "Components.Vim.Ex.Command", Kind: "class", Parent: "Components.Vim.Ex", Imports: []string{"System.Cycle", "System.Debug", "System.utils.Perf", "Components.Vim.State.History", "Components.Vim.Message", "Components.Vim.Beep"}, Resource: classmap.Resource{Src: "Components/Vim/Ex/Command.js", JSHash: "c1a2afdb0cd600edbe79d0465a12ca7896aca68b", CSSHash: "1"}},
 		"Components.Vim.LineBuffer":                                        {Name: "Components.Vim.LineBuffer", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/LineBuffer.js", JSHash: "d7815c5c0a40eda137ebb9559481b265e3f4c7be", CSSHash: "1"}},
 		"Components.Vim.LineFeeder":                                        {Name: "Components.Vim.LineFeeder", Kind: "class", Parent: "Components.Vim", Imports: []string{"System.Debug", "Components.Vim.LineBuffer", "Components.Vim.Cursor", "System.utils.Perf.CountSubstr"}, Resource: classmap.Resource{Src: "Components/Vim/LineFeeder.js", JSHash: "7876d69d13a93fe96a04ca5c5b17496b1d542d86", CSSHash: "1"}},
 		"Components.Vim.Message":                                           {Name: "Components.Vim.Message", Kind: "method", Parent: "Components.Vim", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
@@ -315,15 +315,15 @@ var ClassMap = &classmap.Map{
 		"System.utils.siteProto":                                           {Name: "System.utils.siteProto", Kind: "method", Parent: "System.utils", Imports: []string(nil), Resource: classmap.Resource{Src: "", JSHash: "", CSSHash: ""}},
 	},
 	Files: map[string]classmap.Resource{
-		"Astro/Blog/AstroEdit/Article.js":                                     {Src: "Astro/Blog/AstroEdit/Article.js", JSHash: "03b87f0125635b0cd7cb57c79ba4d3fd5de13e3e", CSSHash: "1"},
+		"Astro/Blog/AstroEdit/Article.js":                                     {Src: "Astro/Blog/AstroEdit/Article.js", JSHash: "de5683e8ccc580958a5e8f66feacb58ca0fbd4f7", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/Draft.js":                                       {Src: "Astro/Blog/AstroEdit/Draft.js", JSHash: "f1d8d898abde5d705dec0c1fc759ee71d368d89a", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/Flag.js":                                        {Src: "Astro/Blog/AstroEdit/Flag.js", JSHash: "365be7deb7a621cc7379d8c0d902a45ecceb9ee7", CSSHash: "2af9897e11ed5f3c3a750ce5488c9d91e46c6c58"},
 		"Astro/Blog/AstroEdit/SiteLibrary.js":                                 {Src: "Astro/Blog/AstroEdit/SiteLibrary.js", JSHash: "06de454d725addb1640bd305b901d385798c3bea", CSSHash: "ef9290487558512fa1db9a4a20b91aa8421b4b26"},
 		"Astro/Blog/AstroEdit/SmartInput/CandidateAction/ArticleReference.js": {Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/ArticleReference.js", JSHash: "2e66502daabb251f22f83535899c3c282f32a2c0", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/SmartInput/CandidateAction/Footnote.js":         {Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/Footnote.js", JSHash: "e308b387915865640c00c1c172c20482adaa1e46", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/SmartInput/CandidateAction/Heading.js":          {Src: "Astro/Blog/AstroEdit/SmartInput/CandidateAction/Heading.js", JSHash: "65e852a90c2dddce5931f45f841ec932e3b35e59", CSSHash: "1"},
-		"Astro/Blog/AstroEdit/SmartInput/_this.js":                            {Src: "Astro/Blog/AstroEdit/SmartInput/_this.js", JSHash: "b4fcd09ffe90878bddee1309114d1e2ee55e36cb", CSSHash: "4cd01e0c87e41c384afe9d9d5fb9d545bd51bd38"},
-		"Astro/Blog/AstroEdit/Uploader.js":                                    {Src: "Astro/Blog/AstroEdit/Uploader.js", JSHash: "bb696230f4ae9785fc482b761f97afd88a1fe993", CSSHash: "1"},
+		"Astro/Blog/AstroEdit/SmartInput/_this.js":                            {Src: "Astro/Blog/AstroEdit/SmartInput/_this.js", JSHash: "69d20f62e5f394c2d63537b201c54883d9d7d85f", CSSHash: "4cd01e0c87e41c384afe9d9d5fb9d545bd51bd38"},
+		"Astro/Blog/AstroEdit/Uploader.js":                                    {Src: "Astro/Blog/AstroEdit/Uploader.js", JSHash: "7205f45c289ec5a9b39cf06c3c42f31d1286cba9", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/AcquireLib.js":               {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/AcquireLib.js", JSHash: "7af9a09fbf17d439fb810b3485609c4bbd816729", CSSHash: "e3860ca0ac69a86e948b811da1ebf6ba85fad57f"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/ArticleContent.js":           {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/ArticleContent.js", JSHash: "83817c1b1e8c73a598e1c090d3dae8fb341bcebe", CSSHash: "e1cfcf676ebfc3a9ab80139ab2f7e63a2a1b286f"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/ArticleLink.js":              {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/ArticleLink.js", JSHash: "7c6ecca0ad47a0eb6afc625245c6b130ff5716ba", CSSHash: "2d71bce1fa868564d9dac50db338ef7eeed16fd9"},
@@ -335,12 +335,12 @@ var ClassMap = &classmap.Map{
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/Link.js":                     {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Link.js", JSHash: "6e91d7044352f8ecc1d637c0047d1a55300120bf", CSSHash: "963bca1730a62b372e667b0a3f888aeef5504968"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/Meta.js":                     {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Meta.js", JSHash: "4cb72d4d4b6124a6b2c8818d0a9d320b921ac9b2", CSSHash: "43e6cf20a8590ff0a820fed9ae53399edfb53ac4"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/RespH.js":                    {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/RespH.js", JSHash: "fdd92845b8ab0c957c7d5b695743ddaa785ad75f", CSSHash: "60ee66e1f25468b808af731338d2f10c9e74d8fe"},
-		"Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js":                 {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js", JSHash: "36f042d8e7efb1a1b2022245f94e6c1d2ec2b538", CSSHash: "47a59715388ff5f8abe4eb4e7e6000bf92de77b2"},
-		"Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js":                    {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js", JSHash: "eeff3f7e761a8304ff114b9180ba523e1ef1c4b4", CSSHash: "1"},
+		"Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js":                 {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/SiteFile.js", JSHash: "b98885eb6a931af19b27c5b59c2749b050af768b", CSSHash: "47a59715388ff5f8abe4eb4e7e6000bf92de77b2"},
+		"Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js":                    {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Sound.js", JSHash: "2c5f32fe1ed50595503978dde85843ca48e55989", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/Spoiler.js":                  {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Spoiler.js", JSHash: "b3a483cc50f0e63c07ae64b52652f07159cdd877", CSSHash: "1"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/Video.js":                    {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/Video.js", JSHash: "d6f641a25d4350b98dad2bbeeec5dedfd1c6d532", CSSHash: "ff1d4ae903c244a6aeaf78b12c375f1f45dfb3c2"},
 		"Astro/Blog/AstroEdit/Visualizer/Snippet/_this.js":                    {Src: "Astro/Blog/AstroEdit/Visualizer/Snippet/_this.js", JSHash: "38f5d8512eabf1ffb4249b1414efd2362af8dc5c", CSSHash: "1"},
-		"Astro/Blog/AstroEdit/Visualizer/_this.js":                            {Src: "Astro/Blog/AstroEdit/Visualizer/_this.js", JSHash: "0ccfbd84763e894cd713f3a89eaa053ba5477d7c", CSSHash: "d43e2d27e52788d755c96f0db4ac500aa38ca2ee"},
+		"Astro/Blog/AstroEdit/Visualizer/_this.js":                            {Src: "Astro/Blog/AstroEdit/Visualizer/_this.js", JSHash: "6b3cece4cedda7322cfe385fe81f956bc59c01c6", CSSHash: "d43e2d27e52788d755c96f0db4ac500aa38ca2ee"},
 		"Astro/Blog/AstroEdit/_this.js":                                       {Src: "Astro/Blog/AstroEdit/_this.js", JSHash: "c21f6a1de562e3365d7874696d7e791074f935c1", CSSHash: "2d37776089eeac5d81981f100c1c029c9249e4a9"},
 		"Astro/Blog/Components/Album.js":                                      {Src: "Astro/Blog/Components/Album.js", JSHash: "95069b6eec9f03c84969e4d3627b0730136fa300", CSSHash: "640c50241b457330678a21b940fdb4ea15a5249b"},
 		"Astro/Blog/Components/ArticleContent.js":                             {Src: "Astro/Blog/Components/ArticleContent.js", JSHash: "2e208eae51421946f874dd78cb05d974a689bdef", CSSHash: "34fc82974af2ae7040819889bc8e7a1bd2b48cd6"},
@@ -391,19 +391,19 @@ var ClassMap = &classmap.Map{
 		"Astro/Starfall/Layout/PureColumn.js":                                 {Src: "Astro/Starfall/Layout/PureColumn.js", JSHash: "5164bbe0019969bf85c649a6991ccd3b8c780b3a", CSSHash: "d1920d1be9f9d9bbfdfdbb16565454c58ed6c78c"},
 		"Astro/Starfall/Layout/TwoColumn.js":                                  {Src: "Astro/Starfall/Layout/TwoColumn.js", JSHash: "e55bedfac6ff774f7bbf46b69b1b537b28f8e993", CSSHash: "cf05ec131d63e657f0eba0183c8055d0101bcf08"},
 		"Astro/Starfall/_this.js":                                             {Src: "Astro/Starfall/_this.js", JSHash: "77ca61d1ba806c3440cec5e26a100581259e1784", CSSHash: "1"},
-		"Astro/utils/Date.js":                                                 {Src: "Astro/utils/Date.js", JSHash: "45221fe447d15fd943310fe9d3d3308f884b6aec", CSSHash: "1"},
+		"Astro/utils/Date.js":                                                 {Src: "Astro/utils/Date.js", JSHash: "fe9bc7b983ecfb70f4312c0ce2c74b5e7bf50dc2", CSSHash: "1"},
 		"Astro/utils/_this.js":                                                {Src: "Astro/utils/_this.js", JSHash: "21e99449ec5c1a4b6d25164db9434132aeea5ad3", CSSHash: "1"},
 		"Components/Console.js":                                               {Src: "Components/Console.js", JSHash: "348c0ff1762c0a00ed813e3419f17ed695399ec3", CSSHash: "452f4a36e8fd7321c7d177a311047c8b71165e48"},
 		"Components/DockPanel.js":                                             {Src: "Components/DockPanel.js", JSHash: "d9f9c996536ac6b5d6f5f7262b7889468a36b13b", CSSHash: "af0d91982c764ee62c46b243be68c08f2808e82b"},
 		"Components/MessageBox.js":                                            {Src: "Components/MessageBox.js", JSHash: "63c831ec6493912492780009a76997d7bc59cad4", CSSHash: "5571fa4c2e1324dcf1f2e18df8b6105cf37dfc53"},
-		"Components/Mouse/Clipboard.js":                                       {Src: "Components/Mouse/Clipboard.js", JSHash: "742b2522cd0d5dad897d5c3afa2d568494661912", CSSHash: "1b7f85206ce1560ed23d3b270e093022e25d2e61"},
-		"Components/Mouse/ContextMenu.js":                                     {Src: "Components/Mouse/ContextMenu.js", JSHash: "9e9863a463cb3b8b4d71f13bf364a09c1eb2c3c8", CSSHash: "d5a5f1a4a0db9a440b9a070f9879beaddffbd99a"},
+		"Components/Mouse/Clipboard.js":                                       {Src: "Components/Mouse/Clipboard.js", JSHash: "32de0da9ec7e9a4c4e28267a5f60bb815b5af92d", CSSHash: "1b7f85206ce1560ed23d3b270e093022e25d2e61"},
+		"Components/Mouse/ContextMenu.js":                                     {Src: "Components/Mouse/ContextMenu.js", JSHash: "254b6ff586e11834d28be96a1e2526fe6ef8e8ad", CSSHash: "d5a5f1a4a0db9a440b9a070f9879beaddffbd99a"},
 		"Components/Mouse/_this.js":                                           {Src: "Components/Mouse/_this.js", JSHash: "9ec5ced53a20ea1d057e2142668e27e5df7d49f6", CSSHash: "1"},
 		"Components/Vim/Actions/BUFFERS.js":                                   {Src: "Components/Vim/Actions/BUFFERS.js", JSHash: "4142782274b232ea8a80ddeb7fbffbd8b97ba1d2", CSSHash: "1"},
 		"Components/Vim/Actions/DELETE.js":                                    {Src: "Components/Vim/Actions/DELETE.js", JSHash: "12223cd3496265f907c83a6f42bab6eebb174983", CSSHash: "1"},
 		"Components/Vim/Actions/EDITOR_COMMAND.js":                            {Src: "Components/Vim/Actions/EDITOR_COMMAND.js", JSHash: "38f9bd4f5c880fc172b8f50aae38ebb9d189bfe8", CSSHash: "1"},
 		"Components/Vim/Actions/FIND.js":                                      {Src: "Components/Vim/Actions/FIND.js", JSHash: "e408e00eb64bf4daffb39973b41141458966d18f", CSSHash: "1"},
-		"Components/Vim/Actions/INSERT.js":                                    {Src: "Components/Vim/Actions/INSERT.js", JSHash: "cb9d322d663840c1e991559127b5b8ad7b7273f0", CSSHash: "1"},
+		"Components/Vim/Actions/INSERT.js":                                    {Src: "Components/Vim/Actions/INSERT.js", JSHash: "9acbc4ec8c6f7f5cd66520455fcc061d0547bb62", CSSHash: "1"},
 		"Components/Vim/Actions/JOIN_LINES.js":                                {Src: "Components/Vim/Actions/JOIN_LINES.js", JSHash: "2c0bafefa8edb662e5003780b4ae8a6b8488a317", CSSHash: "1"},
 		"Components/Vim/Actions/MARK.js":                                      {Src: "Components/Vim/Actions/MARK.js", JSHash: "4e959247d49f84b20f96c8a186492c93d1ff5960", CSSHash: "1"},
 		"Components/Vim/Actions/MARKS.js":                                     {Src: "Components/Vim/Actions/MARKS.js", JSHash: "06699d99178aef5758d7cd7ca46d3b7806ed7621", CSSHash: "1"},
@@ -413,9 +413,9 @@ var ClassMap = &classmap.Map{
 		"Components/Vim/Actions/QUIT.js":                                      {Src: "Components/Vim/Actions/QUIT.js", JSHash: "eeb7923e9b8a06ddea2c2d0fff76edb75d04121e", CSSHash: "1"},
 		"Components/Vim/Actions/REDO.js":                                      {Src: "Components/Vim/Actions/REDO.js", JSHash: "a2895a9628f9a075f350fcb0583042f64518ce3d", CSSHash: "1"},
 		"Components/Vim/Actions/REGISTERS.js":                                 {Src: "Components/Vim/Actions/REGISTERS.js", JSHash: "ddaa381db6d77db810a21a35e05f2008034e43ef", CSSHash: "1"},
-		"Components/Vim/Actions/REPLACE.js":                                   {Src: "Components/Vim/Actions/REPLACE.js", JSHash: "7d7b173c63c2252eae700be2021a11470b08276c", CSSHash: "1"},
+		"Components/Vim/Actions/REPLACE.js":                                   {Src: "Components/Vim/Actions/REPLACE.js", JSHash: "91b16f71085d4fa9f98081971f103a63509cc492", CSSHash: "1"},
 		"Components/Vim/Actions/SHIFT_LINES.js":                               {Src: "Components/Vim/Actions/SHIFT_LINES.js", JSHash: "d85ff4738e31e1a8a8acdaf5f00bb5d654290b14", CSSHash: "1"},
-		"Components/Vim/Actions/TO.js":                                        {Src: "Components/Vim/Actions/TO.js", JSHash: "78a814b3fb5c9feff473a265e7253d699f484871", CSSHash: "1"},
+		"Components/Vim/Actions/TO.js":                                        {Src: "Components/Vim/Actions/TO.js", JSHash: "50d87381bc34dfefb4dcbd7dce33cdd9ed67dc55", CSSHash: "1"},
 		"Components/Vim/Actions/UNDO.js":                                      {Src: "Components/Vim/Actions/UNDO.js", JSHash: "bb3f119407547329da561213cca7445b63e30d3c", CSSHash: "1"},
 		"Components/Vim/Actions/VA_REC.js":                                    {Src: "Components/Vim/Actions/VA_REC.js", JSHash: "8904fe42c7211334b063c6d89d0b3deb0ffd3633", CSSHash: "1"},
 		"Components/Vim/Actions/VERSION.js":                                   {Src: "Components/Vim/Actions/VERSION.js", JSHash: "1aae87bf77f87a6202733ef515e927d788cd3bc5", CSSHash: "1"},
@@ -424,10 +424,10 @@ var ClassMap = &classmap.Map{
 		"Components/Vim/Actions/WRITE.js":                                     {Src: "Components/Vim/Actions/WRITE.js", JSHash: "6aed08f607ad6c050798a37461ffc6394bb7b5aa", CSSHash: "1"},
 		"Components/Vim/Actions/YANK.js":                                      {Src: "Components/Vim/Actions/YANK.js", JSHash: "4c428bea3ce9c15b94f294b1d4cd17ee4cde8824", CSSHash: "1"},
 		"Components/Vim/Controls.js":                                          {Src: "Components/Vim/Controls.js", JSHash: "d820f2b288a11adfd43eed1186f702013530606f", CSSHash: "1"},
-		"Components/Vim/Cursor.js":                                            {Src: "Components/Vim/Cursor.js", JSHash: "499fe9a53c9de02138c3440b0433227b00846259", CSSHash: "1"},
+		"Components/Vim/Cursor.js":                                            {Src: "Components/Vim/Cursor.js", JSHash: "80f768f49924d50dd6a3e77e15b447aea51ea21c", CSSHash: "1"},
 		"Components/Vim/DateTime/String.js":                                   {Src: "Components/Vim/DateTime/String.js", JSHash: "07b11e176cccc423e75d8fe66302f8cb8b009418", CSSHash: "1"},
-		"Components/Vim/DateTime/_this.js":                                    {Src: "Components/Vim/DateTime/_this.js", JSHash: "420103edb4f3df39be9eceabd4b88919b5cf7cc7", CSSHash: "1"},
-		"Components/Vim/Ex/Command.js":                                        {Src: "Components/Vim/Ex/Command.js", JSHash: "04ab6686c5f5543463c1b9668a0832cbe7b08771", CSSHash: "1"},
+		"Components/Vim/DateTime/_this.js":                                    {Src: "Components/Vim/DateTime/_this.js", JSHash: "6f1078fe85d74ec1771b7eb491809c665679b907", CSSHash: "1"},
+		"Components/Vim/Ex/Command.js":                                        {Src: "Components/Vim/Ex/Command.js", JSHash: "c1a2afdb0cd600edbe79d0465a12ca7896aca68b", CSSHash: "1"},
 		"Components/Vim/LineBuffer.js":                                        {Src: "Components/Vim/LineBuffer.js", JSHash: "d7815c5c0a40eda137ebb9559481b265e3f4c7be", CSSHash: "1"},
 		"Components/Vim/LineFeeder.js":                                        {Src: "Components/Vim/LineFeeder.js", JSHash: "7876d69d13a93fe96a04ca5c5b17496b1d542d86", CSSHash: "1"},
 		"Components/Vim/State/History.js":                                     {Src: "Components/Vim/State/History.js", JSHash: "2d338e9e47f157f392d9f9df210ec6e8768cffb0", CSSHash: "1"},
@@ -440,7 +440,7 @@ var ClassMap = &classmap.Map{
 		"Components/Vim/Syntax/Analyzer.js":                                   {Src: "Components/Vim/Syntax/Analyzer.js", JSHash: "64b9a2ae4c6ba0f9fdc0dda87323786df6c6b339", CSSHash: "1"},
 		"Components/Vim/Syntax/Word.js":                                       {Src: "Components/Vim/Syntax/Word.js", JSHash: "a6d24370b0906cc0f09cfd68d96d635cd583fac3", CSSHash: "1"},
 		"Components/Vim/VimArea.js":                                           {Src: "Components/Vim/VimArea.js", JSHash: "dda35cb49939da6a71d08f68a85435f68d64e283", CSSHash: "1"},
-		"Components/Vim/_this.js":                                             {Src: "Components/Vim/_this.js", JSHash: "2abd3bc287e8b8b0b5966457835dcb4bde6174df", CSSHash: "7949b25860fcef736927c01502aad09b56d764b2"},
+		"Components/Vim/_this.js":                                             {Src: "Components/Vim/_this.js", JSHash: "f385a56129d2c933fd848501bbf3a5183a2dd3a8", CSSHash: "7949b25860fcef736927c01502aad09b56d764b2"},
 		"Components/_this.js":                                                 {Src: "Components/_this.js", JSHash: "f4cb7babe62a5cdae34d2c4ebcb55071e81da4ff", CSSHash: "1"},
 		"Dandelion/CSSAnimations/MovieClip.js":                                {Src: "Dandelion/CSSAnimations/MovieClip.js", JSHash: "5667064818a0ca32f11a9b5a27ed641058e9df6c", CSSHash: "daa6e6f4ee3365e599cf1b2680f3e907389534f3"},
 		"Dandelion/CSSAnimations/_this.js":                                    {Src: "Dandelion/CSSAnimations/_this.js", JSHash: "a01a6bcfc5851debc7179e9449dc93617bca3afc", CSSHash: "2d6b4b00f0c4050187ccf010e0a24e5bc6121d18"},