Skip to content

Instantly share code, notes, and snippets.

@mauritslamers
Created April 18, 2014 12:13
Show Gist options
  • Save mauritslamers/11040893 to your computer and use it in GitHub Desktop.
Save mauritslamers/11040893 to your computer and use it in GitHub Desktop.
Differences between index.html generated by the new SproutCore BuildTools and Abbot
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<script>
var SC_benchmarkPreloadEvents = { headStart: new Date().getTime() };
var docElem = window.documentElement || document.documentElement;
if (docElem) { docElem.className = docElem.className.replace(/(^|\s)no-js(\s|$)/, '$1js$2');
docElem = null; }
</script>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" >
<meta http-equiv="Content-Script-Type" content="text/javascript" >
<meta name="apple-mobile-web-app-capable" content="yes" >
<meta name="apple-mobile-web-app-status-bar-style" content="default" >
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" >
<title>todos_three</title>
<script> window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} };
SC.buildMode = 'debug';
SC.buildNumber = '1';
SC.buildLocale = 'en';
</script>
<script type="text/javascript">String.preferredLanguage = "en";</script>
<script>// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} };
/**
The list of browsers that are automatically identified.
@readonly
@enum
*/
SC.BROWSER = {
android: 'android',
blackberry: 'blackberry',
chrome: 'chrome',
firefox: 'firefox',
ie: 'ie',
opera: 'opera',
safari: 'safari',
unknown: 'unknown'
};
/**
The list of browser specific object prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.CLASS_PREFIX = {
gecko: 'Moz',
opera: 'O',
presto: 'O',
trident: 'Ms', // Note the uppercase 'M'
webkit: 'WebKit' // Note the uppercase 'K'
};
/**
The list of browser specific CSS prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.CSS_PREFIX = {
gecko: '-moz-',
opera: '-o-',
presto: '-o-',
trident: '-ms-',
webkit: '-webkit-'
};
/**
The list of devices that are automatically identified.
@readonly
@enum
*/
SC.DEVICE = {
android: 'android',
blackberry: 'blackberry',
desktop: 'desktop',
ipad: 'ipad',
iphone: 'iphone',
ipod: 'ipod',
mobile: 'mobile'
};
/**
The list of browser specific DOM prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.DOM_PREFIX = {
gecko: 'Moz',
opera: 'O',
presto: 'O',
trident: 'ms',
webkit: 'Webkit'
};
/**
The list of browser engines that are automatically identified.
@readonly
@enum
*/
SC.ENGINE = {
gecko: 'gecko',
opera: 'opera',
presto: 'presto',
trident: 'trident',
webkit: 'webkit'
};
/**
The list of operating systems that are automatically identified.
@readonly
@enum
*/
SC.OS = {
android: 'android',
blackberry: 'blackberry',
ios: 'ios',
linux: 'linux',
mac: 'mac',
win: 'windows'
};
/**
Detects browser properties based on the given userAgent and language.
@private
*/
SC.detectBrowser = function (userAgent, language) {
var browser = {},
device,
engineAndVersion,
isIOSDevice,
conExp = '(?:[\\/:\\::\\s:;])', // Match the connecting character
numExp = '(\\S+[^\\s:;:\\)]|)', // Match the "number"
nameAndVersion,
os, osAndVersion,
override;
// Use the current values if none are provided.
userAgent = (userAgent || navigator.userAgent).toLowerCase();
language = language || navigator.language || navigator.browserLanguage;
// Calculations to determine the device. See SC.DEVICE.
device =
userAgent.match(new RegExp('(android|ipad|iphone|ipod|blackberry)')) ||
userAgent.match(new RegExp('(mobile)')) ||
['', SC.DEVICE.desktop];
/**
@name SC.browser.device
@type SC.DEVICE|SC.BROWSER.unknown
*/
browser.device = device[1];
// It simplifies further matching by recognizing this group of devices.
isIOSDevice =
browser.device === SC.DEVICE.ipad ||
browser.device === SC.DEVICE.iphone ||
browser.device === SC.DEVICE.ipod;
// Calculations to determine the name and version. See SC.BROWSER.
nameAndVersion =
// Match the specific names first, avoiding commonly spoofed browsers.
userAgent.match(new RegExp('(opera|chrome|firefox|android|blackberry)' + conExp + numExp)) ||
userAgent.match(new RegExp('(ie|safari)' + conExp + numExp)) ||
userAgent.match(new RegExp('(trident)')) ||
['', SC.BROWSER.unknown, '0'];
// If the device is an iOS device, use SC.BROWSER.safari for browser.name.
if (isIOSDevice) { nameAndVersion[1] = SC.BROWSER.safari; }
// If a `Version` number is found, use that over the `Name` number
override = userAgent.match(new RegExp('(version)' + conExp + numExp));
if (override) { nameAndVersion[2] = override[2]; }
// If there is no `Version` in Safari, don't use the Safari number since it is
// the Webkit number.
else if (nameAndVersion[1] === SC.BROWSER.safari) { nameAndVersion[2] = '0'; }
else if (nameAndVersion[1] === SC.ENGINE.trident) {
// Special handling for IE11 (no 'ie' component, only 'trident' + 'rv')
nameAndVersion[1] = SC.BROWSER.ie;
this._ieVersion = nameAndVersion[2];
nameAndVersion[2] = userAgent.match(new RegExp('(rv)' + conExp + numExp))[2];
}
/**
@name SC.browser.name
@type SC.BROWSER|SC.BROWSER.unknown
*/
browser.name = nameAndVersion[1];
/**
@name SC.browser.version
@type String
*/
browser.version = nameAndVersion[2];
// Calculations to determine the engine and version. See SC.ENGINE.
engineAndVersion =
// Match the specific engines first, avoiding commonly spoofed browsers.
userAgent.match(new RegExp('(presto)' + conExp + numExp)) ||
userAgent.match(new RegExp('(opera|trident|webkit|gecko)' + conExp + numExp)) ||
['', SC.BROWSER.unknown, '0'];
// If the browser is SC.BROWSER.ie, use SC.ENGINE.trident.
override = browser.name === SC.BROWSER.ie ? SC.ENGINE.trident : false;
if (override) { engineAndVersion[1] = override; }
// If the engineVersion is unknown and the browser is SC.BROWSER.ie, use
// browser.version for browser.engineVersion.
override = browser.name === SC.BROWSER.ie && engineAndVersion[2] === '0';
if (override) { engineAndVersion[2] = browser.version; }
// If a `rv` number is found, use that over the engine number (except for IE11+ where 'rv' now indicates the browser version).
override = userAgent.match(new RegExp('(rv)' + conExp + numExp));
if (override && engineAndVersion[1] !== SC.ENGINE.trident) { engineAndVersion[2] = override[2]; }
/**
@name SC.browser.engine
@type SC.ENGINE|SC.BROWSER.unknown
*/
browser.engine = engineAndVersion[1];
/**
@name SC.browser.engineVersion
@type String
*/
browser.engineVersion = engineAndVersion[2];
/**
The prefix of browser specific methods on this platform.
@name SC.browser.domPrefix
@type String
*/
browser.domPrefix = SC.DOM_PREFIX[browser.engine];
/**
The prefix of browser specific properties on this platform.
@name SC.browser.classPrefix
@type String
*/
browser.classPrefix = SC.CLASS_PREFIX[browser.engine];
/**
The prefix of browser specific CSS properties on this platform.
@name SC.browser.cssPrefix
@type String
*/
browser.cssPrefix = SC.CSS_PREFIX[browser.engine];
// If we don't know the name of the browser, use the name of the engine.
if (browser.name === SC.BROWSER.unknown) { browser.name = browser.engine; }
// Calculations to determine the os and version. See SC.OS.
osAndVersion =
// Match the specific names first, avoiding commonly spoofed os's.
userAgent.match(new RegExp('(blackberry)')) ||
userAgent.match(new RegExp('(android|iphone(?: os)|windows(?: nt))' + conExp + numExp)) ||
userAgent.match(new RegExp('(os|mac(?: os)(?: x))' + conExp + numExp)) ||
userAgent.match(new RegExp('(linux)')) ||
[null, SC.BROWSER.unknown, '0'];
// Normalize the os name.
if (isIOSDevice) { os = SC.OS.ios; }
else if (osAndVersion[1] === 'mac os x' || osAndVersion[1] === 'mac os') { os = SC.OS.mac; }
else if (osAndVersion[1] === 'windows nt') { os = SC.OS.win; }
else { os = osAndVersion[1]; }
// Normalize the os version.
osAndVersion[2] = osAndVersion[2] ? osAndVersion[2].replace(/_/g, '.') : '0';
/**
@name SC.browser.os
@type SC.OS|SC.BROWSER.unknown
*/
browser.os = os;
/**
@name SC.browser.osVersion
@type String
*/
browser.osVersion = osAndVersion[2];
// The following long list of properties have all been deprecated. While they
// are a bit less verbose then the above constants, they lack standardization
// and can be prone to failure. Rather than continuing to expand this list
// with more and more one-off comparisons, which often muddle the line between
// the browser, the engine, the os and the device, it seems more practical to
// only maintain the 7 identifiable properties listed above: device, name,
// version, os, osVersion, engine and engineVersion.
/** @deprecated Version 1.7. Use browser.os === SC.OS.win.
@name SC.browser.isWindows
@type Boolean
*/
browser.windows = browser.isWindows = browser.os === SC.OS.win;
/** @deprecated Version 1.7. Use browser.os === SC.OS.mac.
@name SC.browser.isMac
@type Boolean
*/
browser.mac = browser.isMac = browser.os === SC.OS.mac;
/** @deprecated Version 1.7. Use browser.os === SC.OS.mac && browser.compare(browser.osVersion, '10.7') == 0
@name SC.browser.isLion
@type Boolean
*/
browser.lion = browser.isLion = !!(/mac os x 10_7/.test(userAgent) && !/like mac os x 10_7/.test(userAgent));
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.iphone.
@name SC.browser.isiPhone
@type Boolean
*/
browser.iPhone = browser.isiPhone = browser.device === SC.DEVICE.iphone;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipod.
@name SC.browser.isiPod
@type Boolean
*/
browser.iPod = browser.isiPod = browser.device === SC.DEVICE.ipod;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipad.
@name SC.browser.isiPad
@type Boolean
*/
browser.iPad = browser.isiPad = browser.device === SC.DEVICE.ipad;
/** @deprecated Version 1.7. Use browser.os === SC.OS.ios.
@name SC.browser.isiOS
@type Boolean
*/
browser.iOS = browser.isiOS = browser.os === SC.OS.ios;
/** @deprecated Version 1.7. Use browser.os === SC.OS.android or browser.name === SC.BROWSER.android or browser.device === SC.DEVICE.android.
@name SC.browser.isAndroid
@type Boolean
*/
browser.android = browser.isAndroid = browser.os === SC.OS.android;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.opera
@type String
*/
browser.opera = browser.name === SC.BROWSER.opera ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.opera.
@name SC.browser.isOpera
@type Boolean
*/
browser.isOpera = browser.name === SC.BROWSER.opera;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.msie
@type String
*/
browser.msie = browser.name === SC.BROWSER.ie ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.engine === SC.ENGINE.trident.
@name SC.browser.isIE
@type Boolean
*/
browser.isIE = browser.engine === SC.ENGINE.trident;
/** @deprecated Version 1.7. Use browser.compare(browser.version, '8') <= 0.
@name SC.browser.isIE8OrLower
@type Boolean
*/
browser.isIE8OrLower = browser.name === SC.BROWSER.ie && browser.version <= 8;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.mozilla
@type String
*/
browser.mozilla = browser.engine === SC.ENGINE.gecko ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.firefox or browser.engine === SC.ENGINE.gecko.
@name SC.browser.isMozilla
@type Boolean
*/
browser.isMozilla = browser.engine === SC.ENGINE.gecko;
/** @deprecated Version 1.7. Use browser.engineVersion.
@name SC.browser.webkit
@type String
*/
browser.webkit = browser.engine === SC.ENGINE.webkit ? browser.engineVersion : '0';
/** @deprecated Version 1.7. Use browser.engine === SC.ENGINE.webkit.
@name SC.browser.isWebkit
@type Boolean
*/
browser.isWebkit = browser.engine === SC.ENGINE.webkit;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.chrome
@type String
*/
browser.chrome = browser.name === SC.BROWSER.chrome ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.chrome.
@name SC.browser.isChrome
@type Boolean
*/
browser.isChrome = browser.name === SC.BROWSER.chrome;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.mobileSafari
@type String
*/
browser.mobileSafari = browser.os === SC.OS.ios ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios
@name SC.browser.isMobileSafari
@type Boolean
*/
browser.isMobileSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPadSafari
@type String
*/
browser.iPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari
@name SC.browser.isiPadSafari
@type Boolean
*/
browser.isiPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPhoneSafari
@type String
*/
browser.iPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari
@name SC.browser.isiPhoneSafari
@type Boolean
*/
browser.isiPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPodSafari
@type String
*/
browser.iPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari
@name SC.browser.isiPodSafari
@type Boolean
*/
browser.isiPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use SC.platform.standalone.
@name SC.browser.isiOSHomeScreen
@type Boolean
*/
browser.isiOSHomeScreen = browser.isMobileSafari && !(/apple.*mobile.*safari/.test(userAgent));
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.safari
@type String
*/
browser.safari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac.
@name SC.browser.isSafari
@type Boolean
*/
browser.isSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac;
/**
@name SC.browser.language
@type String
*/
browser.language = language.split('-', 1)[0];
/**
@name SC.browser.countryCode
@type String
*/
browser.countryCode = language.split('-')[1] ? language.split('-')[1].toLowerCase() : undefined;
/** @deprecated Version 1.7. Use browser.name. See SC.BROWSER for possible values.
@name SC.browser.current
@type String
*/
browser.current = browser.name;
return browser;
};
/** @class
This object contains information about the browser environment SproutCore is
running in. This includes the following properties:
- browser.device ex. SC.DEVICE.ipad
- browser.name ex. SC.BROWSER.chrome
- browser.version ex. '16.0.2.34'
- browser.os ex. SC.OS.mac
- browser.osVersion ex. '10.6'
- browser.engine ex. SC.ENGINE.webkit
- browser.engineVersion ex. '533.29'
- browser.cssPrefix ex. '-webkit-'
- browser.classPrefix ex. 'WebKit'
- browser.domPrefix ex. 'webkit'
Note: User agent sniffing does not provide guaranteed results and spoofing may
affect the accuracy. Therefore, as a general rule, it is much better
to rely on the browser's verified capabilities in SC.platform. But if you must
write browser specific code, understand that SC.browser does an exceptional
job at identifying the current browser.
Based on the unit test samples, the most stable browser properties appear to
be `engine` and `engineVersion`.
@since Version 1.0
*/
SC.browser = SC.detectBrowser();
</script>
<script>// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
/*global SC_benchmarkPreloadEvents*/
// sc_require("system/browser")
if (typeof SC_benchmarkPreloadEvents !== "undefined") {
SC.benchmarkPreloadEvents = SC_benchmarkPreloadEvents;
SC_benchmarkPreloadEvents = undefined;
} else {
SC.benchmarkPreloadEvents = { headStart: new Date().getTime() };
}</script>
<script>// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
// sc_require("system/browser");
SC.setupBodyClassNames = function() {
var el = document.body,
browser, platform, shadows, borderRad, classNames, style, ieVersion;
if (!el) return ;
browser = SC.browser.current ;
platform = SC.browser.isWindows ? 'windows' : SC.browser.isMac ? 'mac' : 'other-platform' ;
style = document.documentElement.style;
shadows = (style.MozBoxShadow !== undefined) ||
(style.webkitBoxShadow !== undefined) ||
(style.oBoxShadow !== undefined) ||
(style.boxShadow !== undefined);
borderRad = (style.MozBorderRadius !== undefined) ||
(style.webkitBorderRadius !== undefined) ||
(style.oBorderRadius !== undefined) ||
(style.borderRadius !== undefined);
classNames = el.className ? el.className.split(' ') : [] ;
if(shadows) classNames.push('box-shadow');
if(borderRad) classNames.push('border-rad');
classNames.push(browser, platform) ;
// This isn't a perfectly correct way to compare versions, but should be okay
// in practical usage.
ieVersion = parseInt(SC.browser.version, 10);
if (SC.browser.isIE) {
classNames.push('msie'); // Used by several framework CSS declarations, including the one to address issue #971.
if (ieVersion === 7) {
classNames.push('ie7');
}
else if (ieVersion === 8) {
classNames.push('ie8');
}
else if (ieVersion === 9) {
classNames.push('ie9');
}
else if (ieVersion === 10) {
classNames.push('ie10');
}
}
if(browser==="safari" || browser==="chrome") classNames.push('webkit');
if (SC.browser.isMobileSafari) classNames.push('mobile-safari') ;
if ('createTouch' in document) classNames.push('touch');
el.className = classNames.join(' ') ;
} ;
</script>
<link href="todos_three/sproutcore/jquery/sproutcore/jquery.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/runtime/sproutcore/runtime.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/yuireset/sproutcore/yuireset.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/core_foundation/sproutcore/core_foundation.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/routing/sproutcore/routing.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/datetime/core/sproutcore/datetime/core.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/datetime/sproutcore/datetime.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/datetime/localized/sproutcore/datetime/localized.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/ajax/sproutcore/ajax.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/foundation/sproutcore/foundation.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/desktop/sproutcore/desktop.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/datastore/sproutcore/datastore.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/statechart/sproutcore/statechart.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/empty_theme/sproutcore/empty_theme.css" rel="stylesheet" type="text/css">
<link href="todos_three/sproutcore/ace/sproutcore/ace.css" rel="stylesheet" type="text/css">
<link href="todos_three/todos_three/todos_three.css" rel="stylesheet" type="text/css">
<script> SC.benchmarkPreloadEvents['headEnd'] = new Date().getTime(); </script>
</head>
<body>
<script type="text/javascript"> var SC = window.SC || {};
if (SC.setupBodyClassNames) SC.setupBodyClassNames() ;
</script>
<div id="loading"> <p class="loading">Loading...<p></div>
<script type="text/javascript" src="todos_three/sproutcore/jquery/jquery-1.8.3-patched.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/license.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/function.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/ext/function.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/private/observer_set.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/private/chain_observer.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/observable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/enumerator.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/enumerable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/range_observer.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/base.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/flatten.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/indexOf.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/insertAt.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/objectAt.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/popObject.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/pushObject.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/rangeObserver.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/removeAt.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/removeObject.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/replace.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/shiftObject.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array/unshiftObject.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/debug/test_suites/array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/ext/array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/ext/date.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/ext/number.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/ext/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/comparable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/copyable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/mixins/freezable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/set.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/private/observer_queue.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/object.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/private/property_chain.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/binding.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/error.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/index_set.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/json.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/logger.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/runtime/system/run_loop.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/browser.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/builder.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/core_query.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/event.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/cursor.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/responder.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/theme.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/locale.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/mixins/delegate_support.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/base.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/statechart.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/child_view_layouts/horizontal_stack_layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/controllers/controller.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/mixins/selection_support.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/controllers/array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/controllers/object.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/ext/function.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/ext/object.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/ext/run_loop.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/ext/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/mixins/action_support.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/mixins/responder_context.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/body_overflow.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/animation.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/layout_style.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/acceleration.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/cursor.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/enabled.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/keyboard.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/manipulation.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/theming.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/touch.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/visibility.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/pane.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/keyboard.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/manipulation.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/visibility.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/main.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/panes/pane_statechart.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/protocols/observable_protocol.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/protocols/sparse_array_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/protocols/view_transition_protocol.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/ready.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/platform.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/touch.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/root_responder.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/application.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/color.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/device.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/child_view_layouts/vertical_stack_layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/key_bindings.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/page.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/render_context.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/req_anim_frame.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/selection_set.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/sparse_array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/timer.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/utils/rect.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/system/utils.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/core_foundation/views/view/design_mode.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/routing/system/routes.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datetime/core/system/datetime.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datetime/localized/english.lproj/strings.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datetime/localized/french.lproj/strings.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datetime/localized/system/datetime.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ajax/mixins/websocket_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ajax/system/response.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ajax/system/request.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ajax/system/websocket.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/tasks/task.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/module.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/tree_item_content.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/collection_content.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/private/tree_item_observer.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/controllers/tree.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/debug/control_test_pane.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/delegates/inline_text_field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/ext/string.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/gesture.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/gestures/pinch.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/gestures/swipe.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/gestures/tap.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/license.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/auto_mixin.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/utils/string_measurement.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/auto_resize.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/content_display.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/content_value_support.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/control.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/editable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/flowed_layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/gesturable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/inline_editable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/inline_editor.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/inline_editor_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/inner_frame.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/static_layout.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/mixins/validatable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/protocols/swap_transition_protocol.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/render_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/canvas_image.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/container.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/helpers/sizing.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/image.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/render_delegates/label.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/app_cache.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/benchmark.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/cookie.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/core_query.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/exception_handler.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/image_queue.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/math.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/task_queue.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/text_selection.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/undo_manager.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/user_defaults.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/utils/colors.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/utils/misc.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/utils/range.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/system/utils/string_metric_optimization.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/tasks/preload_bundle.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/adjust_bounce_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/adjust_smooth_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/adjust_spring_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/bounce_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/fade_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/pop_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/scale_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/slide_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/spring_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/container.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/swap_dissolve_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/swap_fade_color_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/swap_move_in_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/swap_push_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/transitions/swap_reveal_transition.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/validator.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/credit_card.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/date.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/date_time.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/email.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/not_empty.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/number.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/password.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/validators/positive_integer.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/image.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/text_field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/inline_text_field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/foundation/views/label.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/toolbar.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/collection_fast_path.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/collection_group.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/collection_row_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/collection_view_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/navigation_builder.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/scrollable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/split_child.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/mixins/split_thumb.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/modal.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/panel.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/alert.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/draggable.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/palette.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/picker.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/separator.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/menu_item.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/menu.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/panes/sheet.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/system/drag.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/protocols/drag_data_source.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/protocols/drag_source.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/protocols/drop_target.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/protocols/responder.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/checkbox.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/collection.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/disclosure.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/helpers/slicing.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/image_button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/master_detail.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/panel.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/picker.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/menu.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/popup_button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/progress.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/radio.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/radio_group.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/segment.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/segmented.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/slider.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/source_list.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/split.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/split_divider.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/debug/drag.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/well.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/render_delegates/workspace.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/checkbox.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/list_item.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/collection.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/date_field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/disclosure.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/list.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/grid.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/image_button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/toolbar.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/workspace.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/master_detail.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/scroller.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/scroll.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/menu_scroll.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/navigation.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/navigation_bar.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/popup_button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/progress.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/radio.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/scene.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/segment.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/segmented.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/select.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/select_button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/select_field.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/slider.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/source_list_group.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/source_list.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/split_divider.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/split.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/stacked.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/static_content.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/tab.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/thumb.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/web.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/desktop/views/well.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/query.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/record.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/record_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/child_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/child_array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/children_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/data_sources/data_source.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/data_sources/fixtures.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/debug/json.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/debug/standard_setup.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/fixtures/author_fixtures.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/fixtures/sample.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/mixins/relationship_support.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/child_record.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/data_sources/cascade.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/fetched_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/many_array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/many_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/models/single_attribute.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/store.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/nested_store.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/datastore/system/record_array.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/core.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/async.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/debug/sequence_matcher.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/ext/function.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/mixins/statechart_delegate.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/private/state_path_matcher.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/debug/monitor.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/state.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/empty_state.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/history_state.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/state_route_handler_context.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/statechart/system/statechart.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/empty_theme/theme.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/theme.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/resources/button/dark/button.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/resources/collection/source-list/source-list.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/resources/picker/popover/popover.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/resources/picker/popover/picker.js"></script>
<script type="text/javascript" src="todos_three/sproutcore/ace/resources/picker/popover/workspace.js"></script>
<script type="text/javascript" src="todos_three/todos_three/core.js"></script>
<script type="text/javascript" src="todos_three/todos_three/resources/todo_item.js"></script>
<script type="text/javascript" src="todos_three/todos_three/controllers/todos.js"></script>
<script type="text/javascript" src="todos_three/todos_three/controllers/completed_todos.js"></script>
<script type="text/javascript" src="todos_three/todos_three/models/todo.js"></script>
<script type="text/javascript" src="todos_three/todos_three/fixtures/todo.js"></script>
<script type="text/javascript" src="todos_three/todos_three/resources/main_page.js"></script>
<script type="text/javascript" src="todos_three/todos_three/statechart.js"></script>
<script type="text/javascript" src="todos_three/todos_three/states/logging_in.js"></script>
<script type="text/javascript" src="todos_three/todos_three/states/ready.js"></script>
<script type="text/javascript" src="todos_three/todos_three/states/showing_app.js"></script>
<script type="text/javascript" src="todos_three/todos_three/states/showing_destroy_confirmation.js"></script>
<script type="text/javascript" src="todos_three/todos_three/theme.js"></script>
<script type="text/javascript" src="todos_three/todos_three/main.js"></script>
<script>SC.benchmarkPreloadEvents['bodyEnd'] = new Date().getTime();</script>
</body></html>
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<script>
var SC_benchmarkPreloadEvents = { headStart: new Date().getTime() };
var docElem = window.documentElement || document.documentElement;
if(docElem) {
docElem.className = docElem.className.replace(/(^|\s)no-js(\s|$)/, '$1js$2');
docElem = null;
}
</script>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" >
<meta http-equiv="Content-Script-Type" content="text/javascript" >
<meta name="apple-mobile-web-app-capable" content="yes" >
<meta name="apple-mobile-web-app-status-bar-style" content="default" >
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui" >
<link rel="apple-touch-icon" href="" >
<link rel="apple-touch-startup-image" media="screen and (orientation:portrait)" href="" >
<link rel="apple-touch-startup-image" media="screen and (orientation:landscape)" href="" >
<link rel="shortcut icon" href="/static/sproutcore/foundation/en/current/resources/images/favicon.ico?1396734176" type="image/x-icon" >
<title>Todos Three</title>
<script>
window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} };
SC.buildMode = 'debug';
SC.buildNumber = 'current';
SC.buildLocale = 'en';
</script>
<script type="text/javascript">String.preferredLanguage = "en";</script>
<script type="text/javascript">
/* >>>>>>>>>> BEGIN source/core.js */
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
/* >>>>>>>>>> BEGIN source/system/browser.js */
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} };
/**
The list of browsers that are automatically identified.
@readonly
@enum
*/
SC.BROWSER = {
android: 'android',
blackberry: 'blackberry',
chrome: 'chrome',
firefox: 'firefox',
ie: 'ie',
opera: 'opera',
safari: 'safari',
unknown: 'unknown'
};
/**
The list of browser specific object prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.CLASS_PREFIX = {
gecko: 'Moz',
opera: 'O',
presto: 'O',
trident: 'Ms', // Note the uppercase 'M'
webkit: 'WebKit' // Note the uppercase 'K'
};
/**
The list of browser specific CSS prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.CSS_PREFIX = {
gecko: '-moz-',
opera: '-o-',
presto: '-o-',
trident: '-ms-',
webkit: '-webkit-'
};
/**
The list of devices that are automatically identified.
@readonly
@enum
*/
SC.DEVICE = {
android: 'android',
blackberry: 'blackberry',
desktop: 'desktop',
ipad: 'ipad',
iphone: 'iphone',
ipod: 'ipod',
mobile: 'mobile'
};
/**
The list of browser specific DOM prefixes, these are matched to the
browser engine.
@readonly
@enum
*/
SC.DOM_PREFIX = {
gecko: 'Moz',
opera: 'O',
presto: 'O',
trident: 'ms',
webkit: 'Webkit'
};
/**
The list of browser engines that are automatically identified.
@readonly
@enum
*/
SC.ENGINE = {
gecko: 'gecko',
opera: 'opera',
presto: 'presto',
trident: 'trident',
webkit: 'webkit'
};
/**
The list of operating systems that are automatically identified.
@readonly
@enum
*/
SC.OS = {
android: 'android',
blackberry: 'blackberry',
ios: 'ios',
linux: 'linux',
mac: 'mac',
win: 'windows'
};
/**
Detects browser properties based on the given userAgent and language.
@private
*/
SC.detectBrowser = function (userAgent, language) {
var browser = {},
device,
engineAndVersion,
isIOSDevice,
conExp = '(?:[\\/:\\::\\s:;])', // Match the connecting character
numExp = '(\\S+[^\\s:;:\\)]|)', // Match the "number"
nameAndVersion,
os, osAndVersion,
override;
// Use the current values if none are provided.
userAgent = (userAgent || navigator.userAgent).toLowerCase();
language = language || navigator.language || navigator.browserLanguage;
// Calculations to determine the device. See SC.DEVICE.
device =
userAgent.match(new RegExp('(android|ipad|iphone|ipod|blackberry)')) ||
userAgent.match(new RegExp('(mobile)')) ||
['', SC.DEVICE.desktop];
/**
@name SC.browser.device
@type SC.DEVICE|SC.BROWSER.unknown
*/
browser.device = device[1];
// It simplifies further matching by recognizing this group of devices.
isIOSDevice =
browser.device === SC.DEVICE.ipad ||
browser.device === SC.DEVICE.iphone ||
browser.device === SC.DEVICE.ipod;
// Calculations to determine the name and version. See SC.BROWSER.
nameAndVersion =
// Match the specific names first, avoiding commonly spoofed browsers.
userAgent.match(new RegExp('(opera|chrome|firefox|android|blackberry)' + conExp + numExp)) ||
userAgent.match(new RegExp('(ie|safari)' + conExp + numExp)) ||
userAgent.match(new RegExp('(trident)')) ||
['', SC.BROWSER.unknown, '0'];
// If the device is an iOS device, use SC.BROWSER.safari for browser.name.
if (isIOSDevice) { nameAndVersion[1] = SC.BROWSER.safari; }
// If a `Version` number is found, use that over the `Name` number
override = userAgent.match(new RegExp('(version)' + conExp + numExp));
if (override) { nameAndVersion[2] = override[2]; }
// If there is no `Version` in Safari, don't use the Safari number since it is
// the Webkit number.
else if (nameAndVersion[1] === SC.BROWSER.safari) { nameAndVersion[2] = '0'; }
else if (nameAndVersion[1] === SC.ENGINE.trident) {
// Special handling for IE11 (no 'ie' component, only 'trident' + 'rv')
nameAndVersion[1] = SC.BROWSER.ie;
this._ieVersion = nameAndVersion[2];
nameAndVersion[2] = userAgent.match(new RegExp('(rv)' + conExp + numExp))[2];
}
/**
@name SC.browser.name
@type SC.BROWSER|SC.BROWSER.unknown
*/
browser.name = nameAndVersion[1];
/**
@name SC.browser.version
@type String
*/
browser.version = nameAndVersion[2];
// Calculations to determine the engine and version. See SC.ENGINE.
engineAndVersion =
// Match the specific engines first, avoiding commonly spoofed browsers.
userAgent.match(new RegExp('(presto)' + conExp + numExp)) ||
userAgent.match(new RegExp('(opera|trident|webkit|gecko)' + conExp + numExp)) ||
['', SC.BROWSER.unknown, '0'];
// If the browser is SC.BROWSER.ie, use SC.ENGINE.trident.
override = browser.name === SC.BROWSER.ie ? SC.ENGINE.trident : false;
if (override) { engineAndVersion[1] = override; }
// If the engineVersion is unknown and the browser is SC.BROWSER.ie, use
// browser.version for browser.engineVersion.
override = browser.name === SC.BROWSER.ie && engineAndVersion[2] === '0';
if (override) { engineAndVersion[2] = browser.version; }
// If a `rv` number is found, use that over the engine number (except for IE11+ where 'rv' now indicates the browser version).
override = userAgent.match(new RegExp('(rv)' + conExp + numExp));
if (override && engineAndVersion[1] !== SC.ENGINE.trident) { engineAndVersion[2] = override[2]; }
/**
@name SC.browser.engine
@type SC.ENGINE|SC.BROWSER.unknown
*/
browser.engine = engineAndVersion[1];
/**
@name SC.browser.engineVersion
@type String
*/
browser.engineVersion = engineAndVersion[2];
/**
The prefix of browser specific methods on this platform.
@name SC.browser.domPrefix
@type String
*/
browser.domPrefix = SC.DOM_PREFIX[browser.engine];
/**
The prefix of browser specific properties on this platform.
@name SC.browser.classPrefix
@type String
*/
browser.classPrefix = SC.CLASS_PREFIX[browser.engine];
/**
The prefix of browser specific CSS properties on this platform.
@name SC.browser.cssPrefix
@type String
*/
browser.cssPrefix = SC.CSS_PREFIX[browser.engine];
// If we don't know the name of the browser, use the name of the engine.
if (browser.name === SC.BROWSER.unknown) { browser.name = browser.engine; }
// Calculations to determine the os and version. See SC.OS.
osAndVersion =
// Match the specific names first, avoiding commonly spoofed os's.
userAgent.match(new RegExp('(blackberry)')) ||
userAgent.match(new RegExp('(android|iphone(?: os)|windows(?: nt))' + conExp + numExp)) ||
userAgent.match(new RegExp('(os|mac(?: os)(?: x))' + conExp + numExp)) ||
userAgent.match(new RegExp('(linux)')) ||
[null, SC.BROWSER.unknown, '0'];
// Normalize the os name.
if (isIOSDevice) { os = SC.OS.ios; }
else if (osAndVersion[1] === 'mac os x' || osAndVersion[1] === 'mac os') { os = SC.OS.mac; }
else if (osAndVersion[1] === 'windows nt') { os = SC.OS.win; }
else { os = osAndVersion[1]; }
// Normalize the os version.
osAndVersion[2] = osAndVersion[2] ? osAndVersion[2].replace(/_/g, '.') : '0';
/**
@name SC.browser.os
@type SC.OS|SC.BROWSER.unknown
*/
browser.os = os;
/**
@name SC.browser.osVersion
@type String
*/
browser.osVersion = osAndVersion[2];
// The following long list of properties have all been deprecated. While they
// are a bit less verbose then the above constants, they lack standardization
// and can be prone to failure. Rather than continuing to expand this list
// with more and more one-off comparisons, which often muddle the line between
// the browser, the engine, the os and the device, it seems more practical to
// only maintain the 7 identifiable properties listed above: device, name,
// version, os, osVersion, engine and engineVersion.
/** @deprecated Version 1.7. Use browser.os === SC.OS.win.
@name SC.browser.isWindows
@type Boolean
*/
browser.windows = browser.isWindows = browser.os === SC.OS.win;
/** @deprecated Version 1.7. Use browser.os === SC.OS.mac.
@name SC.browser.isMac
@type Boolean
*/
browser.mac = browser.isMac = browser.os === SC.OS.mac;
/** @deprecated Version 1.7. Use browser.os === SC.OS.mac && browser.compare(browser.osVersion, '10.7') == 0
@name SC.browser.isLion
@type Boolean
*/
browser.lion = browser.isLion = !!(/mac os x 10_7/.test(userAgent) && !/like mac os x 10_7/.test(userAgent));
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.iphone.
@name SC.browser.isiPhone
@type Boolean
*/
browser.iPhone = browser.isiPhone = browser.device === SC.DEVICE.iphone;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipod.
@name SC.browser.isiPod
@type Boolean
*/
browser.iPod = browser.isiPod = browser.device === SC.DEVICE.ipod;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipad.
@name SC.browser.isiPad
@type Boolean
*/
browser.iPad = browser.isiPad = browser.device === SC.DEVICE.ipad;
/** @deprecated Version 1.7. Use browser.os === SC.OS.ios.
@name SC.browser.isiOS
@type Boolean
*/
browser.iOS = browser.isiOS = browser.os === SC.OS.ios;
/** @deprecated Version 1.7. Use browser.os === SC.OS.android or browser.name === SC.BROWSER.android or browser.device === SC.DEVICE.android.
@name SC.browser.isAndroid
@type Boolean
*/
browser.android = browser.isAndroid = browser.os === SC.OS.android;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.opera
@type String
*/
browser.opera = browser.name === SC.BROWSER.opera ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.opera.
@name SC.browser.isOpera
@type Boolean
*/
browser.isOpera = browser.name === SC.BROWSER.opera;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.msie
@type String
*/
browser.msie = browser.name === SC.BROWSER.ie ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.engine === SC.ENGINE.trident.
@name SC.browser.isIE
@type Boolean
*/
browser.isIE = browser.engine === SC.ENGINE.trident;
/** @deprecated Version 1.7. Use browser.compare(browser.version, '8') <= 0.
@name SC.browser.isIE8OrLower
@type Boolean
*/
browser.isIE8OrLower = browser.name === SC.BROWSER.ie && browser.version <= 8;
/** @deprecated Version 1.7. Use browser.version or browser.engineVersion.
@name SC.browser.mozilla
@type String
*/
browser.mozilla = browser.engine === SC.ENGINE.gecko ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.firefox or browser.engine === SC.ENGINE.gecko.
@name SC.browser.isMozilla
@type Boolean
*/
browser.isMozilla = browser.engine === SC.ENGINE.gecko;
/** @deprecated Version 1.7. Use browser.engineVersion.
@name SC.browser.webkit
@type String
*/
browser.webkit = browser.engine === SC.ENGINE.webkit ? browser.engineVersion : '0';
/** @deprecated Version 1.7. Use browser.engine === SC.ENGINE.webkit.
@name SC.browser.isWebkit
@type Boolean
*/
browser.isWebkit = browser.engine === SC.ENGINE.webkit;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.chrome
@type String
*/
browser.chrome = browser.name === SC.BROWSER.chrome ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.chrome.
@name SC.browser.isChrome
@type Boolean
*/
browser.isChrome = browser.name === SC.BROWSER.chrome;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.mobileSafari
@type String
*/
browser.mobileSafari = browser.os === SC.OS.ios ? browser.version : '0';
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios
@name SC.browser.isMobileSafari
@type Boolean
*/
browser.isMobileSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.ios;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPadSafari
@type String
*/
browser.iPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari
@name SC.browser.isiPadSafari
@type Boolean
*/
browser.isiPadSafari = browser.device === SC.DEVICE.ipad && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPhoneSafari
@type String
*/
browser.iPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari
@name SC.browser.isiPhoneSafari
@type Boolean
*/
browser.isiPhoneSafari = browser.device === SC.DEVICE.iphone && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.iPodSafari
@type String
*/
browser.iPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari
@name SC.browser.isiPodSafari
@type Boolean
*/
browser.isiPodSafari = browser.device === SC.DEVICE.ipod && browser.name === SC.BROWSER.safari;
/** @deprecated Version 1.7. Use SC.platform.standalone.
@name SC.browser.isiOSHomeScreen
@type Boolean
*/
browser.isiOSHomeScreen = browser.isMobileSafari && !(/apple.*mobile.*safari/.test(userAgent));
/** @deprecated Version 1.7. Use browser.version.
@name SC.browser.safari
@type String
*/
browser.safari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac ?
browser.version : 0;
/** @deprecated Version 1.7. Use browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac.
@name SC.browser.isSafari
@type Boolean
*/
browser.isSafari = browser.name === SC.BROWSER.safari && browser.os === SC.OS.mac;
/**
@name SC.browser.language
@type String
*/
browser.language = language.split('-', 1)[0];
/**
@name SC.browser.countryCode
@type String
*/
browser.countryCode = language.split('-')[1] ? language.split('-')[1].toLowerCase() : undefined;
/** @deprecated Version 1.7. Use browser.name. See SC.BROWSER for possible values.
@name SC.browser.current
@type String
*/
browser.current = browser.name;
return browser;
};
/** @class
This object contains information about the browser environment SproutCore is
running in. This includes the following properties:
- browser.device ex. SC.DEVICE.ipad
- browser.name ex. SC.BROWSER.chrome
- browser.version ex. '16.0.2.34'
- browser.os ex. SC.OS.mac
- browser.osVersion ex. '10.6'
- browser.engine ex. SC.ENGINE.webkit
- browser.engineVersion ex. '533.29'
- browser.cssPrefix ex. '-webkit-'
- browser.classPrefix ex. 'WebKit'
- browser.domPrefix ex. 'webkit'
Note: User agent sniffing does not provide guaranteed results and spoofing may
affect the accuracy. Therefore, as a general rule, it is much better
to rely on the browser's verified capabilities in SC.platform. But if you must
write browser specific code, understand that SC.browser does an exceptional
job at identifying the current browser.
Based on the unit test samples, the most stable browser properties appear to
be `engine` and `engineVersion`.
@since Version 1.0
*/
SC.browser = SC.detectBrowser();
/* >>>>>>>>>> BEGIN source/system/bench.js */
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
/*global SC_benchmarkPreloadEvents*/
// sc_require("system/browser")
if (typeof SC_benchmarkPreloadEvents !== "undefined") {
SC.benchmarkPreloadEvents = SC_benchmarkPreloadEvents;
SC_benchmarkPreloadEvents = undefined;
} else {
SC.benchmarkPreloadEvents = { headStart: new Date().getTime() };
}
/* >>>>>>>>>> BEGIN source/system/loader.js */
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
// sc_require("system/browser");
SC.setupBodyClassNames = function() {
var el = document.body,
browser, platform, shadows, borderRad, classNames, style, ieVersion;
if (!el) return ;
browser = SC.browser.current ;
platform = SC.browser.isWindows ? 'windows' : SC.browser.isMac ? 'mac' : 'other-platform' ;
style = document.documentElement.style;
shadows = (style.MozBoxShadow !== undefined) ||
(style.webkitBoxShadow !== undefined) ||
(style.oBoxShadow !== undefined) ||
(style.boxShadow !== undefined);
borderRad = (style.MozBorderRadius !== undefined) ||
(style.webkitBorderRadius !== undefined) ||
(style.oBorderRadius !== undefined) ||
(style.borderRadius !== undefined);
classNames = el.className ? el.className.split(' ') : [] ;
if(shadows) classNames.push('box-shadow');
if(borderRad) classNames.push('border-rad');
classNames.push(browser, platform) ;
// This isn't a perfectly correct way to compare versions, but should be okay
// in practical usage.
ieVersion = parseInt(SC.browser.version, 10);
if (SC.browser.isIE) {
classNames.push('msie'); // Used by several framework CSS declarations, including the one to address issue #971.
if (ieVersion === 7) {
classNames.push('ie7');
}
else if (ieVersion === 8) {
classNames.push('ie8');
}
else if (ieVersion === 9) {
classNames.push('ie9');
}
else if (ieVersion === 10) {
classNames.push('ie10');
}
}
if(browser==="safari" || browser==="chrome") classNames.push('webkit');
if (SC.browser.isMobileSafari) classNames.push('mobile-safari') ;
if ('createTouch' in document) classNames.push('touch');
el.className = classNames.join(' ') ;
} ;
</script>
<script>
(function() {
var styles = [];
if (window.devicePixelRatio > 1 || window.location.search.indexOf("2x") > -1) {
styles = ["/static/sproutcore/testing/en/current/stylesheet.css?1396734177","/static/sproutcore/yuireset/en/current/stylesheet.css?1396734177","/static/sproutcore/foundation/en/current/stylesheet.css?1396734176","/static/sproutcore/desktop/en/current/stylesheet.css?1396734176","/static/sproutcore/ace/en/current/stylesheet@2x.css?1396734177","/static/todos_three/en/current/stylesheet.css?1392620746"];
SC.APP_IMAGE_ASSETS = ["/static/sproutcore/desktop/en/current/stylesheet-no-repeat@2x.png?1396734176","/static/sproutcore/ace/en/current/stylesheet-no-repeat@2x.png?1396734177","/static/sproutcore/ace/en/current/stylesheet-repeat-x@2x.png?1396734177","/static/sproutcore/ace/en/current/stylesheet-repeat-y@2x.png?1396734177"];
} else {
styles = ["/static/sproutcore/testing/en/current/stylesheet.css?1396734177","/static/sproutcore/yuireset/en/current/stylesheet.css?1396734177","/static/sproutcore/foundation/en/current/stylesheet.css?1396734176","/static/sproutcore/desktop/en/current/stylesheet.css?1396734176","/static/sproutcore/ace/en/current/stylesheet.css?1396734177","/static/todos_three/en/current/stylesheet.css?1392620746"];
SC.APP_IMAGE_ASSETS = ["/static/sproutcore/desktop/en/current/stylesheet-no-repeat.png?1396734176","/static/sproutcore/ace/en/current/stylesheet-no-repeat.png?1396734177","/static/sproutcore/ace/en/current/stylesheet-repeat-x.png?1396734177","/static/sproutcore/ace/en/current/stylesheet-repeat-y.png?1396734177"];
}
var head = document.getElementsByTagName("head")[0],
len = styles.length, idx, css;
for (idx = 0; idx < len; idx++) {
css = document.createElement('link');
css.rel = 'stylesheet';
css.type = 'text/css';
css.href = styles[idx];
css.media = 'screen'
head.appendChild(css);
}
})();
</script>
<script>
SC.benchmarkPreloadEvents['headEnd'] = new Date().getTime();
</script>
</head>
<body class="sc-theme sc-focus">
<script>
SC.benchmarkPreloadEvents['bodyStart'] = new Date().getTime();
</script>
<script type="text/javascript">
// ==========================================================================
// Project: SproutCore - JavaScript Application Framework
// Copyright: ©2006-2011 Strobe Inc. and contributors.
// Portions ©2008-2011 Apple Inc. All rights reserved.
// License: Licensed under MIT license (see license.js)
// ==========================================================================
// sc_resource('setup_body_class_names'); // publish into inline format
if (SC.setupBodyClassNames) SC.setupBodyClassNames() ;
</script>
<div id="loading">
<p class="loading">Loading...<p>
</div>
<script type="text/javascript" src="/static/sproutcore/jquery/en/current/source/jquery-1.8.3-patched.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/debug/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/core.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/utils.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/extras.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/system/dump.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/system/equiv.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/system/plan.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/system/runner.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/testing/en/current/source/system/suite.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/license.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/base.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/indexOf.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/insertAt.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/objectAt.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/popObject.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/pushObject.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/rangeObserver.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/removeAt.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/removeObject.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/replace.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/shiftObject.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/unshiftObject.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/debug/test_suites/array/flatten.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/function.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/ext/function.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/private/observer_set.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/private/chain_observer.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/observable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/enumerator.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/enumerable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/range_observer.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/ext/array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/ext/date.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/ext/number.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/ext/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/comparable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/copyable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/mixins/freezable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/set.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/private/observer_queue.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/object.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/private/property_chain.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/binding.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/error.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/index_set.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/json.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/logger.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/runtime/en/current/source/system/run_loop.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/browser.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/builder.js?1397808309"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/core_query.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/event.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/cursor.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/responder.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/theme.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/locale.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/mixins/delegate_support.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/base.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/statechart.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/child_view_layouts/horizontal_stack_layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/child_view_layouts/vertical_stack_layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/controllers/controller.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/mixins/selection_support.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/controllers/array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/controllers/object.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/ext/function.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/ext/object.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/ext/run_loop.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/ext/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/mixins/action_support.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/mixins/responder_context.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/body_overflow.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/animation.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/layout_style.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/acceleration.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/cursor.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/enabled.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/keyboard.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/manipulation.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/theming.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/touch.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/visibility.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/pane.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/keyboard.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/manipulation.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/pane_statechart.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/visibility.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/protocols/observable_protocol.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/protocols/sparse_array_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/protocols/view_transition_protocol.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/ready.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/platform.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/touch.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/root_responder.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/application.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/color.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/device.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/key_bindings.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/page.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/render_context.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/req_anim_frame.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/selection_set.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/sparse_array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/timer.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/utils.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/system/utils/rect.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/views/view/design_mode.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/core_foundation/en/current/source/panes/main.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/routing/en/current/source/system/routes.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datetime/core/en/current/source/system/datetime.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datetime/localized/en/current/source/lproj/strings.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datetime/localized/en/current/source/system/datetime.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/ajax/en/current/source/mixins/websocket_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/ajax/en/current/source/system/response.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/ajax/en/current/source/system/request.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/ajax/en/current/source/system/websocket.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/tree_item_content.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/collection_content.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/private/tree_item_observer.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/controllers/tree.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/debug/control_test_pane.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/delegates/inline_text_field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/ext/string.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/gesture.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/gestures/pinch.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/gestures/swipe.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/gestures/tap.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/license.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/auto_mixin.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/utils/string_measurement.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/auto_resize.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/content_display.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/content_value_support.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/control.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/editable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/flowed_layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/gesturable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/inline_editable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/inline_editor.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/inline_editor_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/inner_frame.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/static_layout.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/mixins/validatable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/protocols/swap_transition_protocol.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/render_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/canvas_image.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/container.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/helpers/sizing.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/image.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/render_delegates/label.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/tasks/task.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/app_cache.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/benchmark.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/cookie.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/core_query.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/exception_handler.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/image_queue.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/math.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/module.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/task_queue.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/text_selection.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/undo_manager.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/user_defaults.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/utils/colors.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/utils/misc.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/utils/range.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/system/utils/string_metric_optimization.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/tasks/preload_bundle.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/adjust_bounce_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/adjust_smooth_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/adjust_spring_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/bounce_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/fade_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/pop_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/scale_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/slide_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/spring_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/container.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/swap_dissolve_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/swap_fade_color_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/swap_move_in_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/swap_push_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/transitions/swap_reveal_transition.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/validator.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/credit_card.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/date.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/date_time.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/email.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/not_empty.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/number.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/password.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/validators/positive_integer.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/image.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/text_field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/inline_text_field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/foundation/en/current/source/views/label.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/system/drag.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/debug/drag.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/collection_fast_path.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/collection_group.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/collection_row_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/collection_view_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/navigation_builder.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/scrollable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/split_child.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/mixins/split_thumb.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/modal.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/panel.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/alert.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/draggable.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/palette.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/picker.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/separator.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/menu_item.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/menu.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/panes/sheet.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/protocols/drag_data_source.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/protocols/drag_source.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/protocols/drop_target.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/protocols/responder.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/checkbox.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/collection.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/disclosure.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/helpers/slicing.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/image_button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/master_detail.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/panel.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/picker.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/menu.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/popup_button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/progress.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/radio.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/radio_group.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/segment.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/segmented.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/slider.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/source_list.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/split.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/split_divider.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/toolbar.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/well.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/render_delegates/workspace.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/checkbox.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/list_item.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/collection.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/date_field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/disclosure.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/list.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/grid.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/image_button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/toolbar.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/workspace.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/master_detail.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/scroller.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/scroll.js?1397762512"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/menu_scroll.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/navigation.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/navigation_bar.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/popup_button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/progress.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/radio.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/scene.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/segment.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/segmented.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/select.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/select_button.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/select_field.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/slider.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/source_list_group.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/source_list.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/split_divider.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/split.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/stacked.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/static_content.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/tab.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/thumb.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/web.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/desktop/en/current/source/views/well.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/data_sources/data_source.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/data_sources/cascade.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/query.js?1396734640"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/record.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/data_sources/fixtures.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/debug/json.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/debug/standard_setup.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/fixtures/author_fixtures.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/fixtures/sample.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/mixins/relationship_support.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/record_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/child_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/child_record.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/child_array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/children_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/fetched_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/many_array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/many_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/models/single_attribute.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/store.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/nested_store.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/datastore/en/current/source/system/record_array.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/core.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/debug/monitor.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/debug/sequence_matcher.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/ext/function.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/mixins/statechart_delegate.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/private/state_path_matcher.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/async.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/state.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/empty_state.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/history_state.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/state_route_handler_context.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/statechart/en/current/source/system/statechart.js?1396734176"></script>
<script type="text/javascript" src="/static/sproutcore/en/current/source/license.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/empty_theme/en/current/source/theme.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/theme.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/resources/button/dark/button.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/resources/collection/source-list/source-list.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/resources/picker/popover/popover.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/resources/picker/popover/picker.js?1396734177"></script>
<script type="text/javascript" src="/static/sproutcore/ace/en/current/source/resources/picker/popover/workspace.js?1396734177"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/core.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/controllers/todos.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/controllers/completed_todos.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/models/todo.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/fixtures/todo.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/resources/todo_item.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/statechart.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/states/logging_in.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/states/ready.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/states/showing_app.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/states/showing_destroy_confirmation.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/theme.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/resources/main_page.js?1392620746"></script>
<script type="text/javascript" src="/static/todos_three/en/current/source/main.js?1392620746"></script>
<script>
SC.benchmarkPreloadEvents['bodyEnd'] = new Date().getTime();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment